Expected
metaschema.yaml is internally consistent
Observed
required includes program, project, uniqueKeys, systemProperties:
required:
...
- program
- project
- uniqueKeys
- systemProperties
but program and project are missing from properties, and unique keys and system properties are defined with snake case not camel case:
properties:
...
unique_keys:
...
system_properties:
...
I see that the current version of the gdcdictionary metaschema does include program and project (but unique keys and system properties names still conflict).
Result
systemProperties and uniqueKeys are required in all entity JSON schema documents, but not validated as was perhaps intended with the unique_keys and system_properties blocks?
Other
- The schema is lacking
type: object
- The
link_subgroup definition is lacking type: object and additionalProperties: false. Not fatal but messes with IDE autocomplete. For example when developing an entity schema document in VS Code, one wants IntelliSense to offer a choice between oneOf a link or link_subgroup element to insert into the links array but if type: is missing on the link_subgroup it automatically becomes the 'best' choice because it's less restrictive.
Expected
metaschema.yamlis internally consistentObserved
requiredincludesprogram, project, uniqueKeys, systemProperties:but
programandprojectare missing fromproperties, and unique keys and system properties are defined with snake case not camel case:I see that the current version of the gdcdictionary metaschema does include
programandproject(but unique keys and system properties names still conflict).Result
systemPropertiesanduniqueKeysare required in all entity JSON schema documents, but not validated as was perhaps intended with theunique_keysandsystem_propertiesblocks?Other
type: objectlink_subgroupdefinition is lackingtype: objectandadditionalProperties: false. Not fatal but messes with IDE autocomplete. For example when developing an entity schema document in VS Code, one wants IntelliSense to offer a choice betweenoneOfalinkorlink_subgroupelement to insert into thelinksarray but iftype:is missing on thelink_subgroupit automatically becomes the 'best' choice because it's less restrictive.