This PR refactors the schema to implement one approach to supporting multiple "shapes" of schema, specifically for default/derived variants. The next step would be to use a similar approach in the type section to support multiple flavorTypes and flavors.
The top-level schema is a oneOf, which combines two root-level objects from which the details have been moved to separate files. This reduces duplication while also providing a very explicit and easy to edit answer to "what does the top level look like?"
The variant field has been moved to the meta section, since whichever section it lives in needs to be duplicated. I expect the default and derived meta schemas to diverge significantly anyway.
This PR refactors the schema to implement one approach to supporting multiple "shapes" of schema, specifically for default/derived variants. The next step would be to use a similar approach in the type section to support multiple flavorTypes and flavors.
The top-level schema is a oneOf, which combines two root-level objects from which the details have been moved to separate files. This reduces duplication while also providing a very explicit and easy to edit answer to "what does the top level look like?"
The variant field has been moved to the meta section, since whichever section it lives in needs to be duplicated. I expect the default and derived meta schemas to diverge significantly anyway.