[ { "description": "past and future keywords are ignored", "schema": { "id": "#bad_syntax!for anchor~", "dependentSchemas": { "alpha": false }, "dependentRequired": { "beta": [ "zeta" ] }, "prefixItems": [ true, false ], "type": "number" }, "tests": [ { "description": "passing", "data": 1, "valid": true }, { "description": "failing (string)", "data": "foo", "valid": false }, { "description": "failing (object)", "data": { "alpha": 1, "beta": 2 }, "valid": false }, { "description": "failing (array)", "data": [ 1, 2 ], "valid": false } ] }, { "description": "$recursiveRef without $recursiveAnchor works like $ref", "schema": { "properties": { "foo": {"$recursiveRef": "#"} }, "additionalProperties": false }, "tests": [ { "description": "match", "data": {"foo": false}, "valid": true }, { "description": "recursive match", "data": {"foo": {"foo": false}}, "valid": true }, { "description": "mismatch", "data": {"bar": false}, "valid": false }, { "description": "recursive mismatch (but $dynamicRef is ignored)", "data": {"foo": {"bar": false}}, "valid": true } ] } ]