Having a properly typed model will make it nicer to manipulate the schema definitions for things such as: * converting to/from other schema formats * comparing two schemas * writing a linter tool for schemas