{
    "enhConfig": {
        "enhKey": "🎚️",
        "spawn": "be-switched/be-switched.js",
        "withAttrs": {
            "base": "🎚️",
            "_base": {
                "mapsTo": "parsedStatements",
                "parser": "parse-pattern-statements",
                "instanceOf": "Array",
                "parserConfig": [
                    {
                        "name": "twoValWithEvents",
                        "pattern": "^(?<onOrOff>on|off|On|Off)\\s+when\\s+(?<lhsPart>[^=<>!]+?)\\s*(?<op>=|equals|eq|<|lt|>|gt|<=|lte|>=|gte)\\s*(?<rhsPart>.+)$",
                        "description": "Two-value comparison: on/off when LHS op RHS"
                    },
                    {
                        "name": "nValWithHandler",
                        "pattern": "^(?:on|On)\\s+if\\s+(?<registeredHandler>[^,]+),\\s*(?:per|based\\s+on)\\s+(?<dependencyPart>.+)$",
                        "description": "N-value with registered handler: on if handler, per deps"
                    },
                    {
                        "name": "nValPerDeps",
                        "pattern": "^(?:on|On)\\s+(?:per|based\\s+on)\\s+(?<dependencyPart>.+)$",
                        "description": "N-value without handler: on per deps"
                    },
                    {
                        "name": "singleValOnly",
                        "pattern": "^(?<onOrOff>on|off|On|Off)\\s+only\\s+when\\s+(?<ifPart>.+)$",
                        "description": "Single-value required condition: on only when ref",
                        "defaultVals": {
                            "req": "true"
                        }
                    },
                    {
                        "name": "singleVal",
                        "pattern": "^(?<onOrOff>on|off|On|Off)\\s+when\\s+(?<ifPart>.+)$",
                        "description": "Single-value boolean condition: on/off when ref"
                    }
                ]
            },
            "js": "${base}-js",
            "transitional": "${base}-transitional",
            "_transitional": {
                "instanceOf": "Boolean"
            },
            "as": "${base}-as",
            "_minMem": {
                "instanceOf": "Boolean"
            }
        }
    },
    "customData": {
        "weakRef": {
            "properties": [
                "enhancedElement"
            ]
        },
        "actions": {
            "hydrate": {
                "ifAllOf": [
                    "parsedStatements",
                    "enhancedElement"
                ]
            },
            "onTrue": {
                "ifEquals": [
                    "val",
                    "echoVal"
                ],
                "ifAllOf": [
                    "val",
                    "enhancedElement",
                    "resolved"
                ],
                "ifKeyIn": [
                    "val"
                ]
            },
            "onFalse": {
                "ifAllOf": [
                    "enhancedElement",
                    "resolved"
                ],
                "ifEquals": [
                    "val",
                    "echoVal"
                ],
                "ifNoneOf": [
                    "val"
                ],
                "ifKeyIn": [
                    "val"
                ]
            },
            "calcSwitchesSatisfied": {
                "ifKeyIn": [
                    "singleValSwitchNoGo",
                    "singleValSwitchesSatisfied",
                    "twoValSwitchNoGo",
                    "twoValSwitchesSatisfied"
                ]
            },
            "calcVal": {
                "ifKeyIn": [
                    "lhs",
                    "rhs",
                    "switchesSatisfied"
                ],
                "ifAllOf": [
                    "resolved"
                ]
            },
            "onNValSwitches": {
                "ifAllOf": [
                    "nValueSwitches"
                ],
                "ifNotAllOf": [
                    "js",
                    "notProcessedJS"
                ]
            },
            "processJS": {
                "ifAllOf": [
                    "js",
                    "notProcessedJS",
                    "enhancedElement"
                ]
            }
        },
        "compacts": {
            "echo_val_to_echoVal": 20,
            "when_singleValSwitches_changes_call_onSingleValSwitches": 0,
            "when_twoValueSwitches_changes_call_onTwoValSwitches": 0
        },
        "defaultPropVals": {
            "beBoolish": true,
            "hiddenStyle": "display:none",
            "lhs": false,
            "rhs": true,
            "singleValSwitchesSatisfied": false,
            "singleValSwitchNoGo": false,
            "twoValSwitchesSatisfied": false,
            "twoValSwitchNoGo": false,
            "notProcessedJS": true,
            "idRefAttr": "data-be-switched-idrefs"
        }
    }
}