prepare method
Implementation
void prepare(Map<String,dynamic> data) {
var descriptor = typeRegistry[data["type"]];
for ( var property in descriptor.properties.values)
if ( property.name != "children" && property.name != "parent" ){
var defaultValue = property.defaultValue;
if (data[property.name] == defaultValue)
data.remove(property.name);
}
for (var child in data["children"])
prepare(child);
}