Extends #6.
Problem
OO-LD's custom keywords (x-oold-range, x-oold-ref, x-oold-*, x-oold-multilang-*) are valid 2020-12 custom keywords, but nothing validates that they are well-formed, and a reference inside an unknown keyword is "undefined behavior" (Core §9.4.2). There is no stable, citable identity for the keywords.
Resolution (decision: thin, OPTIONAL vocabulary)
- Publish an OO-LD dialect meta-schema (
"$schema": ".../2020-12/schema") that extends the standard 2020-12 meta-schema and adds syntax for @context, x-oold-range, x-oold-ref, x-oold-*, x-oold-multilang-*. It MUST re-list all standard 2020-12 vocabularies at its root (Core §8.1.2.2: vocabulary declarations are not inherited via $ref). This lets OO-LD schemas be validated as OO-LD schemas.
- Declare the OO-LD
$vocabulary URI marked false (optional) so generic 2020-12 validators still process OO-LD schemas. Core §8.1.2: a true value makes non-supporting validators refuse the schema.
- Declaring
x-oold-range/x-oold-ref as recognized keywords moves their references out of the §9.4.2 grey zone for dialect-aware tools.
$vocabulary does not execute keyword logic anywhere (ajv needs addKeyword; Hyperjump / json-everything load dialects from $vocabulary). Ship behavior in the oold library.
Acceptance criteria
Source: gap analysis #18.
Extends #6.
Problem
OO-LD's custom keywords (
x-oold-range,x-oold-ref,x-oold-*,x-oold-multilang-*) are valid 2020-12 custom keywords, but nothing validates that they are well-formed, and a reference inside an unknown keyword is "undefined behavior" (Core §9.4.2). There is no stable, citable identity for the keywords.Resolution (decision: thin, OPTIONAL vocabulary)
"$schema": ".../2020-12/schema") that extends the standard 2020-12 meta-schema and adds syntax for@context,x-oold-range,x-oold-ref,x-oold-*,x-oold-multilang-*. It MUST re-list all standard 2020-12 vocabularies at its root (Core §8.1.2.2: vocabulary declarations are not inherited via$ref). This lets OO-LD schemas be validated as OO-LD schemas.$vocabularyURI markedfalse(optional) so generic 2020-12 validators still process OO-LD schemas. Core §8.1.2: atruevalue makes non-supporting validators refuse the schema.x-oold-range/x-oold-refas recognized keywords moves their references out of the §9.4.2 grey zone for dialect-aware tools.$vocabularydoes not execute keyword logic anywhere (ajv needsaddKeyword; Hyperjump / json-everything load dialects from$vocabulary). Ship behavior in theooldlibrary.Acceptance criteria
$vocabularydeclared optional; a generic 2020-12 validator still processes OO-LD schemasx-oold-*keywords covered by the meta-schema syntaxSource: gap analysis #18.