# File lib/rgen/metamodel_builder/intermediate/feature.rb, line 84
  def initialize(type, props)
    @props = Defaults.merge(props)
    type ||= String
    @etype = Types[type]
    if @etype
      @impl_type = type
    elsif type.is_a?(RGen::MetamodelBuilder::DataTypes::Enum)
      @etype = :EEnumerable
      @impl_type = type
    else
      raise ArgumentError.new("invalid type '#{type}'")
    end
    if @props[:derived]
      @props[:changeable] = false
      @props[:volatile] = true
      @props[:transient] = true
    end    
    check(Properties)
  end