> it's actually adding them as properties to the attributes type object.
If we want to use attributes, then we'd need to special-case the type attributes "order" and "default", which would mean that you couldn't also have a type attribute named "order" or "default".
Another syntax to consider for default values might be something like:
string foo = "foo";
Ordering might be done with keywords in the record field definitition, like:
decreasing string foo = "foo";
unordered string bar = "bar";
As for including JSON, I think we need to add grammar rules for Json to the parser. Todd, is that what you tried?