Description
In #505 I commented that definitions
fits better into core than validation (and @Anthropic agreed).
The point of definitions
is simply to reserve a keyword under which you can safely collect named schemas, without worrying that they will get accidentally interpreted by an extended vocabulary.
definitions
also allows packaging multiple schemas in a file for re-use as $ref
targets without having to explicitly assign $id
s. In that sense, it is most closely associated with $ref
and $id
, both of which are part of core.
Furthermore, having a designated re-use location has nothing to do with validation or any other particular JSON Schema use case. Reading through the validation spec it seems quite out of place. For the last several drafts, there has even been a specific note in its description that it does not affect validation.
When you have to explain how the keyword has nothing to do with the purpose of the specification, that's probably a sign that the keyword is in the wrong place.
Anyone seriously object to moving this?