[ { "description": "Simple dynamicRef to dynamicAnchor in same schema", "schema": { "$id": "https://test.jspg.org/dynamic-ref/simple", "$dynamicAnchor": "root", "type": "array", "items": { "$dynamicRef": "#item" }, "$defs": { "item": { "$dynamicAnchor": "item", "type": "string" } } }, "tests": [ { "description": "valid string item", "data": [ "foo" ], "valid": true }, { "description": "invalid number item", "data": [ 1 ], "valid": false } ] }, { "description": "Dynamic scope resolution (generic list pattern)", "schema": { "$id": "https://test.jspg.org/dynamic-ref/override", "$dynamicAnchor": "root", "$ref": "https://test.jspg.org/dynamic-ref/generic-list", "$defs": { "generic-list": { "$id": "https://test.jspg.org/dynamic-ref/generic-list", "$dynamicAnchor": "list", "type": "array", "items": { "$dynamicRef": "#item" }, "$defs": { "defaultItem": { "$dynamicAnchor": "item", "type": "string" } } }, "override-item": { "$dynamicAnchor": "item", "type": "integer" } } }, "tests": [ { "description": "integers valid (overridden)", "data": [ 1, 2 ], "valid": true }, { "description": "strings invalid (overridden)", "data": [ "a" ], "valid": false } ] }, { "description": "Dynamic scope resolution (no override uses default)", "schema": { "$id": "https://test.jspg.org/dynamic-ref/no-override", "$dynamicAnchor": "root", "$ref": "https://test.jspg.org/dynamic-ref/generic-list-2", "$defs": { "generic-list-2": { "$id": "https://test.jspg.org/dynamic-ref/generic-list-2", "$dynamicAnchor": "list", "type": "array", "items": { "$dynamicRef": "#item" }, "$defs": { "defaultItem": { "$dynamicAnchor": "item", "type": "string" } } } } }, "tests": [ { "description": "strings valid (default)", "data": [ "a", "b" ], "valid": true }, { "description": "integers invalid (default)", "data": [ 1 ], "valid": false } ] } ]