Model.fields now has metadata for each field call, storing type information and default value. Default values are obtainable through a utility method, #default_attributes. Model instances merge #default_attributes with whatever they are given to #attributes=. All tested.