[
    {
        "description": "dynamic $recursiveRef destination (not predictable at schema compile time)",
        "schema": {
            "$id": "main.json",
            "$defs": {
                "inner": {
                    "$id": "inner.json",
                    "$recursiveAnchor": true,
                    "title": "inner",
                    "additionalProperties": {
                        "$recursiveRef": "#"
                    }
                }

            },
            "if": { "propertyNames": { "pattern": "^[a-m]" } },
            "then": {
                "title": "any type of node",
                "$id": "anyLeafNode.json",
                "$recursiveAnchor": true,
                "$ref": "main.json#/$defs/inner"
            },
            "else": {
                "title": "integer node",
                "$id": "integerNode.json",
                "$recursiveAnchor": true,
                "type": [ "object", "integer" ],
                "$ref": "main.json#/$defs/inner"
            }
        },
        "tests": [
            {
                "description": "numeric node",
                "data": { "alpha": 1.1 },
                "valid": true
            },
            {
                "description": "integer node",
                "data": { "november": 1.1 },
                "valid": false
            }
        ]
    },
    {
        "description": "$recursiveRef points to a boolean schema",
        "schema": {
            "$schema": "https://json-schema.org/draft/2019-09/schema",
            "$defs": {
                "true": true,
                "false": false
            },
            "properties": {
                "true": {
                    "$recursiveRef": "#/$defs/true"
                },
                "false": {
                    "$recursiveRef": "#/$defs/false"
                }
            }
        },
        "tests": [
            {
                "description": "follow $recursiveRef to a true schema",
                "data": { "true": 1 },
                "valid": true
            },
            {
                "description": "follow $recursiveRef to a false schema",
                "data": { "false": 1 },
                "valid": false
            }
        ]
    }
]