[
    {
        "name": "filter_settings",
        "type": "object",
        "required": true,
        "description": "Configuration settings for the option tree's behavior, labels, and text.",
        "params": [
            {
                "name": "name",
                "type": "string",
                "required": true,
                "description": "The base name attribute applied to checkboxes, used to construct id prefixes (e.g., input-<name>-<index>)."
            },
            {
                "name": "label",
                "type": "string",
                "required": true,
                "description": "The HTML text displayed inside the main <legend> of the component's wrapping fieldset."
            },
            {
                "name": "hint",
                "type": "string",
                "required": false,
                "description": "Optional hint text displayed below the fieldset legend."
            },
            {
                "name": "item_name",
                "type": "object",
                "required": false,
                "description": "Custom terminology used for the dynamic summary counter. Defaults to \"item\" and \"items\" if omitted.",
                "params": [
                    {
                        "name": "singular",
                        "type": "string",
                        "required": false,
                        "description": "The singular noun for the counter (e.g., \"option\" or \"capability\")."
                    },
                    {
                        "name": "plural",
                        "type": "string",
                        "required": false,
                        "description": "The plural noun for the counter (e.g., \"options\" or \"capabilities\")."
                    }
                ]
            },
            {
                "name": "tier_restriction",
                "type": "number",
                "required": false,
                "description": "The tier depth boundary at which selecting an option locks sibling branches. Defaults to 0."
            },
            {
                "name": "independent_selection",
                "type": "boolean",
                "required": false,
                "description": "When true, section checkboxes become form inputs in their own right (requiring a value on every node) and selecting a section neither selects nor expands its children. A section is ticked only when the user selects it directly; any selection among its descendants clears that tick and shows no derived state on the section, even when every child is selected. Defaults to false."
            }
        ]
    },
    {
        "name": "items",
        "type": "array",
        "required": true,
        "description": "A recursive hierarchical list of nodes representing the structure of the tree.",
        "items": {
            "type": "object",
            "params": [
                {
                    "name": "text",
                    "type": "string",
                    "required": true,
                    "description": "The label text for the node, used as the summary header or checkbox label."
                },
                {
                    "name": "value",
                    "type": "string",
                    "required": "true (for leaves)",
                    "description": "The form value attribute assigned to the checkbox on leaf elements."
                },
                {
                    "name": "checked",
                    "type": "boolean",
                    "required": false,
                    "description": "Pre-selects the checkbox state on initial render if set to true."
                },
                {
                    "name": "items",
                    "type": "array",
                    "required": false,
                    "description": "An array of nested child nodes following this exact same recursive item schema. If omitted, the node renders as a standard checkbox leaf."
                }
            ]
        }
    }
]
