* merged Collection.prototype.property_types into Collection.prototype.property_rules
* separated required constructor and type settings in property_rules
+ added logic to validate required properties