process specifiers (to add validations for required, etc.)(detect index modifications) decide what to do with multiple-column indices add extensible specifiers: ModalFields.specify do required do |model, column| model.validates_presence_of column.name end unique do |model, column| model.validates_uniqueness_of name, :allow_nil => !column.specifiers.include?(:required) end end rename hook to... filter? process? declared? transformation? complete field declaration validation helper methods for field declaration: (can be used instead of the type and dispense with the need of extra attributes) status enum_field(:draft, :approved, :published), :required instead of status :enum_field, :required, :values=>[:draft, :approved, :published]