{
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$id": "https://example.org/schemas/mechanism-2-vocabulary",
    "title": "Mechanism 2: $vocabulary Declaration Example",
    "description": "This schema IS itself a meta-schema demonstrating $vocabulary usage. It declares standard 2020-12 vocabularies as required and the FAIR annotations vocabulary as optional. A validator that encounters this as a dialect $schema and does not implement the FAIR vocabulary will silently ignore fair: keywords.",
    "$vocabulary": {
        "https://json-schema.org/draft/2020-12/vocab/core": true,
        "https://json-schema.org/draft/2020-12/vocab/applicator": true,
        "https://json-schema.org/draft/2020-12/vocab/unevaluated": true,
        "https://json-schema.org/draft/2020-12/vocab/validation": true,
        "https://json-schema.org/draft/2020-12/vocab/meta-data": true,
        "https://json-schema.org/draft/2020-12/vocab/format-annotation": true,
        "https://json-schema.org/draft/2020-12/vocab/content": true,
        "https://highvaluedata.net/fair-data-schema/dev/vocab/annotations": false
    },
    "allOf": [
        {
            "$ref": "https://json-schema.org/draft/2020-12/schema"
        },
        {
            "$ref": "https://highvaluedata.net/fair-data-schema/dev/vocab/annotations"
        }
    ],
    "$comment": "The $vocabulary map is what transforms an ordinary meta-schema into a dialect. 'true' entries cause validators to refuse validation if they cannot implement that vocabulary. 'false' entries instruct validators to silently ignore unknown keywords from that vocabulary. This is the mechanism that makes FAIR annotations backward-compatible with all standard validators."
}
