{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://www.cuddler.dev/standards/artifact-definitions/component-hierarchy/1.0.0/data.schema.json",
  "title": "Component Hierarchy Data Schema",
  "type": "object",
  "cuddler": {
    "specVersion": "1.0.0",
    "documentTypeId": "component-hierarchy",
    "schemaVersion": "1.0.0",
    "output": {
      "primaryContentType": "application/json",
      "supportedContentTypes": [
        "application/json"
      ]
    },
    "profile": {
      "id": "component-hierarchy",
      "version": "1.0.0",
      "for-ai": [
        {
          "instruction": "Explain what this Cuddler schema profile governs so AI consumers understand when to use this schema family.",
          "input": "",
          "output": "Component Hierarchy schema family for publishing Stage-rooted component trees used by page and application UI artifacts."
        }
      ]
    },
    "schemaLinks": [
      {
        "rel": "self",
        "targetSchema": "https://www.cuddler.dev/standards/artifact-definitions/component-hierarchy/1.0.0/data.schema.json",
        "targetDocumentTypeId": "component-hierarchy",
        "for-ai": [
          {
            "instruction": "Explain why this related schema is linked here and when an AI consumer should follow it.",
            "input": "",
            "output": "Use the canonical Component Hierarchy data schema at this immutable URL when validating or generating a component hierarchy document."
          }
        ]
      }
    ],
    "artifactType": "Component Hierarchy",
    "status": "Public normative publication",
    "publisher": "IdeaTilt Inc.",
    "sourceUrl": "https://www.cuddler.dev/standards/artifact-definitions/component-hierarchy/",
    "attributionNotice": "© 2026 IdeaTilt. This work is licensed under the Creative Commons Attribution 4.0 International License (CC BY 4.0). See https://www.cuddler.dev/license/ for the site license summary. You are free to share, use, adapt, and modify this material, including for commercial purposes, provided you give appropriate attribution and include a link to the original source URL and the CC BY 4.0 license at https://creativecommons.org/licenses/by/4.0/.",
    "governingDomainSpecification": {
      "title": "Data Document Role",
      "url": "https://www.cuddler.dev/standards/document-role/data/v1.0.0/"
    },
    "governingArtifactSpecification": {
      "title": "Cuddler Artifact Specification",
      "version": "1.0.0",
      "url": "https://www.cuddler.dev/standards/artifact-specification/v1.0.0/"
    }
  },
  "for-ai": [
    {
      "instruction": "Create a Cuddler Data Document whose content.documentModel.stage is the single root Stage node for the component hierarchy. Do not place component nodes outside Stage.",
      "input": "",
      "output": "Use this schema to generate Stage-rooted component hierarchy documents for page and application UI artifacts."
    }
  ],
  "required": [
    "$schema",
    "meta",
    "content"
  ],
  "properties": {
    "$schema": {
      "const": "https://www.cuddler.dev/standards/artifact-definitions/component-hierarchy/1.0.0/data.schema.json",
      "for-ai": [
        {
          "instruction": "Set instance $schema exactly equal to the canonical schema $id.",
          "input": "",
          "output": "Canonical immutable Component Hierarchy schema URL."
        }
      ]
    },
    "meta": {
      "$ref": "#/$defs/DocumentMeta",
      "for-ai": [
        {
          "instruction": "Use this guidance when preparing a valid value for this schema node.",
          "input": "",
          "output": "Document identity, authorship, schema version, publication status, and descriptive metadata."
        }
      ]
    },
    "content": {
      "$ref": "#/$defs/DocumentContent",
      "for-ai": [
        {
          "instruction": "Use this guidance when preparing a valid value for this schema node.",
          "input": "",
          "output": "Primary component hierarchy content, including Stage roots and optional data binding definitions."
        }
      ]
    },
    "assets": {
      "oneOf": [
        {
          "$ref": "#/$defs/Assets"
        },
        {
          "type": "null"
        }
      ],
      "for-ai": [
        {
          "instruction": "Use this guidance when preparing a valid value for this schema node.",
          "input": "",
          "output": "Optional reusable assets referenced by component nodes."
        }
      ]
    },
    "references": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/Reference"
      },
      "for-ai": [
        {
          "instruction": "Use this guidance when preparing a valid value for this schema node.",
          "input": "",
          "output": "Optional external or internal references that support the component hierarchy document."
        }
      ]
    },
    "annotations": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/Annotation"
      }
    }
  },
  "additionalProperties": false,
  "$defs": {
    "LanguageTag": {
      "type": "string",
      "pattern": "^[a-z]{2,3}(-[A-Z]{2})?$"
    },
    "Author": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "minLength": 1
        },
        "url": {
          "type": [
            "string",
            "null"
          ],
          "format": "uri"
        },
        "email": {
          "type": [
            "string",
            "null"
          ],
          "format": "email"
        }
      },
      "additionalProperties": false,
      "required": [
        "name"
      ],
      "title": "Author"
    },
    "DocumentMeta": {
      "type": "object",
      "properties": {
        "schemaVersion": {
          "const": "1.0.0"
        },
        "documentTypeId": {
          "const": "component-hierarchy"
        },
        "documentId": {
          "type": "string",
          "format": "uuid"
        },
        "title": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[^<>]*$"
        },
        "createdAt": {
          "type": "string",
          "format": "date-time"
        },
        "authors": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#/$defs/Author"
          }
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time"
        },
        "status": {
          "type": "string",
          "enum": [
            "Draft",
            "Review",
            "Approved",
            "Published",
            "Deprecated"
          ]
        },
        "language": {
          "$ref": "#/$defs/LanguageTag"
        },
        "summary": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[^<>]*$"
        },
        "intendedAudience": {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1,
            "pattern": "^[^<>]*$"
          },
          "uniqueItems": true
        },
        "confidentiality": {
          "type": "string",
          "enum": [
            "Public Example",
            "Internal",
            "Confidential",
            "Restricted"
          ]
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1,
            "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
          },
          "uniqueItems": true
        },
        "license": {
          "type": [
            "string",
            "null"
          ],
          "minLength": 1,
          "pattern": "^[^<>]*$"
        },
        "provenance": {
          "type": [
            "string",
            "null"
          ],
          "minLength": 1,
          "pattern": "^[^<>]*$"
        }
      },
      "additionalProperties": false,
      "required": [
        "schemaVersion",
        "documentTypeId",
        "documentId",
        "title",
        "createdAt",
        "authors"
      ],
      "title": "Cuddler Document Meta",
      "for-ai": [
        {
          "instruction": "Provide schema identity, document identity, authorship, status, and confidentiality metadata for the component hierarchy document.",
          "input": "",
          "output": ""
        }
      ]
    },
    "Section": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
        },
        "title": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[^<>]*$"
        },
        "blocks": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string"
              },
              "text": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "additionalProperties": true,
            "required": [
              "type"
            ]
          }
        }
      },
      "additionalProperties": false,
      "required": [
        "key",
        "title",
        "blocks"
      ],
      "title": "Narrative Section"
    },
    "DocumentContent": {
      "type": "object",
      "properties": {
        "sections": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#/$defs/Section"
          }
        },
        "documentModel": {
          "$ref": "#/$defs/ComponentHierarchyModel"
        }
      },
      "additionalProperties": false,
      "required": [
        "sections",
        "documentModel"
      ],
      "title": "Cuddler Document Content",
      "for-ai": [
        {
          "instruction": "Put human-readable narrative in sections and the machine-validatable component hierarchy in documentModel.stage.",
          "input": "",
          "output": ""
        }
      ]
    },
    "Assets": {
      "type": "object",
      "properties": {
        "library": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1,
                "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
              },
              "url": {
                "type": "string",
                "format": "uri-reference"
              },
              "mediaType": {
                "type": "string",
                "minLength": 1
              }
            },
            "additionalProperties": false,
            "required": [
              "id",
              "url"
            ]
          }
        }
      },
      "additionalProperties": false,
      "required": [
        "library"
      ]
    },
    "Reference": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
        },
        "title": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[^<>]*$"
        },
        "url": {
          "type": "string",
          "format": "uri"
        }
      },
      "additionalProperties": false,
      "required": [
        "id",
        "title",
        "url"
      ]
    },
    "Annotation": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
        },
        "value": {
          "type": [
            "string",
            "number",
            "boolean",
            "null"
          ]
        }
      },
      "additionalProperties": false,
      "required": [
        "key",
        "value"
      ]
    },
    "CommonVisualProps": {
      "type": "object",
      "properties": {
        "class": {
          "type": [
            "string",
            "null"
          ],
          "pattern": "^[A-Za-z0-9_ .:-]*$"
        },
        "width": {
          "type": [
            "string",
            "null"
          ],
          "pattern": "^(auto|0|[0-9]+(\\.[0-9]+)?(px|rem|em|%|vh|vw|ch))$"
        },
        "height": {
          "type": [
            "string",
            "null"
          ],
          "pattern": "^(auto|0|[0-9]+(\\.[0-9]+)?(px|rem|em|%|vh|vw|ch))$"
        },
        "testId": {
          "type": [
            "string",
            "null"
          ],
          "minLength": 1,
          "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
        },
        "tabId": {
          "type": [
            "string",
            "null"
          ],
          "minLength": 1,
          "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
        },
        "isVisible": {
          "type": [
            "boolean",
            "null"
          ],
          "default": true
        }
      },
      "for-ai": [
        {
          "instruction": "Use visual properties only for safe styling hooks and layout constraints that the consuming page genuinely needs to set.",
          "input": "",
          "output": ""
        }
      ]
    },
    "CommonAccessibilityProps": {
      "type": "object",
      "properties": {
        "ariaLabel": {
          "type": [
            "string",
            "null"
          ],
          "minLength": 1,
          "pattern": "^[^<>]*$"
        },
        "description": {
          "type": [
            "string",
            "null"
          ],
          "minLength": 1,
          "pattern": "^[^<>]*$"
        },
        "role": {
          "type": [
            "string",
            "null"
          ],
          "enum": [
            null,
            "button",
            "link",
            "img",
            "group",
            "region",
            "navigation",
            "list",
            "listitem",
            "article",
            "presentation",
            "status",
            "alert",
            "toolbar",
            "progressbar"
          ]
        }
      },
      "for-ai": [
        {
          "instruction": "Provide ariaLabel when visible text or label is missing. Do not override native semantics unless required.",
          "input": "",
          "output": ""
        }
      ]
    },
    "FieldProps": {
      "type": "object",
      "properties": {
        "binding": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$"
        },
        "label": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[^<>]*$"
        },
        "ariaLabel": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[^<>]*$"
        },
        "helpText": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[^<>]*$"
        },
        "isRequired": {
          "type": "boolean",
          "default": false
        },
        "validationDisplay": {
          "type": "string",
          "enum": [
            "Inline",
            "Tooltip",
            "Both",
            "None"
          ],
          "default": "Inline"
        },
        "placeholder": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[^<>]*$"
        },
        "isEnabled": {
          "type": "boolean",
          "default": true
        },
        "isReadOnly": {
          "type": "boolean",
          "default": false
        }
      },
      "anyOf": [
        {
          "required": [
            "label"
          ]
        },
        {
          "required": [
            "ariaLabel"
          ]
        }
      ],
      "for-ai": [
        {
          "instruction": "Use FieldProps for form input nodes. Binding must point to a model field. Every input needs label or ariaLabel.",
          "input": "",
          "output": ""
        }
      ]
    },
    "OptionalFieldProps": {
      "type": "object",
      "properties": {
        "binding": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$"
        },
        "label": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[^<>]*$"
        },
        "ariaLabel": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[^<>]*$"
        },
        "helpText": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[^<>]*$"
        },
        "isRequired": {
          "type": "boolean",
          "default": false
        },
        "validationDisplay": {
          "type": "string",
          "enum": [
            "Inline",
            "Tooltip",
            "Both",
            "None"
          ],
          "default": "Inline"
        },
        "placeholder": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[^<>]*$"
        },
        "isEnabled": {
          "type": "boolean",
          "default": true
        },
        "isReadOnly": {
          "type": "boolean",
          "default": false
        }
      },
      "anyOf": [
        {
          "required": [
            "label"
          ]
        },
        {
          "required": [
            "ariaLabel"
          ]
        }
      ],
      "for-ai": [
        {
          "instruction": "Use for field-like helper controls that may bind to a field but can also operate contextually.",
          "input": "",
          "output": ""
        }
      ]
    },
    "Option": {
      "type": "object",
      "properties": {
        "text": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[^<>]*$"
        },
        "label": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[^<>]*$"
        },
        "value": {
          "type": [
            "string",
            "number",
            "integer",
            "boolean"
          ]
        },
        "disabled": {
          "type": "boolean"
        },
        "group": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[^<>]*$"
        },
        "icon": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
        }
      },
      "additionalProperties": true,
      "required": [
        "value"
      ],
      "title": "Option"
    },
    "ChoiceProps": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#/$defs/Option"
          }
        },
        "options": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#/$defs/Option"
          }
        },
        "dataSourceKey": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
        },
        "textField": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$"
        },
        "valueField": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$"
        },
        "allowCustom": {
          "type": "boolean",
          "default": false
        },
        "allowFiltering": {
          "type": "boolean",
          "default": false
        }
      },
      "for-ai": [
        {
          "instruction": "Supply either explicit items or a dataSourceKey with text/value field mappings.",
          "input": "",
          "output": ""
        }
      ]
    },
    "NumericRangeProps": {
      "type": "object",
      "properties": {
        "min": {
          "type": "number"
        },
        "max": {
          "type": "number"
        },
        "step": {
          "type": "number",
          "exclusiveMinimum": 0
        },
        "format": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[^<>]*$"
        },
        "decimals": {
          "type": "integer",
          "minimum": 0,
          "maximum": 10
        }
      },
      "for-ai": [
        {
          "instruction": "Use numeric constraints for numeric entry, sliders, ranges, reports, and gauges. Enforce min <= max semantically when both are present.",
          "input": "",
          "output": ""
        }
      ]
    },
    "DateTimeRangeProps": {
      "type": "object",
      "properties": {
        "min": {
          "type": "string",
          "format": "date-time"
        },
        "max": {
          "type": "string",
          "format": "date-time"
        },
        "format": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[^<>]*$"
        },
        "disabledDates": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "date"
          },
          "uniqueItems": true
        }
      },
      "for-ai": [
        {
          "instruction": "Use ISO/RFC3339 date-time values for bounds and ISO date values for disabled dates.",
          "input": "",
          "output": ""
        }
      ]
    },
    "FileInputProps": {
      "type": "object",
      "properties": {
        "allowedExtensions": {
          "type": "array",
          "items": {
            "type": "string",
            "pattern": "^\\.[a-z0-9]+$"
          },
          "uniqueItems": true
        },
        "maxFileSizeBytes": {
          "type": "integer",
          "exclusiveMinimum": 0
        },
        "maxFiles": {
          "type": "integer",
          "exclusiveMinimum": 0
        },
        "accept": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_.,/*+ -]+$"
        },
        "saveEndpointKey": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
        },
        "removeEndpointKey": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
        }
      },
      "for-ai": [
        {
          "instruction": "Use file input properties for browser hints and client validation; server-side validation remains required.",
          "input": "",
          "output": ""
        }
      ]
    },
    "ButtonActionProps": {
      "type": "object",
      "properties": {
        "text": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[^<>]*$"
        },
        "icon": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
        },
        "ariaLabel": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[^<>]*$"
        },
        "buttonType": {
          "type": "string",
          "enum": [
            "Button",
            "Submit",
            "Reset"
          ],
          "default": "Button"
        },
        "tone": {
          "type": "string",
          "enum": [
            "Default",
            "Primary",
            "Info",
            "Success",
            "Warning",
            "Danger",
            "Neutral"
          ],
          "default": "Default"
        },
        "commandId": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
        },
        "confirmationKey": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
        }
      },
      "anyOf": [
        {
          "required": [
            "text"
          ]
        },
        {
          "required": [
            "icon",
            "ariaLabel"
          ]
        },
        {
          "required": [
            "commandId"
          ]
        }
      ],
      "for-ai": [
        {
          "instruction": "Use commandId to bind behavior outside the component hierarchy. Do not embed executable code in JSON.",
          "input": "",
          "output": ""
        }
      ]
    },
    "Column": {
      "type": "object",
      "properties": {
        "field": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$"
        },
        "title": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[^<>]*$"
        },
        "format": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[^<>]*$"
        },
        "visible": {
          "type": "boolean"
        },
        "sortable": {
          "type": "boolean"
        },
        "filterable": {
          "type": "boolean"
        },
        "width": {
          "type": "string",
          "pattern": "^(auto|0|[0-9]+(\\.[0-9]+)?(px|rem|em|%|vh|vw|ch))$"
        }
      },
      "additionalProperties": false,
      "required": [
        "field",
        "title"
      ],
      "title": "Data Column"
    },
    "DataProps": {
      "type": "object",
      "properties": {
        "dataSourceKey": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
        },
        "title": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[^<>]*$"
        },
        "summary": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[^<>]*$"
        },
        "emptyText": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[^<>]*$"
        },
        "columns": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#/$defs/Column"
          }
        },
        "keyField": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$"
        },
        "parentField": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$"
        },
        "titleField": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$"
        },
        "descriptionField": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$"
        },
        "metaField": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$"
        },
        "idField": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$"
        },
        "startField": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$"
        },
        "endField": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$"
        },
        "pageSize": {
          "type": "integer",
          "minimum": 1,
          "maximum": 500
        },
        "allowPaging": {
          "type": "boolean",
          "default": true
        },
        "allowSorting": {
          "type": "boolean",
          "default": true
        },
        "allowFiltering": {
          "type": "boolean",
          "default": false
        },
        "allowExport": {
          "type": "boolean",
          "default": false
        },
        "selectionMode": {
          "type": "string",
          "enum": [
            "None",
            "Single",
            "Multiple"
          ],
          "default": "None"
        },
        "rowSelectionBinding": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$"
        },
        "detailMode": {
          "type": "string",
          "enum": [
            "None",
            "Slideout",
            "ChildPage"
          ],
          "default": "None"
        },
        "detailRouteTemplate": {
          "type": "string",
          "minLength": 1,
          "pattern": "^/[^<>]*$"
        },
        "detailKeyField": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$"
        },
        "detailPageId": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[A-Za-z0-9_.:-]+$"
        }
      },
      "for-ai": [
        {
          "instruction": "Use DataProps to bind data components to named data sources and explicit columns/field mappings.",
          "input": "",
          "output": ""
        }
      ]
    },
    "ReportSeries": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[^<>]*$"
        },
        "valueField": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$"
        },
        "categoryField": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$"
        },
        "type": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
        },
        "tone": {
          "type": "string",
          "enum": [
            "Default",
            "Info",
            "Success",
            "Warning",
            "Danger",
            "Neutral"
          ]
        }
      },
      "additionalProperties": false,
      "required": [
        "name",
        "valueField"
      ],
      "title": "Report Series"
    },
    "ReportProps": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[^<>]*$"
        },
        "dataSourceKey": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
        },
        "series": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#/$defs/ReportSeries"
          }
        },
        "categoryField": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$"
        },
        "legendVisible": {
          "type": "boolean",
          "default": true
        },
        "tooltipVisible": {
          "type": "boolean",
          "default": true
        },
        "allowExport": {
          "type": "boolean",
          "default": false
        }
      },
      "for-ai": [
        {
          "instruction": "Use Reports to visualize data. Supply dataSourceKey and series for data-backed report components.",
          "input": "",
          "output": ""
        }
      ]
    },
    "GaugeRange": {
      "type": "object",
      "properties": {
        "from": {
          "type": "number"
        },
        "to": {
          "type": "number"
        },
        "tone": {
          "type": "string",
          "enum": [
            "Default",
            "Info",
            "Success",
            "Warning",
            "Danger",
            "Neutral"
          ]
        },
        "label": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[^<>]*$"
        }
      },
      "additionalProperties": false,
      "required": [
        "from",
        "to",
        "tone"
      ]
    },
    "GaugeProps": {
      "type": "object",
      "required": [
        "value",
        "min",
        "max"
      ],
      "properties": {
        "value": {
          "type": "number"
        },
        "min": {
          "type": "number"
        },
        "max": {
          "type": "number"
        },
        "label": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[^<>]*$"
        },
        "ranges": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/GaugeRange"
          }
        }
      },
      "for-ai": [
        {
          "instruction": "Use gauges for compact single-metric displays. Validate min <= value <= max semantically.",
          "input": "",
          "output": ""
        }
      ]
    },
    "TextBoxProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/FieldProps"
        },
        {
          "type": "object",
          "properties": {
            "minLength": {
              "type": "integer",
              "minimum": 0
            },
            "maxLength": {
              "type": "integer",
              "minimum": 1
            }
          }
        }
      ],
      "type": "object",
      "unevaluatedProperties": true,
      "for-ai": [
        {
          "instruction": "Text input values are bound through binding and can optionally constrain minLength/maxLength.",
          "input": "",
          "output": ""
        }
      ]
    },
    "TextAreaProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/FieldProps"
        },
        {
          "type": "object",
          "properties": {
            "rows": {
              "type": "integer",
              "minimum": 1,
              "maximum": 50
            },
            "minLength": {
              "type": "integer",
              "minimum": 0
            },
            "maxLength": {
              "type": "integer",
              "minimum": 1
            }
          }
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "MaskedTextBoxProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/FieldProps"
        },
        {
          "type": "object",
          "properties": {
            "mask": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[^<>]*$"
            }
          },
          "required": [
            "mask"
          ]
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "NumericTextBoxProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/FieldProps"
        },
        {
          "$ref": "#/$defs/NumericRangeProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "DateInputProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/FieldProps"
        },
        {
          "$ref": "#/$defs/DateTimeRangeProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "DatePickerProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/FieldProps"
        },
        {
          "$ref": "#/$defs/DateTimeRangeProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "DateRangePickerProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/FieldProps"
        },
        {
          "$ref": "#/$defs/DateTimeRangeProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "DateTimePickerProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/FieldProps"
        },
        {
          "$ref": "#/$defs/DateTimeRangeProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "TimePickerProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/FieldProps"
        },
        {
          "$ref": "#/$defs/DateTimeRangeProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "CheckBoxProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/FieldProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "RadioGroupProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/FieldProps"
        },
        {
          "$ref": "#/$defs/ChoiceProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "SwitchProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/FieldProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "AutoCompleteProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/FieldProps"
        },
        {
          "$ref": "#/$defs/ChoiceProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "ComboBoxProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/FieldProps"
        },
        {
          "$ref": "#/$defs/ChoiceProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "DropDownListProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/FieldProps"
        },
        {
          "$ref": "#/$defs/ChoiceProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "DropDownTreeProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/FieldProps"
        },
        {
          "$ref": "#/$defs/ChoiceProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "MultiColumnComboBoxProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/FieldProps"
        },
        {
          "$ref": "#/$defs/ChoiceProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "MultiSelectProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/FieldProps"
        },
        {
          "$ref": "#/$defs/ChoiceProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "ListBoxProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/FieldProps"
        },
        {
          "$ref": "#/$defs/ChoiceProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "ColorPickerProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/FieldProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "FlatColorPickerProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/FieldProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "ColorGradientProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/FieldProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "ColorPaletteProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/FieldProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "RatingProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/FieldProps"
        },
        {
          "$ref": "#/$defs/NumericRangeProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "SignatureProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/FieldProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "RichTextEditorProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/FieldProps"
        },
        {
          "type": "object",
          "properties": {
            "toolbarPreset": {
              "type": "string",
              "enum": [
                "Basic",
                "Standard",
                "Full"
              ]
            },
            "maxLength": {
              "type": "integer",
              "minimum": 1
            }
          }
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "UploadProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/FieldProps"
        },
        {
          "$ref": "#/$defs/FileInputProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "FileSelectProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/FieldProps"
        },
        {
          "$ref": "#/$defs/FileInputProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "DropZoneProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/FieldProps"
        },
        {
          "$ref": "#/$defs/FileInputProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "SliderProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/FieldProps"
        },
        {
          "$ref": "#/$defs/NumericRangeProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "RangeSliderProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/FieldProps"
        },
        {
          "$ref": "#/$defs/NumericRangeProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "AIPromptProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/OptionalFieldProps"
        },
        {
          "type": "object",
          "properties": {
            "promptTemplateKey": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
            },
            "targetBinding": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$"
            },
            "maxPromptLength": {
              "type": "integer",
              "minimum": 1,
              "maximum": 20000
            },
            "allowAcceptReject": {
              "type": "boolean"
            }
          }
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "InlineAIPromptProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/OptionalFieldProps"
        },
        {
          "type": "object",
          "properties": {
            "promptTemplateKey": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
            },
            "targetBinding": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$"
            },
            "maxPromptLength": {
              "type": "integer",
              "minimum": 1,
              "maximum": 20000
            },
            "allowAcceptReject": {
              "type": "boolean"
            }
          }
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "PromptBoxProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/OptionalFieldProps"
        },
        {
          "type": "object",
          "properties": {
            "promptTemplateKey": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
            },
            "targetBinding": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$"
            },
            "maxPromptLength": {
              "type": "integer",
              "minimum": 1,
              "maximum": 20000
            },
            "allowAcceptReject": {
              "type": "boolean"
            }
          }
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "SmartPasteButtonProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/OptionalFieldProps"
        },
        {
          "type": "object",
          "properties": {
            "promptTemplateKey": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
            },
            "targetBinding": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$"
            },
            "maxPromptLength": {
              "type": "integer",
              "minimum": 1,
              "maximum": 20000
            },
            "allowAcceptReject": {
              "type": "boolean"
            }
          }
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "SpeechToTextButtonProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/OptionalFieldProps"
        },
        {
          "type": "object",
          "properties": {
            "promptTemplateKey": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
            },
            "targetBinding": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$"
            },
            "maxPromptLength": {
              "type": "integer",
              "minimum": 1,
              "maximum": 20000
            },
            "allowAcceptReject": {
              "type": "boolean"
            }
          }
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "ButtonProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/ButtonActionProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "ButtonGroupProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/ButtonActionProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "DropDownButtonProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/ButtonActionProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "SplitButtonProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/ButtonActionProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "ToggleButtonProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/ButtonActionProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "FloatingActionButtonProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/ButtonActionProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "BadgeProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "type": "object",
          "properties": {
            "text": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[^<>]*$"
            },
            "value": {
              "type": [
                "string",
                "number",
                "integer",
                "boolean"
              ]
            },
            "icon": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
            },
            "tone": {
              "type": "string",
              "enum": [
                "Default",
                "Info",
                "Success",
                "Warning",
                "Danger",
                "Neutral"
              ]
            }
          },
          "required": [
            "text"
          ]
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "ChipProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "type": "object",
          "properties": {
            "text": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[^<>]*$"
            },
            "value": {
              "type": [
                "string",
                "number",
                "integer",
                "boolean"
              ]
            },
            "icon": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
            },
            "tone": {
              "type": "string",
              "enum": [
                "Default",
                "Info",
                "Success",
                "Warning",
                "Danger",
                "Neutral"
              ]
            }
          },
          "required": [
            "text"
          ]
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "ChipListProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "type": "object",
          "properties": {
            "items": {
              "type": "array",
              "minItems": 1,
              "items": {
                "$ref": "#/$defs/Option"
              }
            },
            "selectionMode": {
              "type": "string",
              "enum": [
                "None",
                "Single",
                "Multiple"
              ]
            }
          },
          "required": [
            "items"
          ]
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "DataGridProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/DataProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "ListViewProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/DataProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "TreeListProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/DataProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "TreeViewProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/DataProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "PivotGridProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/DataProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "SpreadsheetProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "type": "object",
          "properties": {
            "workbookAssetId": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
            },
            "dataSourceKey": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
            },
            "allowImport": {
              "type": "boolean"
            },
            "allowExport": {
              "type": "boolean"
            }
          }
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "CalendarProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/DateTimeRangeProps"
        },
        {
          "type": "object",
          "properties": {
            "binding": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$"
            },
            "selectedDate": {
              "type": "string",
              "format": "date"
            },
            "eventDataSourceKey": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
            }
          }
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "GanttProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/DataProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "SchedulerProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/DataProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "CuddlerSchedulerProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "type": "object",
          "required": [
            "scope",
            "contextId"
          ],
          "properties": {
            "scope": {
              "type": "string",
              "enum": [
                "User",
                "Organization"
              ]
            },
            "contextId": {
              "type": "string",
              "minLength": 1,
              "pattern": "^(\\$currentUserId|\\$currentOrganizationId|[0-9a-fA-F]{8}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{12})$"
            },
            "title": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[^<>]*$"
            },
            "height": {
              "type": "string",
              "pattern": "^(auto|0|[0-9]+(\\.[0-9]+)?(px|rem|em|%|vh|vw|ch))$"
            },
            "defaultView": {
              "type": "string",
              "enum": [
                "Day",
                "Week",
                "Month"
              ],
              "default": "Week"
            },
            "views": {
              "type": "array",
              "minItems": 1,
              "uniqueItems": true,
              "items": {
                "type": "string",
                "enum": [
                  "Day",
                  "Week",
                  "Month"
                ]
              }
            },
            "workDayStart": {
              "type": "string",
              "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$"
            },
            "workDayEnd": {
              "type": "string",
              "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$"
            }
          }
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "ChartProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/ReportProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "AreaChartProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/ReportProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "BarChartProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/ReportProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "BubbleChartProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/ReportProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "CandlestickChartProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/ReportProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "ColumnChartProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/ReportProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "DonutChartProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/ReportProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "LineChartProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/ReportProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "OHLCChartProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/ReportProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "PieChartProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/ReportProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "RadarAreaChartProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/ReportProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "RadarColumnChartProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/ReportProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "RadarLineChartProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/ReportProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "RangeAreaChartProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/ReportProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "RangeBarChartProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/ReportProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "RangeColumnChartProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/ReportProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "ScatterChartProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/ReportProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "ScatterLineChartProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/ReportProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "StockChartProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/ReportProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "TrendlineChartProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/ReportProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "WaterfallChartProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/ReportProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "HeatmapProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/ReportProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "SankeyChartProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/ReportProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "DiagramProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "type": "object",
          "properties": {
            "title": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[^<>]*$"
            },
            "nodes": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "minLength": 1,
                    "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
                  },
                  "text": {
                    "type": "string",
                    "minLength": 1,
                    "pattern": "^[^<>]*$"
                  }
                },
                "additionalProperties": false,
                "required": [
                  "id",
                  "text"
                ]
              }
            },
            "connectors": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "fromNodeId": {
                    "type": "string",
                    "minLength": 1,
                    "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
                  },
                  "toNodeId": {
                    "type": "string",
                    "minLength": 1,
                    "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
                  },
                  "label": {
                    "type": "string",
                    "minLength": 1,
                    "pattern": "^[^<>]*$"
                  }
                },
                "additionalProperties": false,
                "required": [
                  "fromNodeId",
                  "toNodeId"
                ]
              }
            }
          },
          "required": [
            "nodes",
            "connectors"
          ]
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "MapProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "type": "object",
          "properties": {
            "title": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[^<>]*$"
            },
            "points": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "latitude": {
                    "type": "number",
                    "minimum": -90,
                    "maximum": 90
                  },
                  "longitude": {
                    "type": "number",
                    "minimum": -180,
                    "maximum": 180
                  },
                  "title": {
                    "type": "string",
                    "minLength": 1,
                    "pattern": "^[^<>]*$"
                  }
                },
                "additionalProperties": false,
                "required": [
                  "latitude",
                  "longitude"
                ]
              }
            }
          }
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "HeadingProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "type": "object",
          "properties": {
            "text": {
              "type": "string",
              "minLength": 1
            },
            "level": {
              "type": "integer",
              "minimum": 1,
              "maximum": 6
            },
            "align": {
              "type": "string",
              "enum": [
                "Start",
                "Center",
                "End"
              ]
            }
          },
          "required": [
            "text"
          ]
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "ParagraphProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "type": "object",
          "properties": {
            "text": {
              "type": "string",
              "minLength": 1
            },
            "level": {
              "type": "integer",
              "minimum": 1,
              "maximum": 6
            },
            "align": {
              "type": "string",
              "enum": [
                "Start",
                "Center",
                "End"
              ]
            }
          },
          "required": [
            "text"
          ]
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "ImageProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "type": "object",
          "properties": {
            "src": {
              "type": "string",
              "format": "uri-reference"
            },
            "alt": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[^<>]*$"
            },
            "caption": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[^<>]*$"
            }
          },
          "required": [
            "src",
            "alt"
          ]
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "VideoProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "type": "object",
          "properties": {
            "src": {
              "type": "string",
              "format": "uri-reference"
            },
            "poster": {
              "type": "string",
              "format": "uri-reference"
            },
            "caption": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[^<>]*$"
            },
            "controls": {
              "type": "boolean"
            }
          },
          "required": [
            "src"
          ]
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "LinkProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "type": "object",
          "properties": {
            "href": {
              "type": "string",
              "format": "uri-reference"
            },
            "text": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[^<>]*$"
            },
            "target": {
              "type": "string",
              "enum": [
                "Self",
                "Blank",
                "Parent",
                "Top"
              ]
            },
            "icon": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
            }
          },
          "required": [
            "href",
            "text"
          ]
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "ListProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "type": "object",
          "properties": {
            "ordered": {
              "type": "boolean"
            },
            "items": {
              "type": "array",
              "minItems": 1,
              "items": {
                "type": "string",
                "minLength": 1,
                "pattern": "^[^<>]*$"
              }
            }
          },
          "required": [
            "items"
          ]
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "DividerProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "type": "object",
          "properties": {
            "label": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[^<>]*$"
            }
          }
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "CodeBlockProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "type": "object",
          "properties": {
            "code": {
              "type": "string",
              "minLength": 1
            },
            "language": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
            },
            "showCopyButton": {
              "type": "boolean"
            }
          },
          "required": [
            "code"
          ]
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "HtmlContentProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "type": "object",
          "properties": {
            "html": {
              "type": "string",
              "minLength": 1
            },
            "sanitizationPolicyKey": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
            }
          },
          "required": [
            "html"
          ]
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "AvatarProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[^<>]*$"
            },
            "imageUrl": {
              "type": "string",
              "format": "uri-reference"
            },
            "initials": {
              "type": "string",
              "minLength": 1,
              "maxLength": 4
            },
            "icon": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
            }
          }
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "BarcodeProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "type": "object",
          "properties": {
            "value": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[^<>]*$"
            },
            "format": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
            }
          },
          "required": [
            "value"
          ]
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "QRCodeProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "type": "object",
          "properties": {
            "value": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[^<>]*$"
            },
            "format": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
            }
          },
          "required": [
            "value"
          ]
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "FontIconProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "type": "object",
          "properties": {
            "icon": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
            },
            "tone": {
              "type": "string",
              "enum": [
                "Default",
                "Info",
                "Success",
                "Warning",
                "Danger",
                "Neutral"
              ]
            }
          },
          "required": [
            "icon"
          ]
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "SVGIconProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "type": "object",
          "properties": {
            "icon": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
            },
            "tone": {
              "type": "string",
              "enum": [
                "Default",
                "Info",
                "Success",
                "Warning",
                "Danger",
                "Neutral"
              ]
            }
          },
          "required": [
            "icon"
          ]
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "SharedModuleComponentHostProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "type": "object",
          "properties": {
            "componentKey": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
            }
          },
          "required": [
            "componentKey"
          ]
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "FormProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "type": "object",
          "properties": {
            "modelKey": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
            },
            "submitCommandId": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
            },
            "cancelCommandId": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
            },
            "title": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[^<>]*$"
            },
            "validationSummaryVisible": {
              "type": "boolean"
            }
          },
          "required": [
            "modelKey"
          ]
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "CardProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "type": "object",
          "properties": {
            "title": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[^<>]*$"
            },
            "layout": {
              "type": "string",
              "enum": [
                "Default",
                "Grid",
                "Stack",
                "Tile",
                "Tabs",
                "Steps",
                "Carousel",
                "Dock"
              ]
            },
            "orientation": {
              "type": "string",
              "enum": [
                "Horizontal",
                "Vertical"
              ]
            }
          }
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "GridLayoutProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "type": "object",
          "properties": {
            "title": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[^<>]*$"
            },
            "layout": {
              "type": "string",
              "enum": [
                "Default",
                "Grid",
                "Stack",
                "Tile",
                "Tabs",
                "Steps",
                "Carousel",
                "Dock"
              ]
            },
            "orientation": {
              "type": "string",
              "enum": [
                "Horizontal",
                "Vertical"
              ]
            }
          }
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "StackLayoutProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "type": "object",
          "properties": {
            "title": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[^<>]*$"
            },
            "layout": {
              "type": "string",
              "enum": [
                "Default",
                "Grid",
                "Stack",
                "Tile",
                "Tabs",
                "Steps",
                "Carousel",
                "Dock"
              ]
            },
            "orientation": {
              "type": "string",
              "enum": [
                "Horizontal",
                "Vertical"
              ]
            }
          }
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "TileLayoutProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "type": "object",
          "properties": {
            "title": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[^<>]*$"
            },
            "layout": {
              "type": "string",
              "enum": [
                "Default",
                "Grid",
                "Stack",
                "Tile",
                "Tabs",
                "Steps",
                "Carousel",
                "Dock"
              ]
            },
            "orientation": {
              "type": "string",
              "enum": [
                "Horizontal",
                "Vertical"
              ]
            }
          }
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "CarouselProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "type": "object",
          "properties": {
            "title": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[^<>]*$"
            },
            "layout": {
              "type": "string",
              "enum": [
                "Default",
                "Grid",
                "Stack",
                "Tile",
                "Tabs",
                "Steps",
                "Carousel",
                "Dock"
              ]
            },
            "orientation": {
              "type": "string",
              "enum": [
                "Horizontal",
                "Vertical"
              ]
            }
          }
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "DockManagerProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "type": "object",
          "properties": {
            "title": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[^<>]*$"
            },
            "layout": {
              "type": "string",
              "enum": [
                "Default",
                "Grid",
                "Stack",
                "Tile",
                "Tabs",
                "Steps",
                "Carousel",
                "Dock"
              ]
            },
            "orientation": {
              "type": "string",
              "enum": [
                "Horizontal",
                "Vertical"
              ]
            }
          }
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "StepperProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "type": "object",
          "properties": {
            "title": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[^<>]*$"
            },
            "layout": {
              "type": "string",
              "enum": [
                "Default",
                "Grid",
                "Stack",
                "Tile",
                "Tabs",
                "Steps",
                "Carousel",
                "Dock"
              ]
            },
            "orientation": {
              "type": "string",
              "enum": [
                "Horizontal",
                "Vertical"
              ]
            }
          }
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "TabStripProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "type": "object",
          "properties": {
            "title": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[^<>]*$"
            },
            "layout": {
              "type": "string",
              "enum": [
                "Default",
                "Grid",
                "Stack",
                "Tile",
                "Tabs",
                "Steps",
                "Carousel",
                "Dock"
              ]
            },
            "orientation": {
              "type": "string",
              "enum": [
                "Horizontal",
                "Vertical"
              ]
            }
          }
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "PDFViewerProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "type": "object",
          "properties": {
            "documentUrl": {
              "type": "string",
              "format": "uri-reference"
            },
            "documentAssetId": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
            },
            "title": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[^<>]*$"
            },
            "initialPage": {
              "type": "integer",
              "minimum": 1
            },
            "initialZoom": {
              "type": "number",
              "minimum": 0.1,
              "maximum": 10
            }
          }
        }
      ],
      "type": "object",
      "unevaluatedProperties": true,
      "for-ai": [
        {
          "instruction": "Supply either documentUrl or documentAssetId for PDFViewer.",
          "input": "",
          "output": ""
        }
      ]
    },
    "ArcGaugeProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/GaugeProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "CircularGaugeProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/GaugeProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "LinearGaugeProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/GaugeProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "RadialGaugeProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "$ref": "#/$defs/GaugeProps"
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "ComponentNode": {
      "type": "object",
      "required": [
        "id",
        "type",
        "props"
      ],
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
        },
        "type": {
          "type": "string",
          "enum": [
            "Stage",
            "CuddlerStage",
            "CuddlerPageHeader",
            "CuddlerStatsRow",
            "CuddlerTopFiveListRow",
            "CuddlerSlideout",
            "TextBox",
            "TextArea",
            "NumberInput",
            "NumericTextBox",
            "DateInput",
            "DatePicker",
            "DateRangePicker",
            "DateTimePicker",
            "TimePicker",
            "TimeSpanPicker",
            "CheckBox",
            "DropDownList",
            "ComboBox",
            "MultiSelect",
            "MultiColumnComboBox",
            "DropDownTree",
            "AutoComplete",
            "MaskedTextBox",
            "RadioGroup",
            "Switch",
            "Slider",
            "RangeSlider",
            "Rating",
            "Upload",
            "FileSelect",
            "ColorPicker",
            "ColorPalette",
            "FlatColorPicker",
            "ColorGradient",
            "Signature",
            "RichTextEditor",
            "Form",
            "Button",
            "ButtonGroup",
            "DropDownButton",
            "SplitButton",
            "ToggleButton",
            "FloatingActionButton",
            "SmartPasteButton",
            "SpeechToTextButton",
            "DataGrid",
            "List",
            "ListView",
            "ListBox",
            "TreeList",
            "TreeView",
            "PivotGrid",
            "Gantt",
            "Scheduler",
            "CuddlerScheduler",
            "Calendar",
            "Heading",
            "Paragraph",
            "HtmlContent",
            "CodeBlock",
            "Image",
            "Video",
            "Link",
            "Avatar",
            "Badge",
            "Chip",
            "ChipList",
            "FontIcon",
            "SVGIcon",
            "QRCode",
            "Barcode",
            "Alert",
            "EmptyState",
            "SecretForm",
            "SecretInput",
            "Divider",
            "Card",
            "Panel",
            "GridLayout",
            "StackLayout",
            "WrapLayout",
            "TabStrip",
            "Stepper",
            "TileLayout",
            "Carousel",
            "DockManager",
            "DropZone",
            "Diagram",
            "Map",
            "PDFViewer",
            "Spreadsheet",
            "AIPrompt",
            "InlineAIPrompt",
            "PromptBox",
            "SharedModuleComponentHost",
            "Stat",
            "Chart",
            "AreaChart",
            "BarChart",
            "BubbleChart",
            "CandlestickChart",
            "ColumnChart",
            "DonutChart",
            "Heatmap",
            "LineChart",
            "OHLCChart",
            "PieChart",
            "RadarAreaChart",
            "RadarColumnChart",
            "RadarLineChart",
            "RangeAreaChart",
            "RangeBarChart",
            "RangeColumnChart",
            "SankeyChart",
            "ScatterChart",
            "ScatterLineChart",
            "StockChart",
            "WaterfallChart",
            "TrendlineChart",
            "ArcGauge",
            "CircularGauge",
            "LinearGauge",
            "RadialGauge"
          ]
        },
        "slot": {
          "type": [
            "string",
            "null"
          ],
          "enum": [
            null,
            "default",
            "header",
            "body",
            "footer",
            "actions",
            "field",
            "template",
            "toolbar",
            "summary",
            "detail"
          ]
        },
        "props": {
          "type": "object"
        },
        "children": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/ComponentNode"
          }
        }
      },
      "allOf": [
        {
          "if": {
            "properties": {
              "type": {
                "const": "TextBox"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/TextBoxProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "TextArea"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/TextAreaProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "MaskedTextBox"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/MaskedTextBoxProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "NumericTextBox"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/NumericTextBoxProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "DateInput"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/DateInputProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "DatePicker"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/DatePickerProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "DateRangePicker"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/DateRangePickerProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "DateTimePicker"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/DateTimePickerProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "TimePicker"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/TimePickerProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "CheckBox"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/CheckBoxProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "RadioGroup"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/RadioGroupProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "Switch"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/SwitchProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "AutoComplete"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/AutoCompleteProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "ComboBox"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/ComboBoxProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "DropDownList"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/DropDownListProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "DropDownTree"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/DropDownTreeProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "MultiColumnComboBox"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/MultiColumnComboBoxProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "MultiSelect"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/MultiSelectProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "ListBox"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/ListBoxProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "ColorPicker"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/ColorPickerProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "FlatColorPicker"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/FlatColorPickerProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "ColorGradient"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/ColorGradientProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "ColorPalette"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/ColorPaletteProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "Rating"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/RatingProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "Signature"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/SignatureProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "RichTextEditor"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/RichTextEditorProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "Upload"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/UploadProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "FileSelect"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/FileSelectProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "DropZone"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/DropZoneProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "Slider"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/SliderProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "RangeSlider"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/RangeSliderProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "AIPrompt"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/AIPromptProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "InlineAIPrompt"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/InlineAIPromptProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "PromptBox"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/PromptBoxProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "SmartPasteButton"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/SmartPasteButtonProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "SpeechToTextButton"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/SpeechToTextButtonProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "Button"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/ButtonProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "ButtonGroup"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/ButtonGroupProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "DropDownButton"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/DropDownButtonProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "SplitButton"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/SplitButtonProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "ToggleButton"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/ToggleButtonProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "FloatingActionButton"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/FloatingActionButtonProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "Badge"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/BadgeProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "Chip"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/ChipProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "ChipList"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/ChipListProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "DataGrid"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/DataGridProps"
              },
              "children": {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/DataTemplateChildNode"
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "ListView"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/ListViewProps"
              },
              "children": {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/DataTemplateChildNode"
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "TreeList"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/TreeListProps"
              },
              "children": {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/DataTemplateChildNode"
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "TreeView"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/TreeViewProps"
              },
              "children": {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/DataTemplateChildNode"
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "PivotGrid"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/PivotGridProps"
              },
              "children": {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/DataTemplateChildNode"
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "Spreadsheet"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/SpreadsheetProps"
              },
              "children": {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/DataTemplateChildNode"
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "Calendar"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/CalendarProps"
              },
              "children": {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/DataTemplateChildNode"
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "Gantt"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/GanttProps"
              },
              "children": {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/DataTemplateChildNode"
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "Scheduler"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/SchedulerProps"
              },
              "children": {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/DataTemplateChildNode"
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "CuddlerScheduler"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/CuddlerSchedulerProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "Chart"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/ChartProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "AreaChart"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/AreaChartProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "BarChart"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/BarChartProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "BubbleChart"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/BubbleChartProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "CandlestickChart"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/CandlestickChartProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "ColumnChart"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/ColumnChartProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "DonutChart"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/DonutChartProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "LineChart"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/LineChartProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "OHLCChart"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/OHLCChartProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "PieChart"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/PieChartProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "RadarAreaChart"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/RadarAreaChartProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "RadarColumnChart"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/RadarColumnChartProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "RadarLineChart"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/RadarLineChartProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "RangeAreaChart"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/RangeAreaChartProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "RangeBarChart"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/RangeBarChartProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "RangeColumnChart"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/RangeColumnChartProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "ScatterChart"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/ScatterChartProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "ScatterLineChart"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/ScatterLineChartProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "StockChart"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/StockChartProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "TrendlineChart"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/TrendlineChartProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "WaterfallChart"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/WaterfallChartProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "Heatmap"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/HeatmapProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "SankeyChart"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/SankeyChartProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "Diagram"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/DiagramProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "Map"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/MapProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "Heading"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/HeadingProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "Paragraph"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/ParagraphProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "Image"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/ImageProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "Video"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/VideoProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "Link"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/LinkProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "List"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/ListProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "Divider"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/DividerProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "CodeBlock"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/CodeBlockProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "HtmlContent"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/HtmlContentProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "Avatar"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/AvatarProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "Barcode"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/BarcodeProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "QRCode"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/QRCodeProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "FontIcon"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/FontIconProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "SVGIcon"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/SVGIconProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "SharedModuleComponentHost"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/SharedModuleComponentHostProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "CuddlerPageHeader"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/CuddlerPageHeaderProps"
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "Form"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/FormProps"
              },
              "children": {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/ComponentNode"
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "Card"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/CardProps"
              },
              "children": {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/ComponentNode"
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "GridLayout"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/GridLayoutProps"
              },
              "children": {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/ComponentNode"
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "StackLayout"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/StackLayoutProps"
              },
              "children": {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/ComponentNode"
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "TileLayout"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/TileLayoutProps"
              },
              "children": {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/ComponentNode"
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "Carousel"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/CarouselProps"
              },
              "children": {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/ComponentNode"
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "DockManager"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/DockManagerProps"
              },
              "children": {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/ComponentNode"
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "Stepper"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/StepperProps"
              },
              "children": {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/ComponentNode"
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "TabStrip"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/TabStripProps"
              },
              "children": {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/ComponentNode"
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "PDFViewer"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/PDFViewerProps"
              },
              "children": {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/ComponentNode"
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "ArcGauge"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/ArcGaugeProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "CircularGauge"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/CircularGaugeProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "LinearGauge"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/LinearGaugeProps"
              }

            }

          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "RadialGauge"
              }
            },
            "required": [
              "type"
            ]
          },
          "then": {
            "properties": {
              "props": {
                "$ref": "#/$defs/RadialGaugeProps"
              }

            }

          }
        }
      ],
      "additionalProperties": false,
      "for-ai": [
        {
          "instruction": "A component node must use one allowed public component type. Props are validated according to type. Children are allowed only where the component type permits hierarchy nesting.",
          "input": "",
          "output": ""
        }
      ]
    },
    "DataTemplateChildNode": {
      "allOf": [
        {
          "$ref": "#/$defs/ComponentNode"
        },
        {
          "properties": {
            "type": {
              "enum": [
                "Heading",
                "Paragraph",
                "Image",
                "Video",
                "Link",
                "List",
                "Divider",
                "CodeBlock",
                "HtmlContent",
                "Avatar",
                "Barcode",
                "QRCode",
                "FontIcon",
                "SVGIcon",
                "Button",
                "ButtonGroup",
                "DropDownButton",
                "SplitButton",
                "ToggleButton",
                "FloatingActionButton",
                "Badge",
                "Chip",
                "ChipList",
                "TextBox",
                "TextArea",
                "MaskedTextBox",
                "NumericTextBox",
                "DateInput",
                "DatePicker",
                "DateRangePicker",
                "DateTimePicker",
                "TimePicker",
                "CheckBox",
                "RadioGroup",
                "Switch",
                "AutoComplete",
                "ComboBox",
                "DropDownList",
                "DropDownTree",
                "MultiColumnComboBox",
                "MultiSelect",
                "ListBox",
                "ColorPicker",
                "FlatColorPicker",
                "ColorGradient",
                "ColorPalette",
                "Rating",
                "Signature",
                "RichTextEditor",
                "Upload",
                "FileSelect",
                "DropZone",
                "Slider",
                "RangeSlider",
                "AIPrompt",
                "InlineAIPrompt",
                "PromptBox",
                "SmartPasteButton",
                "SpeechToTextButton",
                "Form",
                "Card",
                "GridLayout",
                "StackLayout",
                "TileLayout",
                "Carousel",
                "DockManager",
                "Stepper",
                "TabStrip",
                "PDFViewer",
                "CuddlerSlideout"
              ]
            }
          },
          "required": [
            "type"
          ]
        }
      ],
      "for-ai": [
        {
          "instruction": "Inside Data component children, use only nodes that render templates, row actions, filters, compact inputs, tags, elements, or nested containers.",
          "input": "",
          "output": ""
        }
      ]
    },
    "CuddlerPageHeaderProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "$ref": "#/$defs/CommonAccessibilityProps"
        },
        {
          "type": "object",
          "properties": {
            "title": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[^<>]*$"
            },
            "summary": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[^<>]*$"
            }
          },
          "required": [
            "title"
          ]
        }
      ],
      "type": "object",
      "unevaluatedProperties": true
    },
    "StageProps": {
      "allOf": [
        {
          "$ref": "#/$defs/CommonVisualProps"
        },
        {
          "type": "object",
          "properties": {
            "title": {
              "type": "string",
              "minLength": 1,
              "pattern": "^[^<>]*$"
            },
            "layout": {
              "type": [
                "string",
                "null"
              ],
              "enum": [
                null,
                "Collection",
                "Dashboard",
                "Form",
                "Page",
                "Redirect",
                "Workspace"
              ]
            },
            "version": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 1
            },
            "ariaLabel": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 1,
              "pattern": "^[^<>]*$"
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 1,
              "pattern": "^[^<>]*$"
            },
            "role": {
              "type": [
                "string",
                "null"
              ],
              "enum": [
                null,
                "Main",
                "Slideout"
              ],
              "default": "Main"
            }
          },
          "required": [
            "title"
          ]
        }
      ],
      "type": "object",
      "unevaluatedProperties": true,
      "for-ai": [
        {
          "instruction": "Stage defines the root rendered surface for the component hierarchy.",
          "input": "",
          "output": ""
        }
      ]
    },
    "StageNode": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
        },
        "type": {
          "enum": [
            "Stage",
            "CuddlerStage"
          ]
        },
        "props": {
          "$ref": "#/$defs/StageProps"
        },
        "children": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#/$defs/ComponentNode"
          }
        }
      },
      "additionalProperties": false,
      "required": [
        "id",
        "type",
        "props",
        "children"
      ],
      "title": "Stage Root Node",
      "for-ai": [
        {
          "instruction": "Stage is the single root node for all public components. All components must appear under Stage directly or indirectly.",
          "input": "",
          "output": ""
        }
      ]
    },
    "BindingFieldDefinition": {
      "type": "object",
      "properties": {
        "path": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$"
        },
        "type": {
          "type": "string",
          "minLength": 1
        },
        "label": {
          "type": "string",
          "minLength": 1
        },
        "isRequired": {
          "type": "boolean",
          "default": false
        }
      },
      "additionalProperties": false,
      "required": [
        "path"
      ],
      "title": "Binding Field Definition"
    },
    "BindingModelDefinition": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
        },
        "title": {
          "type": "string",
          "minLength": 1
        },
        "fields": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/BindingFieldDefinition"
          },
          "default": []
        }
      },
      "additionalProperties": false,
      "required": [
        "key",
        "fields"
      ],
      "title": "Binding Model Definition"
    },
    "BindingDataSourceDefinition": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
        },
        "modelKey": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
        },
        "endpointKey": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
        },
        "responsePath": {
          "type": "string",
          "pattern": "^$|^([A-Za-z_][A-Za-z0-9_]*|[0-9]+)(\\.([A-Za-z_][A-Za-z0-9_]*|[0-9]+))*$"
        },
        "fields": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/BindingFieldDefinition"
          },
          "default": []
        }
      },
      "additionalProperties": true,
      "required": [
        "key"
      ],
      "title": "Binding Data Source Definition"
    },
    "BindingCommandDefinition": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
        },
        "label": {
          "type": "string",
          "minLength": 1
        },
        "endpointKey": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
        },
        "modelKey": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
        },
        "blocked": {
          "type": "boolean",
          "default": false
        },
        "payloadKind": {
          "type": "string",
          "enum": [
            "none",
            "json"
          ]
        },
        "bodyBindings": {
          "type": "object",
          "additionalProperties": {
            "type": "string",
            "minLength": 1
          },
          "default": {}
        },
        "parameterBindings": {
          "type": "object",
          "additionalProperties": {
            "type": "string",
            "minLength": 1
          },
          "default": {}
        },
        "refreshDataSourceKeys": {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1,
            "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
          },
          "uniqueItems": true,
          "default": []
        },
        "navigateTo": {
          "type": "string",
          "minLength": 1
        }
      },
      "additionalProperties": false,
      "required": [
        "id"
      ],
      "title": "Binding Command Definition"
    },
    "BindingEndpointDefinition": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string",
          "minLength": 1,
          "pattern": "^[A-Za-z][A-Za-z0-9_.:-]*$"
        },
        "method": {
          "type": "string",
          "enum": [
            "GET",
            "POST",
            "PUT",
            "PATCH",
            "DELETE"
          ]
        },
        "route": {
          "type": "string",
          "minLength": 1
        },
        "url": {
          "type": "string",
          "format": "uri"
        }
      },
      "additionalProperties": false,
      "required": [
        "key"
      ],
      "title": "Binding Endpoint Definition"
    },
    "ComponentHierarchyModel": {
      "type": "object",
      "properties": {
        "stage": {
          "$ref": "#/$defs/StageNode"
        },
        "stages": {
          "type": "array",
          "minItems": 0,
          "items": {
            "$ref": "#/$defs/StageNode"
          },
          "default": []
        },
        "dataSources": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/BindingDataSourceDefinition"
          },
          "default": []
        },
        "models": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/BindingModelDefinition"
          },
          "default": []
        },
        "commands": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/BindingCommandDefinition"
          },
          "default": []
        },
        "endpoints": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/BindingEndpointDefinition"
          },
          "default": []
        }
      },
      "additionalProperties": false,
      "anyOf": [
        {
          "required": [
            "stage"
          ]
        },
        {
          "required": [
            "stages"
          ]
        }
      ],
      "title": "Component Hierarchy Model",
      "for-ai": [
        {
          "instruction": "Use stage for a single Main root. Use stages when declaring both Main and Slideout stage roots.",
          "input": "",
          "output": ""
        }
      ]
    }
  }
}
