Validate should perform attribute type checks where ever possible. Calyptos should validate that attributes (if provided, or not nil maybe?) Failure to use the correct type (ie a string where a list is expected) can cause subtle errors down the line which are difficult to debug.