Don't temper with built-in attr_accessor. Use custom add_attributes.
Change all attr_accessor to add_attributes.
Add private Format class to Data.
Evaluate format block inside Format class.
Format validation is no longer needed.
Add `as_format` grammar.