class WolfCore::DomainObject

def self.cast(object)

def self.cast(object)
  if object.is_a?(self)
    object
  else
    result = self.create(object)
    success_key = extract_success_key
    result.success? ? result.data.send(success_key) : object
  end
end