{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://visualspec.dev/schema/1.0/schema.bundle.json",
  "title": "Visual Spec 1.0",
  "description": "Framework-independent contract for visual intent: what exists, what it means, how it appears, how it behaves, how it changes, and which evidence defines the expected result.",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "visualSpec",
    "metadata",
    "profiles"
  ],
  "properties": {
    "$schema": {
      "const": "https://visualspec.dev/schema/1.0/schema.json"
    },
    "visualSpec": {
      "const": "1.0"
    },
    "metadata": {
      "$ref": "#/$defs/common/metadata"
    },
    "profiles": {
      "type": "array",
      "minItems": 1,
      "uniqueItems": true,
      "items": {
        "enum": [
          "ui",
          "image",
          "illustration",
          "document",
          "presentation",
          "video",
          "motion-graphics",
          "3d",
          "game"
        ]
      },
      "description": "One or more combinable visual profiles."
    },
    "sources": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/references/source"
      }
    },
    "visualReferences": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/references/reference"
      }
    },
    "visualReferenceSets": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/references/referenceSet"
      }
    },
    "visualLanguage": {
      "$ref": "#/$defs/tokens/visualLanguage"
    },
    "tokens": {
      "$ref": "#/$defs/tokens/tokenRegistry"
    },
    "world": {
      "$ref": "#/$defs/world/world"
    },
    "entities": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/world/entity"
      }
    },
    "relationships": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/world/relationship"
      }
    },
    "scenes": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/scene/scene"
      }
    },
    "components": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/components/component"
      }
    },
    "semantics": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/semantics/semanticNode"
      }
    },
    "events": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/interaction/event"
      }
    },
    "actions": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/interaction/action"
      }
    },
    "states": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/interaction/state"
      }
    },
    "motion": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/motion/animation"
      }
    },
    "timelines": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/timeline/timeline"
      }
    },
    "assets": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/assets/asset"
      }
    },
    "cameras": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/camera/camera"
      }
    },
    "lights": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/lighting/light"
      }
    },
    "materials": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/materials/material"
      }
    },
    "effects": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/effects/effect"
      }
    },
    "compositions": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/media/composition"
      }
    },
    "illustrations": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/media/illustration"
      }
    },
    "videos": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/media/video"
      }
    },
    "presentations": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/presentation/presentation"
      }
    },
    "documents": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/document/document"
      }
    },
    "threeD": {
      "$ref": "#/$defs/three-d/threeD"
    },
    "game": {
      "$ref": "#/$defs/game/game"
    },
    "accessibility": {
      "$ref": "#/$defs/accessibility/accessibility"
    },
    "rendering": {
      "$ref": "#/$defs/rendering/rendering"
    },
    "platformOverrides": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/rendering/override"
      }
    },
    "validation": {
      "$ref": "#/$defs/validation/validation"
    },
    "flows": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/interaction/flow"
      }
    },
    "provenance": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/references/assertion"
      }
    },
    "platforms": {
      "type": "array",
      "items": {
        "enum": [
          "web",
          "apple",
          "android",
          "fluent",
          "custom"
        ]
      },
      "uniqueItems": true
    },
    "extensions": {
      "$ref": "#/$defs/common/extensions"
    }
  },
  "allOf": [
    {
      "if": {
        "required": [
          "profiles"
        ],
        "properties": {
          "profiles": {
            "contains": {
              "const": "ui"
            }
          }
        }
      },
      "then": {
        "required": [
          "scenes"
        ],
        "properties": {
          "scenes": {
            "minItems": 1
          }
        }
      }
    },
    {
      "if": {
        "required": [
          "profiles"
        ],
        "properties": {
          "profiles": {
            "contains": {
              "const": "image"
            }
          }
        }
      },
      "then": {
        "required": [
          "entities",
          "scenes",
          "cameras"
        ],
        "properties": {
          "entities": {
            "minItems": 1
          },
          "scenes": {
            "minItems": 1
          },
          "cameras": {
            "minItems": 1
          }
        }
      }
    },
    {
      "if": {
        "required": [
          "profiles"
        ],
        "properties": {
          "profiles": {
            "contains": {
              "const": "illustration"
            }
          }
        }
      },
      "then": {
        "required": [
          "illustrations",
          "entities"
        ],
        "properties": {
          "illustrations": {
            "minItems": 1
          },
          "entities": {
            "minItems": 1
          }
        }
      }
    },
    {
      "if": {
        "required": [
          "profiles"
        ],
        "properties": {
          "profiles": {
            "contains": {
              "const": "document"
            }
          }
        }
      },
      "then": {
        "required": [
          "documents"
        ],
        "properties": {
          "documents": {
            "minItems": 1
          }
        }
      }
    },
    {
      "if": {
        "required": [
          "profiles"
        ],
        "properties": {
          "profiles": {
            "contains": {
              "const": "presentation"
            }
          }
        }
      },
      "then": {
        "required": [
          "presentations"
        ],
        "properties": {
          "presentations": {
            "minItems": 1
          }
        }
      }
    },
    {
      "if": {
        "required": [
          "profiles"
        ],
        "properties": {
          "profiles": {
            "contains": {
              "const": "video"
            }
          }
        }
      },
      "then": {
        "required": [
          "videos",
          "timelines"
        ],
        "properties": {
          "videos": {
            "minItems": 1
          },
          "timelines": {
            "minItems": 1
          }
        }
      }
    },
    {
      "if": {
        "required": [
          "profiles"
        ],
        "properties": {
          "profiles": {
            "contains": {
              "const": "motion-graphics"
            }
          }
        }
      },
      "then": {
        "required": [
          "motion",
          "scenes"
        ],
        "properties": {
          "motion": {
            "minItems": 1
          },
          "scenes": {
            "minItems": 1
          }
        }
      }
    },
    {
      "if": {
        "required": [
          "profiles"
        ],
        "properties": {
          "profiles": {
            "contains": {
              "const": "3d"
            }
          }
        }
      },
      "then": {
        "required": [
          "threeD",
          "scenes",
          "entities"
        ],
        "properties": {
          "scenes": {
            "minItems": 1
          },
          "entities": {
            "minItems": 1
          }
        }
      }
    },
    {
      "if": {
        "required": [
          "profiles"
        ],
        "properties": {
          "profiles": {
            "contains": {
              "const": "game"
            }
          }
        }
      },
      "then": {
        "required": [
          "game"
        ],
        "properties": {}
      }
    }
  ],
  "$defs": {
    "common": {
      "id": {
        "type": "string",
        "minLength": 1,
        "description": "Stable document-wide identifier; references resolve locally, never through network execution.",
        "pattern": "^[A-Za-z_][A-Za-z0-9_.:/-]*$"
      },
      "taxonomy": {
        "type": "string",
        "minLength": 1,
        "description": "Open taxonomy. Standard terms and namespaced vendor terms are accepted.",
        "pattern": "^[a-zA-Z][a-zA-Z0-9_-]*(?:[.:/][a-zA-Z0-9_-]+)*$"
      },
      "uri": {
        "type": "string",
        "format": "uri-reference",
        "minLength": 1
      },
      "time": {
        "anyOf": [
          {
            "type": "number",
            "minimum": 0
          },
          {
            "type": "string",
            "pattern": "^(?:0|[0-9]+(?:\\.[0-9]+)?)(?:ms|s|f)$",
            "description": "Nonnegative time in seconds (number), an ms/s/f string, or {value,unit}."
          },
          {
            "type": "object",
            "properties": {
              "value": {
                "type": "number",
                "minimum": 0
              },
              "unit": {
                "enum": [
                  "ms",
                  "s",
                  "f"
                ]
              }
            },
            "required": [
              "value",
              "unit"
            ],
            "additionalProperties": false
          }
        ]
      },
      "duration": {
        "anyOf": [
          {
            "type": "number",
            "minimum": 0
          },
          {
            "type": "string",
            "pattern": "^(?:0|[0-9]+(?:\\.[0-9]+)?)(?:ms|s|f)$"
          },
          {
            "type": "object",
            "properties": {
              "value": {
                "type": "number",
                "minimum": 0
              },
              "unit": {
                "enum": [
                  "ms",
                  "s",
                  "f"
                ]
              }
            },
            "required": [
              "value",
              "unit"
            ],
            "additionalProperties": false
          }
        ]
      },
      "delay": {
        "anyOf": [
          {
            "type": "number"
          },
          {
            "type": "string",
            "pattern": "^-?(?:0|[0-9]+(?:\\.[0-9]+)?)(?:ms|s|f)$"
          },
          {
            "type": "object",
            "properties": {
              "value": {
                "type": "number"
              },
              "unit": {
                "enum": [
                  "ms",
                  "s",
                  "f"
                ]
              }
            },
            "required": [
              "value",
              "unit"
            ],
            "additionalProperties": false
          }
        ]
      },
      "dimension": {
        "anyOf": [
          {
            "type": "number"
          },
          {
            "type": "string",
            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:px|%|rem|em|pt|mm|cm|in|vw|vh|vmin|vmax|m)$"
          },
          {
            "type": "object",
            "properties": {
              "value": {
                "type": "number"
              },
              "unit": {
                "enum": [
                  "px",
                  "%",
                  "rem",
                  "em",
                  "pt",
                  "mm",
                  "cm",
                  "in",
                  "vw",
                  "vh",
                  "m"
                ]
              },
              "confidence": {
                "type": "number",
                "minimum": 0,
                "maximum": 1
              },
              "provenance": {
                "$ref": "#/$defs/common/provenance"
              }
            },
            "required": [
              "value",
              "unit"
            ],
            "additionalProperties": false
          },
          {
            "$ref": "#/$defs/common/tokenRef"
          }
        ]
      },
      "size": {
        "anyOf": [
          {
            "type": "number",
            "minimum": 0
          },
          {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]+)?(?:px|%|rem|em|pt|mm|cm|in|vw|vh|vmin|vmax|m)$"
          },
          {
            "enum": [
              "auto",
              "fill",
              "hug",
              "min-content",
              "max-content"
            ]
          },
          {
            "$ref": "#/$defs/common/tokenRef"
          }
        ]
      },
      "tokenRef": {
        "type": "string",
        "pattern": "^\\{[A-Za-z_][A-Za-z0-9_.-]*\\}$"
      },
      "jsonValue": {
        "anyOf": [
          {
            "type": [
              "string",
              "number",
              "boolean",
              "null"
            ]
          },
          {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/jsonValue"
            }
          },
          {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/$defs/common/jsonValue"
            }
          }
        ]
      },
      "extensions": {
        "type": "object",
        "description": "Only namespaced extension keys are allowed. Unknown optional extensions may be retained without interpretation.",
        "propertyNames": {
          "pattern": "^(?:x-[a-zA-Z0-9-]+(?:[.:/][a-zA-Z0-9_.-]+)*|[a-zA-Z][a-zA-Z0-9-]*\\.[a-zA-Z0-9_.-]+)$"
        },
        "additionalProperties": {
          "$ref": "#/$defs/common/jsonValue"
        }
      },
      "provenance": {
        "type": "object",
        "properties": {
          "sourceRef": {
            "$ref": "#/$defs/common/id"
          },
          "method": {
            "enum": [
              "explicit",
              "measured",
              "extracted",
              "inferred",
              "generated",
              "defaulted",
              "platform-derived",
              "vision-inference",
              "reference-derived"
            ]
          },
          "tool": {
            "type": "string",
            "minLength": 1
          },
          "agent": {
            "type": "string",
            "minLength": 1
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          },
          "notes": {
            "type": "string",
            "minLength": 1
          }
        },
        "required": [
          "method"
        ],
        "additionalProperties": false
      },
      "evidence": {
        "type": "object",
        "properties": {
          "status": {
            "enum": [
              "explicit",
              "measured",
              "extracted",
              "inferred",
              "generated",
              "defaulted",
              "platform-derived",
              "unknown"
            ]
          },
          "confidence": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "provenance": {
            "$ref": "#/$defs/common/provenance"
          }
        },
        "required": [
          "status"
        ],
        "additionalProperties": false
      },
      "vector2": {
        "type": "object",
        "properties": {
          "x": {
            "type": "number"
          },
          "y": {
            "type": "number"
          }
        },
        "required": [
          "x",
          "y"
        ],
        "additionalProperties": false
      },
      "vector3": {
        "type": "object",
        "properties": {
          "x": {
            "type": "number"
          },
          "y": {
            "type": "number"
          },
          "z": {
            "type": "number"
          }
        },
        "required": [
          "x",
          "y",
          "z"
        ],
        "additionalProperties": false
      },
      "quaternion": {
        "type": "object",
        "properties": {
          "x": {
            "type": "number",
            "minimum": -1,
            "maximum": 1
          },
          "y": {
            "type": "number",
            "minimum": -1,
            "maximum": 1
          },
          "z": {
            "type": "number",
            "minimum": -1,
            "maximum": 1
          },
          "w": {
            "type": "number",
            "minimum": -1,
            "maximum": 1
          }
        },
        "required": [
          "x",
          "y",
          "z",
          "w"
        ],
        "additionalProperties": false
      },
      "bounds": {
        "type": "object",
        "properties": {
          "x": {
            "type": "number"
          },
          "y": {
            "type": "number"
          },
          "z": {
            "type": "number"
          },
          "width": {
            "type": "number",
            "minimum": 0
          },
          "height": {
            "type": "number",
            "minimum": 0
          },
          "depth": {
            "type": "number",
            "minimum": 0
          },
          "coordinateSpace": {
            "$ref": "#/$defs/common/coordinateSpace"
          }
        },
        "required": [
          "x",
          "y",
          "width",
          "height"
        ],
        "additionalProperties": false
      },
      "coordinateSpace": {
        "enum": [
          "absolute",
          "normalized",
          "local",
          "parent",
          "viewport",
          "world",
          "camera",
          "screen",
          "document"
        ]
      },
      "viewport": {
        "type": "object",
        "properties": {
          "width": {
            "type": "number",
            "minimum": 0
          },
          "height": {
            "type": "number",
            "minimum": 0
          },
          "pixelRatio": {
            "type": "number",
            "exclusiveMinimum": 0
          },
          "orientation": {
            "enum": [
              "portrait",
              "landscape"
            ]
          }
        },
        "required": [
          "width",
          "height"
        ],
        "additionalProperties": false
      },
      "condition": {
        "type": "object",
        "description": "Declarative visual conditions only; no executable expressions or gameplay logic.",
        "properties": {
          "stateRef": {
            "$ref": "#/$defs/common/id"
          },
          "eventRef": {
            "$ref": "#/$defs/common/id"
          },
          "capability": {
            "$ref": "#/$defs/common/taxonomy"
          },
          "equals": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "number"
              },
              {
                "type": "boolean"
              }
            ]
          },
          "not": {
            "type": "boolean"
          },
          "all": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/condition"
            },
            "minItems": 1
          },
          "any": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/condition"
            },
            "minItems": 1
          }
        },
        "additionalProperties": false
      },
      "metadata": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "title": {
            "type": "string",
            "minLength": 1
          },
          "description": {
            "type": "string",
            "minLength": 1
          },
          "version": {
            "type": "string",
            "minLength": 1
          },
          "language": {
            "type": "string",
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$"
          },
          "authors": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "minLength": 1
                },
                "url": {
                  "$ref": "#/$defs/common/uri"
                },
                "email": {
                  "type": "string",
                  "format": "email"
                }
              },
              "required": [
                "name"
              ],
              "additionalProperties": false
            }
          },
          "license": {
            "type": "string",
            "minLength": 1
          },
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "modified": {
            "type": "string",
            "format": "date-time"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "uniqueItems": true
          },
          "status": {
            "enum": [
              "draft",
              "review",
              "approved",
              "deprecated"
            ]
          },
          "links": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/$defs/common/uri"
            }
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "required": [
          "title"
        ],
        "additionalProperties": false
      }
    },
    "references": {
      "source": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "kind": {
            "$ref": "#/$defs/common/taxonomy"
          },
          "uri": {
            "$ref": "#/$defs/common/uri"
          },
          "title": {
            "type": "string",
            "minLength": 1
          },
          "description": {
            "type": "string",
            "minLength": 1
          },
          "mediaType": {
            "type": "string",
            "minLength": 1
          },
          "checksum": {
            "type": "string",
            "minLength": 1
          },
          "version": {
            "type": "string",
            "minLength": 1
          },
          "license": {
            "type": "string",
            "minLength": 1
          },
          "provenance": {
            "$ref": "#/$defs/common/provenance"
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "required": [
          "id",
          "kind"
        ],
        "additionalProperties": false
      },
      "locator": {
        "type": "object",
        "properties": {
          "region": {
            "$ref": "#/$defs/common/bounds"
          },
          "dom": {
            "type": "object",
            "properties": {
              "cssSelector": {
                "type": "string",
                "minLength": 1
              },
              "xpath": {
                "type": "string",
                "minLength": 1
              },
              "text": {
                "type": "string",
                "minLength": 1
              },
              "shadowPath": {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1
                }
              }
            },
            "additionalProperties": false
          },
          "viewport": {
            "$ref": "#/$defs/common/viewport"
          },
          "figma": {
            "type": "object",
            "properties": {
              "fileKey": {
                "type": "string",
                "minLength": 1
              },
              "nodeId": {
                "type": "string",
                "minLength": 1
              },
              "pageId": {
                "type": "string",
                "minLength": 1
              },
              "version": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "fileKey",
              "nodeId"
            ],
            "additionalProperties": false
          },
          "pdf": {
            "type": "object",
            "properties": {
              "page": {
                "type": "integer",
                "minimum": 1
              },
              "region": {
                "$ref": "#/$defs/common/bounds"
              }
            },
            "required": [
              "page"
            ],
            "additionalProperties": false
          },
          "presentation": {
            "type": "object",
            "properties": {
              "slide": {
                "type": "integer",
                "minimum": 1
              },
              "shapeId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "slide"
            ],
            "additionalProperties": false
          },
          "video": {
            "type": "object",
            "properties": {
              "start": {
                "$ref": "#/$defs/common/time"
              },
              "end": {
                "$ref": "#/$defs/common/time"
              },
              "frame": {
                "type": "integer",
                "minimum": 0
              },
              "track": {
                "type": "integer",
                "minimum": 0
              },
              "fps": {
                "type": "number",
                "exclusiveMinimum": 0
              }
            },
            "additionalProperties": false
          },
          "scene3d": {
            "type": "object",
            "properties": {
              "scene": {
                "type": "string",
                "minLength": 1
              },
              "node": {
                "type": "string",
                "minLength": 1
              },
              "camera": {
                "type": "string",
                "minLength": 1
              },
              "material": {
                "type": "string",
                "minLength": 1
              }
            },
            "additionalProperties": false
          },
          "document": {
            "type": "object",
            "properties": {
              "section": {
                "type": "string",
                "minLength": 1
              },
              "heading": {
                "type": "string",
                "minLength": 1
              },
              "paragraph": {
                "type": "integer",
                "minimum": 1
              },
              "bookmark": {
                "type": "string",
                "minLength": 1
              }
            },
            "additionalProperties": false
          },
          "image": {
            "type": "object",
            "properties": {
              "region": {
                "$ref": "#/$defs/common/bounds"
              },
              "frame": {
                "type": "integer",
                "minimum": 0
              }
            },
            "additionalProperties": false
          },
          "text": {
            "type": "object",
            "properties": {
              "start": {
                "type": "integer",
                "minimum": 0
              },
              "end": {
                "type": "integer",
                "minimum": 0
              }
            },
            "additionalProperties": false
          }
        },
        "additionalProperties": false
      },
      "reference": {
        "type": "object",
        "description": "Evidence may be located externally, but validators must never fetch or execute it implicitly.",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "kind": {
            "$ref": "#/$defs/common/taxonomy"
          },
          "role": {
            "enum": [
              "source-of-truth",
              "preferred",
              "supporting",
              "inspiration",
              "avoid"
            ]
          },
          "uri": {
            "$ref": "#/$defs/common/uri"
          },
          "sourceRef": {
            "$ref": "#/$defs/common/id"
          },
          "text": {
            "type": "string",
            "minLength": 1
          },
          "locator": {
            "$ref": "#/$defs/references/locator"
          },
          "aspects": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/taxonomy"
            },
            "minItems": 1,
            "uniqueItems": true
          },
          "weight": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "priority": {
            "type": "integer",
            "minimum": 0
          },
          "confidence": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "provenance": {
            "$ref": "#/$defs/common/provenance"
          },
          "description": {
            "type": "string",
            "minLength": 1
          },
          "referenceRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          },
          "matchMode": {
            "enum": [
              "exact",
              "structural",
              "perceptual",
              "semantic",
              "stylistic",
              "inspirational"
            ]
          },
          "conformance": {
            "type": "object",
            "additionalProperties": {
              "enum": [
                "strict",
                "approximate",
                "inspiration"
              ]
            }
          },
          "tolerance": {
            "$ref": "#/$defs/validation/tolerance"
          }
        },
        "required": [
          "id",
          "kind",
          "role"
        ],
        "additionalProperties": false
      },
      "binding": {
        "type": "object",
        "properties": {
          "referenceRef": {
            "$ref": "#/$defs/common/id"
          },
          "aspects": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/taxonomy"
            },
            "minItems": 1,
            "uniqueItems": true
          },
          "weight": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "priority": {
            "type": "integer",
            "minimum": 0
          }
        },
        "required": [
          "referenceRef"
        ],
        "additionalProperties": false
      },
      "referenceSet": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "title": {
            "type": "string",
            "minLength": 1
          },
          "references": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/$defs/common/id"
                },
                {
                  "$ref": "#/$defs/references/binding"
                }
              ]
            },
            "minItems": 1
          },
          "conflictPolicy": {
            "enum": [
              "priority",
              "first-wins",
              "last-wins",
              "weighted",
              "most-specific",
              "explicit-over-inferred",
              "error"
            ]
          },
          "aspectPriority": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/common/id"
              },
              "uniqueItems": true
            }
          },
          "description": {
            "type": "string",
            "minLength": 1
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "required": [
          "id",
          "references",
          "conflictPolicy"
        ],
        "additionalProperties": false
      },
      "assertion": {
        "type": "object",
        "properties": {
          "path": {
            "type": "string",
            "minLength": 1,
            "description": "JSON Pointer into this document."
          },
          "source": {
            "type": "string",
            "minLength": 1
          },
          "sourceRef": {
            "$ref": "#/$defs/common/id"
          },
          "method": {
            "enum": [
              "direct",
              "derived",
              "inferred",
              "manual",
              "generated",
              "validated",
              "explicit",
              "measured",
              "extracted",
              "vision-inference",
              "reference-derived",
              "defaulted",
              "platform-derived"
            ]
          },
          "confidence": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          }
        },
        "required": [
          "path",
          "method"
        ],
        "additionalProperties": false
      }
    },
    "appearance": {
      "color": {
        "anyOf": [
          {
            "type": "string",
            "pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$"
          },
          {
            "enum": [
              "transparent",
              "currentColor",
              "black",
              "white"
            ]
          },
          {
            "$ref": "#/$defs/common/tokenRef"
          },
          {
            "type": "object",
            "properties": {
              "space": {
                "enum": [
                  "srgb",
                  "srgb-linear",
                  "display-p3",
                  "rec2020",
                  "lab",
                  "lch",
                  "oklab",
                  "oklch",
                  "xyz-d50",
                  "xyz-d65"
                ]
              },
              "channels": {
                "type": "array",
                "items": {
                  "type": "number"
                },
                "minItems": 3,
                "maxItems": 3
              },
              "alpha": {
                "type": "number",
                "minimum": 0,
                "maximum": 1
              }
            },
            "required": [
              "space",
              "channels"
            ],
            "additionalProperties": false
          }
        ]
      },
      "gradient": {
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "linear",
              "radial",
              "conic"
            ]
          },
          "angle": {
            "type": "number"
          },
          "center": {
            "$ref": "#/$defs/common/vector2"
          },
          "stops": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "offset": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1
                },
                "color": {
                  "$ref": "#/$defs/appearance/color"
                }
              },
              "required": [
                "offset",
                "color"
              ],
              "additionalProperties": false
            },
            "minItems": 2
          }
        },
        "required": [
          "type",
          "stops"
        ],
        "additionalProperties": false
      },
      "paint": {
        "anyOf": [
          {
            "$ref": "#/$defs/appearance/color"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "enum": [
                  "solid",
                  "gradient",
                  "image",
                  "pattern"
                ]
              },
              "color": {
                "$ref": "#/$defs/appearance/color"
              },
              "gradient": {
                "$ref": "#/$defs/appearance/gradient"
              },
              "assetRef": {
                "$ref": "#/$defs/common/id"
              },
              "scale": {
                "type": "number",
                "minimum": 0
              },
              "repeat": {
                "enum": [
                  "none",
                  "x",
                  "y",
                  "both"
                ]
              },
              "opacity": {
                "type": "number",
                "minimum": 0,
                "maximum": 1
              }
            },
            "required": [
              "type"
            ],
            "additionalProperties": false
          }
        ]
      },
      "stroke": {
        "type": "object",
        "properties": {
          "color": {
            "$ref": "#/$defs/appearance/color"
          },
          "width": {
            "$ref": "#/$defs/common/size"
          },
          "alignment": {
            "enum": [
              "inside",
              "center",
              "outside"
            ]
          },
          "dash": {
            "type": "array",
            "items": {
              "type": "number",
              "minimum": 0
            }
          },
          "cap": {
            "enum": [
              "butt",
              "round",
              "square"
            ]
          },
          "join": {
            "enum": [
              "miter",
              "round",
              "bevel"
            ]
          }
        },
        "required": [
          "color",
          "width"
        ],
        "additionalProperties": false
      },
      "shadow": {
        "type": "object",
        "properties": {
          "color": {
            "$ref": "#/$defs/appearance/color"
          },
          "x": {
            "$ref": "#/$defs/common/dimension"
          },
          "y": {
            "$ref": "#/$defs/common/dimension"
          },
          "blur": {
            "$ref": "#/$defs/common/size"
          },
          "spread": {
            "$ref": "#/$defs/common/dimension"
          },
          "inset": {
            "type": "boolean"
          }
        },
        "required": [
          "color",
          "x",
          "y",
          "blur"
        ],
        "additionalProperties": false
      },
      "typography": {
        "type": "object",
        "properties": {
          "fontFamily": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "minItems": 1
              }
            ]
          },
          "fontAssetRef": {
            "$ref": "#/$defs/common/id"
          },
          "fontSize": {
            "$ref": "#/$defs/common/size"
          },
          "fontWeight": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "maximum": 1000
              },
              {
                "enum": [
                  "normal",
                  "bold"
                ]
              }
            ]
          },
          "fontStyle": {
            "enum": [
              "normal",
              "italic",
              "oblique"
            ]
          },
          "lineHeight": {
            "anyOf": [
              {
                "type": "number",
                "minimum": 0
              },
              {
                "$ref": "#/$defs/common/dimension"
              }
            ]
          },
          "letterSpacing": {
            "$ref": "#/$defs/common/dimension"
          },
          "textAlign": {
            "enum": [
              "start",
              "end",
              "left",
              "right",
              "center",
              "justify"
            ]
          },
          "textTransform": {
            "enum": [
              "none",
              "uppercase",
              "lowercase",
              "capitalize"
            ]
          },
          "textDecoration": {
            "enum": [
              "none",
              "underline",
              "line-through",
              "overline"
            ]
          },
          "direction": {
            "enum": [
              "ltr",
              "rtl",
              "auto"
            ]
          },
          "fontFeatures": {
            "type": "object",
            "additionalProperties": {
              "type": "boolean"
            }
          },
          "fontVariations": {
            "type": "object",
            "additionalProperties": {
              "type": "number"
            }
          },
          "maxLines": {
            "type": "integer",
            "minimum": 1
          },
          "overflow": {
            "enum": [
              "clip",
              "ellipsis",
              "wrap"
            ]
          }
        },
        "additionalProperties": false
      },
      "filter": {
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "blur",
              "brightness",
              "contrast",
              "grayscale",
              "hue-rotate",
              "invert",
              "saturate",
              "sepia",
              "custom"
            ]
          },
          "amount": {
            "type": "number"
          },
          "assetRef": {
            "$ref": "#/$defs/common/id"
          }
        },
        "required": [
          "type"
        ],
        "additionalProperties": false
      },
      "appearance": {
        "type": "object",
        "properties": {
          "fill": {
            "anyOf": [
              {
                "$ref": "#/$defs/appearance/paint"
              },
              {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/appearance/paint"
                }
              }
            ]
          },
          "background": {
            "$ref": "#/$defs/appearance/paint"
          },
          "color": {
            "$ref": "#/$defs/appearance/color"
          },
          "stroke": {
            "anyOf": [
              {
                "$ref": "#/$defs/appearance/stroke"
              },
              {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/appearance/stroke"
                }
              }
            ]
          },
          "opacity": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "blend": {
            "enum": [
              "normal",
              "multiply",
              "screen",
              "overlay",
              "darken",
              "lighten",
              "color-dodge",
              "color-burn",
              "hard-light",
              "soft-light",
              "difference",
              "exclusion",
              "hue",
              "saturation",
              "color",
              "luminosity"
            ]
          },
          "radius": {
            "anyOf": [
              {
                "$ref": "#/$defs/common/size"
              },
              {
                "type": "object",
                "properties": {
                  "topLeft": {
                    "$ref": "#/$defs/common/size"
                  },
                  "topRight": {
                    "$ref": "#/$defs/common/size"
                  },
                  "bottomRight": {
                    "$ref": "#/$defs/common/size"
                  },
                  "bottomLeft": {
                    "$ref": "#/$defs/common/size"
                  }
                },
                "additionalProperties": false
              }
            ]
          },
          "shadows": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/appearance/shadow"
            }
          },
          "blur": {
            "$ref": "#/$defs/common/size"
          },
          "filters": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/appearance/filter"
            }
          },
          "maskRef": {
            "$ref": "#/$defs/common/id"
          },
          "clipRef": {
            "$ref": "#/$defs/common/id"
          },
          "materialRef": {
            "$ref": "#/$defs/common/id"
          },
          "textureRef": {
            "$ref": "#/$defs/common/id"
          },
          "typography": {
            "$ref": "#/$defs/appearance/typography"
          },
          "visible": {
            "type": "boolean"
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "additionalProperties": false
      }
    },
    "tokens": {
      "token": {
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "color",
              "dimension",
              "spacing",
              "radius",
              "border",
              "shadow",
              "typography",
              "font",
              "gradient",
              "opacity",
              "duration",
              "easing",
              "motion",
              "material",
              "breakpoint",
              "z-index",
              "number",
              "string"
            ]
          },
          "value": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "number"
              },
              {
                "type": "boolean"
              },
              {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/common/jsonValue"
                }
              },
              {
                "type": "object",
                "properties": {
                  "color": {
                    "$ref": "#/$defs/appearance/color"
                  },
                  "width": {
                    "$ref": "#/$defs/common/size"
                  },
                  "style": {
                    "enum": [
                      "solid",
                      "dashed",
                      "dotted"
                    ]
                  }
                },
                "required": [
                  "color",
                  "width"
                ],
                "additionalProperties": false
              },
              {
                "$ref": "#/$defs/appearance/typography"
              },
              {
                "$ref": "#/$defs/appearance/gradient"
              },
              {
                "$ref": "#/$defs/appearance/shadow"
              },
              {
                "$ref": "#/$defs/appearance/color"
              },
              {
                "$ref": "#/$defs/motion/spring"
              }
            ]
          },
          "description": {
            "type": "string",
            "minLength": 1
          },
          "modes": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/$defs/common/jsonValue"
            }
          },
          "confidence": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "provenance": {
            "$ref": "#/$defs/common/provenance"
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          },
          "$type": {
            "enum": [
              "color",
              "dimension",
              "spacing",
              "radius",
              "border",
              "shadow",
              "typography",
              "font",
              "gradient",
              "opacity",
              "duration",
              "easing",
              "motion",
              "material",
              "breakpoint",
              "z-index",
              "number",
              "string"
            ]
          },
          "$value": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "number"
              },
              {
                "type": "boolean"
              },
              {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/common/jsonValue"
                }
              },
              {
                "type": "object",
                "properties": {
                  "color": {
                    "$ref": "#/$defs/appearance/color"
                  },
                  "width": {
                    "$ref": "#/$defs/common/size"
                  },
                  "style": {
                    "enum": [
                      "solid",
                      "dashed",
                      "dotted"
                    ]
                  }
                },
                "required": [
                  "color",
                  "width"
                ],
                "additionalProperties": false
              },
              {
                "$ref": "#/$defs/appearance/typography"
              },
              {
                "$ref": "#/$defs/appearance/gradient"
              },
              {
                "$ref": "#/$defs/appearance/shadow"
              },
              {
                "$ref": "#/$defs/appearance/color"
              },
              {
                "$ref": "#/$defs/motion/spring"
              }
            ]
          }
        },
        "required": [],
        "additionalProperties": false,
        "anyOf": [
          {
            "required": [
              "value"
            ]
          },
          {
            "required": [
              "$value"
            ]
          }
        ]
      },
      "tokenRegistry": {
        "type": "object",
        "propertyNames": {
          "pattern": "^[A-Za-z_][A-Za-z0-9_.-]*$"
        },
        "additionalProperties": {
          "$ref": "#/$defs/tokens/token"
        }
      },
      "visualLanguage": {
        "type": "object",
        "properties": {
          "personality": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "uniqueItems": true
          },
          "principles": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "uniqueItems": true
          },
          "palette": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/$defs/appearance/color"
            }
          },
          "typography": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/$defs/appearance/typography"
            }
          },
          "spacing": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/$defs/common/dimension"
            }
          },
          "density": {
            "enum": [
              "compact",
              "comfortable",
              "spacious"
            ]
          },
          "geometry": {
            "type": "object",
            "properties": {
              "radius": {
                "$ref": "#/$defs/common/size"
              },
              "strokeWidth": {
                "$ref": "#/$defs/common/size"
              },
              "shape": {
                "$ref": "#/$defs/common/taxonomy"
              }
            },
            "additionalProperties": false
          },
          "surface": {
            "$ref": "#/$defs/appearance/appearance"
          },
          "iconography": {
            "type": "object",
            "properties": {
              "style": {
                "type": "string",
                "minLength": 1
              },
              "strokeWidth": {
                "$ref": "#/$defs/common/size"
              },
              "assetRefs": {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/common/id"
                },
                "uniqueItems": true
              }
            },
            "additionalProperties": false
          },
          "photography": {
            "type": "object",
            "properties": {
              "style": {
                "type": "string",
                "minLength": 1
              },
              "referenceRefs": {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/common/id"
                },
                "uniqueItems": true
              },
              "composition": {
                "type": "string",
                "minLength": 1
              }
            },
            "additionalProperties": false
          },
          "illustration": {
            "type": "object",
            "properties": {
              "style": {
                "type": "string",
                "minLength": 1
              },
              "referenceRefs": {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/common/id"
                },
                "uniqueItems": true
              },
              "technique": {
                "type": "string",
                "minLength": 1
              }
            },
            "additionalProperties": false
          },
          "motion": {
            "type": "object",
            "properties": {
              "duration": {
                "$ref": "#/$defs/common/duration"
              },
              "easing": {
                "$ref": "#/$defs/motion/easing"
              },
              "reducedMotion": {
                "enum": [
                  "remove",
                  "reduce",
                  "substitute"
                ]
              }
            },
            "additionalProperties": false
          },
          "composition": {
            "type": "object",
            "properties": {
              "principles": {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "uniqueItems": true
              },
              "preferredLayout": {
                "$ref": "#/$defs/common/taxonomy"
              }
            },
            "additionalProperties": false
          },
          "externalTokens": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "uri": {
                  "$ref": "#/$defs/common/uri"
                },
                "format": {
                  "enum": [
                    "dtcg",
                    "visualspec",
                    "custom"
                  ]
                },
                "namespace": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "required": [
                "uri",
                "format"
              ],
              "additionalProperties": false
            }
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "additionalProperties": false
      }
    },
    "layout": {
      "insets": {
        "anyOf": [
          {
            "$ref": "#/$defs/common/dimension"
          },
          {
            "type": "object",
            "properties": {
              "top": {
                "$ref": "#/$defs/common/dimension"
              },
              "right": {
                "$ref": "#/$defs/common/dimension"
              },
              "bottom": {
                "$ref": "#/$defs/common/dimension"
              },
              "left": {
                "$ref": "#/$defs/common/dimension"
              },
              "start": {
                "$ref": "#/$defs/common/dimension"
              },
              "end": {
                "$ref": "#/$defs/common/dimension"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "constraint": {
        "type": "object",
        "properties": {
          "attribute": {
            "enum": [
              "left",
              "right",
              "top",
              "bottom",
              "width",
              "height",
              "center-x",
              "center-y",
              "baseline",
              "aspect-ratio"
            ]
          },
          "relation": {
            "enum": [
              "equal",
              "less-than-or-equal",
              "greater-than-or-equal"
            ]
          },
          "targetRef": {
            "$ref": "#/$defs/common/id"
          },
          "targetAttribute": {
            "enum": [
              "left",
              "right",
              "top",
              "bottom",
              "width",
              "height",
              "center-x",
              "center-y",
              "baseline"
            ]
          },
          "constant": {
            "$ref": "#/$defs/common/dimension"
          },
          "multiplier": {
            "type": "number"
          },
          "priority": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1000
          }
        },
        "required": [
          "attribute",
          "relation"
        ],
        "additionalProperties": false
      },
      "layout": {
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "stack",
              "row",
              "column",
              "grid",
              "overlay",
              "flow",
              "absolute",
              "constraint-based"
            ]
          },
          "width": {
            "$ref": "#/$defs/common/size"
          },
          "height": {
            "$ref": "#/$defs/common/size"
          },
          "minWidth": {
            "$ref": "#/$defs/common/size"
          },
          "maxWidth": {
            "$ref": "#/$defs/common/size"
          },
          "minHeight": {
            "$ref": "#/$defs/common/size"
          },
          "maxHeight": {
            "$ref": "#/$defs/common/size"
          },
          "gap": {
            "$ref": "#/$defs/common/dimension"
          },
          "rowGap": {
            "$ref": "#/$defs/common/dimension"
          },
          "columnGap": {
            "$ref": "#/$defs/common/dimension"
          },
          "padding": {
            "$ref": "#/$defs/layout/insets"
          },
          "margin": {
            "$ref": "#/$defs/layout/insets"
          },
          "align": {
            "enum": [
              "start",
              "end",
              "center",
              "stretch",
              "baseline"
            ]
          },
          "justify": {
            "enum": [
              "start",
              "end",
              "center",
              "space-between",
              "space-around",
              "space-evenly"
            ]
          },
          "alignSelf": {
            "enum": [
              "auto",
              "start",
              "end",
              "center",
              "stretch",
              "baseline"
            ]
          },
          "wrap": {
            "enum": [
              "none",
              "wrap",
              "reverse"
            ]
          },
          "columns": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1
              },
              {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/common/size"
                },
                "minItems": 1
              }
            ]
          },
          "rows": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1
              },
              {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/common/size"
                },
                "minItems": 1
              }
            ]
          },
          "column": {
            "type": "integer",
            "minimum": 1
          },
          "row": {
            "type": "integer",
            "minimum": 1
          },
          "columnSpan": {
            "type": "integer",
            "minimum": 1
          },
          "rowSpan": {
            "type": "integer",
            "minimum": 1
          },
          "grow": {
            "type": "number",
            "minimum": 0
          },
          "shrink": {
            "type": "number",
            "minimum": 0
          },
          "basis": {
            "$ref": "#/$defs/common/size"
          },
          "aspectRatio": {
            "type": "number",
            "exclusiveMinimum": 0
          },
          "position": {
            "enum": [
              "flow",
              "relative",
              "absolute",
              "fixed",
              "sticky"
            ]
          },
          "inset": {
            "$ref": "#/$defs/layout/insets"
          },
          "zIndex": {
            "type": "integer"
          },
          "clip": {
            "type": "boolean"
          },
          "overflow": {
            "enum": [
              "visible",
              "hidden",
              "clip",
              "scroll",
              "auto"
            ]
          },
          "scroll": {
            "type": "object",
            "properties": {
              "axis": {
                "enum": [
                  "x",
                  "y",
                  "both"
                ]
              },
              "snap": {
                "enum": [
                  "none",
                  "mandatory",
                  "proximity"
                ]
              },
              "snapAlign": {
                "enum": [
                  "start",
                  "center",
                  "end"
                ]
              },
              "overscroll": {
                "enum": [
                  "auto",
                  "contain",
                  "none"
                ]
              }
            },
            "additionalProperties": false
          },
          "constraints": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/layout/constraint"
            }
          },
          "safeArea": {
            "type": "boolean"
          },
          "direction": {
            "enum": [
              "ltr",
              "rtl"
            ]
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "additionalProperties": false
      },
      "query": {
        "type": "object",
        "properties": {
          "minWidth": {
            "type": "number",
            "minimum": 0
          },
          "maxWidth": {
            "type": "number",
            "minimum": 0
          },
          "minHeight": {
            "type": "number",
            "minimum": 0
          },
          "maxHeight": {
            "type": "number",
            "minimum": 0
          },
          "orientation": {
            "enum": [
              "portrait",
              "landscape"
            ]
          },
          "minAspectRatio": {
            "type": "number",
            "minimum": 0
          },
          "maxAspectRatio": {
            "type": "number",
            "minimum": 0
          },
          "pixelDensity": {
            "type": "number",
            "minimum": 0
          },
          "inputModality": {
            "enum": [
              "pointer",
              "touch",
              "keyboard",
              "voice",
              "gamepad",
              "spatial"
            ]
          },
          "windowClass": {
            "enum": [
              "compact",
              "medium",
              "expanded"
            ]
          },
          "platform": {
            "$ref": "#/$defs/common/taxonomy"
          },
          "capabilities": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/taxonomy"
            },
            "uniqueItems": true
          },
          "containerRef": {
            "$ref": "#/$defs/common/id"
          },
          "safeArea": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "responsive": {
        "type": "object",
        "properties": {
          "strategy": {
            "enum": [
              "responsive",
              "adaptive"
            ]
          },
          "rules": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "when": {
                  "$ref": "#/$defs/layout/query"
                },
                "layout": {
                  "$ref": "#/$defs/layout/layout"
                },
                "appearance": {
                  "$ref": "#/$defs/appearance/appearance"
                },
                "variant": {
                  "type": "string",
                  "minLength": 1
                },
                "visible": {
                  "type": "boolean"
                },
                "componentRef": {
                  "$ref": "#/$defs/common/id"
                },
                "priority": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 1000
                }
              },
              "required": [
                "when"
              ],
              "additionalProperties": false
            },
            "minItems": 1
          }
        },
        "required": [
          "strategy",
          "rules"
        ],
        "additionalProperties": false
      }
    },
    "geometry": {
      "geometry": {
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "rectangle",
              "rounded-rectangle",
              "ellipse",
              "circle",
              "line",
              "polygon",
              "polyline",
              "path",
              "text",
              "plane",
              "box",
              "sphere",
              "cylinder",
              "cone",
              "torus",
              "mesh",
              "custom"
            ]
          },
          "bounds": {
            "$ref": "#/$defs/common/bounds"
          },
          "width": {
            "$ref": "#/$defs/common/size"
          },
          "height": {
            "$ref": "#/$defs/common/size"
          },
          "depth": {
            "$ref": "#/$defs/common/size"
          },
          "radius": {
            "$ref": "#/$defs/common/size"
          },
          "path": {
            "type": "string",
            "minLength": 1,
            "description": "SVG-compatible path data."
          },
          "points": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/$defs/common/vector2"
                },
                {
                  "$ref": "#/$defs/common/vector3"
                }
              ]
            },
            "minItems": 2
          },
          "closed": {
            "type": "boolean"
          },
          "assetRef": {
            "$ref": "#/$defs/common/id"
          },
          "segments": {
            "type": "integer",
            "minimum": 3
          },
          "text": {
            "type": "string",
            "minLength": 1
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "required": [
          "type"
        ],
        "additionalProperties": false
      },
      "transformOp": {
        "type": "object",
        "description": "One step in an ordered transform list. Order is significant.",
        "properties": {
          "type": {
            "enum": [
              "translate",
              "scale",
              "rotate",
              "skew",
              "perspective"
            ]
          },
          "x": {
            "type": "number"
          },
          "y": {
            "type": "number"
          },
          "z": {
            "type": "number"
          },
          "angle": {
            "type": "number"
          }
        },
        "required": [
          "type"
        ],
        "additionalProperties": false
      },
      "transform": {
        "anyOf": [
          {
            "type": "object",
            "properties": {
              "translate": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/common/vector2"
                  },
                  {
                    "$ref": "#/$defs/common/vector3"
                  }
                ]
              },
              "rotate": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "$ref": "#/$defs/common/vector3"
                  },
                  {
                    "$ref": "#/$defs/common/quaternion"
                  }
                ]
              },
              "scale": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "$ref": "#/$defs/common/vector2"
                  },
                  {
                    "$ref": "#/$defs/common/vector3"
                  }
                ]
              },
              "origin": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/common/vector2"
                  },
                  {
                    "$ref": "#/$defs/common/vector3"
                  }
                ]
              },
              "matrix": {
                "type": "array",
                "items": {
                  "type": "number"
                },
                "anyOf": [
                  {
                    "minItems": 6,
                    "maxItems": 6
                  },
                  {
                    "minItems": 16,
                    "maxItems": 16
                  }
                ]
              },
              "operations": {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/geometry/transformOp"
                },
                "minItems": 1
              },
              "coordinateSpace": {
                "$ref": "#/$defs/common/coordinateSpace"
              }
            },
            "additionalProperties": false
          },
          {
            "type": "array",
            "items": {
              "$ref": "#/$defs/geometry/transformOp"
            },
            "minItems": 1
          }
        ]
      }
    },
    "accessibility": {
      "name": {
        "anyOf": [
          {
            "type": "string",
            "minLength": 1
          },
          {
            "type": "object",
            "properties": {
              "source": {
                "enum": [
                  "content",
                  "literal",
                  "reference",
                  "derived"
                ]
              },
              "value": {
                "type": "string",
                "minLength": 1
              },
              "targetRef": {
                "$ref": "#/$defs/common/id"
              },
              "required": {
                "type": "boolean"
              }
            },
            "required": [
              "source"
            ],
            "additionalProperties": false
          }
        ]
      },
      "focus": {
        "type": "object",
        "properties": {
          "strategy": {
            "enum": [
              "natural",
              "roving",
              "active-descendant",
              "programmatic",
              "none"
            ]
          },
          "trap": {
            "type": "boolean"
          },
          "restoreOnClose": {
            "type": "boolean"
          },
          "restore": {
            "type": "boolean"
          },
          "initial": {
            "type": "string",
            "minLength": 1
          },
          "order": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "activation": {
            "enum": [
              "automatic",
              "manual"
            ]
          },
          "visible": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "relationships": {
        "type": "object",
        "properties": {
          "controls": {
            "anyOf": [
              {
                "$ref": "#/$defs/common/id"
              },
              {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/common/id"
                },
                "uniqueItems": true
              }
            ]
          },
          "describedBy": {
            "anyOf": [
              {
                "$ref": "#/$defs/common/id"
              },
              {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/common/id"
                },
                "uniqueItems": true
              }
            ]
          },
          "details": {
            "anyOf": [
              {
                "$ref": "#/$defs/common/id"
              },
              {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/common/id"
                },
                "uniqueItems": true
              }
            ]
          },
          "flowTo": {
            "anyOf": [
              {
                "$ref": "#/$defs/common/id"
              },
              {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/common/id"
                },
                "uniqueItems": true
              }
            ]
          },
          "labelledBy": {
            "anyOf": [
              {
                "$ref": "#/$defs/common/id"
              },
              {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/common/id"
                },
                "uniqueItems": true
              }
            ]
          },
          "owns": {
            "anyOf": [
              {
                "$ref": "#/$defs/common/id"
              },
              {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/common/id"
                },
                "uniqueItems": true
              }
            ]
          },
          "activeDescendant": {
            "$ref": "#/$defs/common/id"
          }
        },
        "additionalProperties": false
      },
      "accessibility": {
        "type": "object",
        "properties": {
          "semanticRole": {
            "$ref": "#/$defs/common/taxonomy"
          },
          "role": {
            "$ref": "#/$defs/common/taxonomy"
          },
          "name": {
            "$ref": "#/$defs/accessibility/name"
          },
          "description": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "$ref": "#/$defs/accessibility/name"
              }
            ]
          },
          "labelRequired": {
            "type": "boolean"
          },
          "decorative": {
            "type": "boolean"
          },
          "hidden": {
            "type": "boolean"
          },
          "states": {
            "type": "object",
            "properties": {
              "checked": {
                "anyOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "enum": [
                      "mixed"
                    ]
                  }
                ]
              },
              "disabled": {
                "type": "boolean"
              },
              "expanded": {
                "type": "boolean"
              },
              "hidden": {
                "type": "boolean"
              },
              "invalid": {
                "anyOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "enum": [
                      "grammar",
                      "spelling"
                    ]
                  }
                ]
              },
              "pressed": {
                "anyOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "enum": [
                      "mixed"
                    ]
                  }
                ]
              },
              "selected": {
                "type": "boolean"
              },
              "busy": {
                "type": "boolean"
              }
            },
            "additionalProperties": false
          },
          "properties": {
            "type": "object",
            "properties": {
              "autocomplete": {
                "enum": [
                  "none",
                  "inline",
                  "list",
                  "both"
                ]
              },
              "hasPopup": {
                "anyOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "$ref": "#/$defs/common/taxonomy"
                  }
                ]
              },
              "level": {
                "type": "integer",
                "minimum": 1
              },
              "multiline": {
                "type": "boolean"
              },
              "orientation": {
                "enum": [
                  "horizontal",
                  "vertical"
                ]
              },
              "placeholder": {
                "type": "string",
                "minLength": 1
              },
              "readonly": {
                "type": "boolean"
              },
              "required": {
                "type": "boolean"
              },
              "valueMin": {
                "type": "number"
              },
              "valueMax": {
                "type": "number"
              },
              "valueNow": {
                "type": "number"
              },
              "valueText": {
                "type": "string",
                "minLength": 1
              },
              "selectionMode": {
                "enum": [
                  "none",
                  "single",
                  "multiple"
                ]
              }
            },
            "additionalProperties": false
          },
          "relationships": {
            "$ref": "#/$defs/accessibility/relationships"
          },
          "focus": {
            "$ref": "#/$defs/accessibility/focus"
          },
          "keyboard": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1
              },
              "minItems": 1,
              "uniqueItems": true
            }
          },
          "inputModalities": {
            "type": "array",
            "items": {
              "enum": [
                "keyboard",
                "pointer",
                "touch",
                "voice",
                "switch",
                "gamepad",
                "spatial"
              ]
            },
            "uniqueItems": true
          },
          "readingOrder": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "live": {
            "type": "object",
            "properties": {
              "politeness": {
                "enum": [
                  "off",
                  "polite",
                  "assertive"
                ]
              },
              "atomic": {
                "type": "boolean"
              },
              "relevant": {
                "type": "array",
                "items": {
                  "enum": [
                    "additions",
                    "removals",
                    "text",
                    "all"
                  ]
                },
                "uniqueItems": true
              }
            },
            "additionalProperties": false
          },
          "textScaling": {
            "type": "object",
            "properties": {
              "enabled": {
                "type": "boolean"
              },
              "min": {
                "type": "number",
                "minimum": 0
              },
              "max": {
                "type": "number",
                "minimum": 0
              }
            },
            "additionalProperties": false
          },
          "contrast": {
            "type": "object",
            "properties": {
              "minimumRatio": {
                "type": "number",
                "minimum": 1,
                "maximum": 21
              },
              "highContrast": {
                "type": "boolean"
              }
            },
            "additionalProperties": false
          },
          "reducedMotion": {
            "enum": [
              "respect",
              "remove",
              "reduce",
              "substitute"
            ]
          },
          "targetSize": {
            "type": "object",
            "properties": {
              "width": {
                "type": "number",
                "minimum": 0
              },
              "height": {
                "type": "number",
                "minimum": 0
              }
            },
            "required": [
              "width",
              "height"
            ],
            "additionalProperties": false
          },
          "aria": {
            "type": "object",
            "properties": {
              "preferNative": {
                "type": "boolean"
              },
              "htmlElement": {
                "type": "string",
                "minLength": 1
              },
              "role": {
                "$ref": "#/$defs/common/taxonomy"
              },
              "attributes": {
                "type": "object",
                "propertyNames": {
                  "pattern": "^aria-[a-z]+(?:-[a-z]+)*$"
                },
                "additionalProperties": {
                  "anyOf": [
                    {
                      "type": "string",
                      "minLength": 1
                    },
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "number"
                    }
                  ]
                }
              }
            },
            "additionalProperties": false
          },
          "platformMappings": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "properties": {
                "role": {
                  "type": "string",
                  "minLength": 1
                },
                "label": {
                  "type": "string",
                  "minLength": 1
                },
                "traits": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "minLength": 1
                  },
                  "uniqueItems": true
                },
                "properties": {
                  "type": "object",
                  "additionalProperties": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1
                      },
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "number"
                      }
                    ]
                  }
                }
              },
              "additionalProperties": false
            }
          },
          "motionPolicy": {
            "type": "object",
            "properties": {
              "respectSystemPreference": {
                "type": "boolean"
              },
              "requireReducedAlternative": {
                "type": "boolean"
              },
              "essentialMotionRequiresJustification": {
                "type": "boolean"
              }
            },
            "additionalProperties": false
          },
          "conformance": {
            "enum": [
              "WCAG-2.2-A",
              "WCAG-2.2-AA",
              "WCAG-2.2-AAA"
            ]
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "additionalProperties": false
      }
    },
    "components": {
      "mapping": {
        "type": "object",
        "properties": {
          "component": {
            "type": "string",
            "minLength": 1
          },
          "package": {
            "type": "string",
            "minLength": 1
          },
          "version": {
            "type": "string",
            "minLength": 1
          },
          "variant": {
            "type": "string",
            "minLength": 1
          },
          "primitive": {
            "type": "string",
            "minLength": 1
          },
          "pattern": {
            "type": "string",
            "minLength": 1
          },
          "props": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/$defs/common/jsonValue"
            }
          }
        },
        "additionalProperties": false
      },
      "behavior": {
        "type": "object",
        "properties": {
          "overlay": {
            "type": "boolean"
          },
          "modal": {
            "type": "boolean"
          },
          "modality": {
            "enum": [
              "modal",
              "non-modal"
            ]
          },
          "placement": {
            "type": "string",
            "minLength": 1
          },
          "dismiss": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "enum": [
                    "escape",
                    "backdrop",
                    "swipe",
                    "outside-press",
                    "close-button"
                  ]
                },
                "uniqueItems": true
              },
              {
                "type": "object",
                "properties": {
                  "outsidePress": {
                    "type": "boolean"
                  },
                  "escape": {
                    "type": "boolean"
                  },
                  "backdrop": {
                    "type": "boolean"
                  },
                  "swipe": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              }
            ]
          },
          "focus": {
            "$ref": "#/$defs/accessibility/focus"
          },
          "anchor": {
            "type": "object",
            "properties": {
              "targetRef": {
                "$ref": "#/$defs/common/id"
              },
              "target": {
                "type": "string",
                "minLength": 1
              },
              "placement": {
                "enum": [
                  "top",
                  "bottom",
                  "left",
                  "right",
                  "top-start",
                  "top-end",
                  "bottom-start",
                  "bottom-end",
                  "left-start",
                  "left-end",
                  "right-start",
                  "right-end"
                ]
              },
              "collision": {
                "enum": [
                  "flip",
                  "shift",
                  "none"
                ]
              },
              "offset": {
                "$ref": "#/$defs/common/dimension"
              }
            },
            "additionalProperties": false
          },
          "selection": {
            "enum": [
              "none",
              "single",
              "multiple"
            ]
          },
          "orientation": {
            "enum": [
              "horizontal",
              "vertical"
            ]
          },
          "activation": {
            "enum": [
              "automatic",
              "manual"
            ]
          },
          "scrollLock": {
            "type": "boolean"
          },
          "loop": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "slot": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "minLength": 1
          },
          "semanticRole": {
            "$ref": "#/$defs/common/taxonomy"
          },
          "required": {
            "type": "boolean"
          },
          "multiple": {
            "type": "boolean"
          },
          "allowedKinds": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/taxonomy"
            },
            "uniqueItems": true
          },
          "componentRef": {
            "$ref": "#/$defs/common/id"
          },
          "states": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "uniqueItems": true
          },
          "accessibility": {
            "$ref": "#/$defs/accessibility/accessibility"
          }
        },
        "additionalProperties": false
      },
      "composition": {
        "type": "object",
        "properties": {
          "slot": {
            "type": "string",
            "minLength": 1
          },
          "componentRef": {
            "$ref": "#/$defs/common/id"
          },
          "nodeRef": {
            "$ref": "#/$defs/common/id"
          },
          "properties": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/$defs/common/jsonValue"
            }
          }
        },
        "required": [
          "slot"
        ],
        "additionalProperties": false
      },
      "component": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "kind": {
            "$ref": "#/$defs/common/taxonomy"
          },
          "componentRef": {
            "$ref": "#/$defs/common/id"
          },
          "name": {
            "type": "string",
            "minLength": 1
          },
          "description": {
            "type": "string",
            "minLength": 1
          },
          "family": {
            "type": "string",
            "minLength": 1
          },
          "variant": {
            "type": "string",
            "minLength": 1
          },
          "variants": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "properties": {
                "description": {
                  "type": "string",
                  "minLength": 1
                },
                "appearance": {
                  "$ref": "#/$defs/appearance/appearance"
                },
                "layout": {
                  "$ref": "#/$defs/layout/layout"
                },
                "properties": {
                  "type": "object",
                  "additionalProperties": {
                    "$ref": "#/$defs/common/jsonValue"
                  }
                }
              },
              "additionalProperties": false
            }
          },
          "anatomy": {
            "type": "object",
            "properties": {
              "slots": {
                "type": "object",
                "additionalProperties": {
                  "$ref": "#/$defs/components/slot"
                }
              }
            },
            "required": [
              "slots"
            ],
            "additionalProperties": false
          },
          "properties": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/$defs/common/jsonValue"
            }
          },
          "children": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/components/composition"
            }
          },
          "states": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "uniqueItems": true
          },
          "behavior": {
            "$ref": "#/$defs/components/behavior"
          },
          "layout": {
            "$ref": "#/$defs/layout/layout"
          },
          "appearance": {
            "$ref": "#/$defs/appearance/appearance"
          },
          "accessibility": {
            "$ref": "#/$defs/accessibility/accessibility"
          },
          "responsive": {
            "$ref": "#/$defs/layout/responsive"
          },
          "motion": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/$defs/common/id"
            }
          },
          "eventRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "stateRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "actionRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "references": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "implementationMapping": {
            "$ref": "#/$defs/components/mapping"
          },
          "platformMappings": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/$defs/components/mapping"
            }
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false,
        "anyOf": [
          {
            "required": [
              "kind"
            ]
          },
          {
            "required": [
              "componentRef"
            ]
          }
        ]
      }
    },
    "semantics": {
      "semanticNode": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "role": {
            "$ref": "#/$defs/common/taxonomy"
          },
          "name": {
            "$ref": "#/$defs/accessibility/name"
          },
          "nodeRef": {
            "$ref": "#/$defs/common/id"
          },
          "entityRef": {
            "$ref": "#/$defs/common/id"
          },
          "componentRef": {
            "$ref": "#/$defs/common/id"
          },
          "accessibility": {
            "$ref": "#/$defs/accessibility/accessibility"
          },
          "children": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/semantics/semanticNode"
            }
          },
          "relationshipRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "required": [
          "id",
          "role"
        ],
        "additionalProperties": false
      }
    },
    "interaction": {
      "event": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "type": {
            "$ref": "#/$defs/common/taxonomy"
          },
          "targetRef": {
            "$ref": "#/$defs/common/id"
          },
          "key": {
            "type": "string",
            "minLength": 1
          },
          "modifiers": {
            "type": "array",
            "items": {
              "enum": [
                "alt",
                "ctrl",
                "meta",
                "shift"
              ]
            },
            "uniqueItems": true
          },
          "pointer": {
            "enum": [
              "mouse",
              "touch",
              "pen",
              "any"
            ]
          },
          "gesture": {
            "type": "object",
            "properties": {
              "type": {
                "enum": [
                  "drag",
                  "swipe",
                  "pinch",
                  "rotate",
                  "long-press",
                  "tap"
                ]
              },
              "axis": {
                "enum": [
                  "x",
                  "y",
                  "both"
                ]
              },
              "threshold": {
                "type": "number",
                "minimum": 0
              },
              "direction": {
                "enum": [
                  "up",
                  "down",
                  "left",
                  "right",
                  "any"
                ]
              }
            },
            "additionalProperties": false
          },
          "markerRef": {
            "$ref": "#/$defs/common/id"
          },
          "externalName": {
            "type": "string",
            "minLength": 1
          },
          "actionRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "once": {
            "type": "boolean"
          },
          "debounce": {
            "$ref": "#/$defs/common/duration"
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "required": [
          "id",
          "type"
        ],
        "additionalProperties": false
      },
      "action": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "verb": {
            "$ref": "#/$defs/common/taxonomy"
          },
          "targetRef": {
            "$ref": "#/$defs/common/id"
          },
          "targetRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "intent": {
            "type": "string",
            "minLength": 1
          },
          "eventRef": {
            "$ref": "#/$defs/common/id"
          },
          "stateRef": {
            "$ref": "#/$defs/common/id"
          },
          "motionRef": {
            "$ref": "#/$defs/common/id"
          },
          "parameters": {
            "type": "object",
            "properties": {
              "value": {
                "anyOf": [
                  {
                    "type": "string",
                    "minLength": 1
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "boolean"
                  },
                  {
                    "$ref": "#/$defs/common/vector2"
                  },
                  {
                    "$ref": "#/$defs/common/vector3"
                  }
                ]
              },
              "position": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/common/vector2"
                  },
                  {
                    "$ref": "#/$defs/common/vector3"
                  }
                ]
              },
              "angle": {
                "type": "number"
              },
              "scale": {
                "type": "number"
              },
              "time": {
                "$ref": "#/$defs/common/time"
              },
              "destination": {
                "$ref": "#/$defs/common/id"
              },
              "materialRef": {
                "$ref": "#/$defs/common/id"
              },
              "duration": {
                "$ref": "#/$defs/common/duration"
              },
              "property": {
                "type": "string",
                "minLength": 1
              },
              "visible": {
                "type": "boolean"
              }
            },
            "additionalProperties": false
          },
          "composition": {
            "enum": [
              "sequence",
              "parallel",
              "conditional",
              "stagger"
            ]
          },
          "actionRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "condition": {
            "$ref": "#/$defs/common/condition"
          },
          "delay": {
            "$ref": "#/$defs/common/duration"
          },
          "stagger": {
            "$ref": "#/$defs/common/duration"
          },
          "onComplete": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "onCancel": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "required": [
          "id",
          "verb"
        ],
        "additionalProperties": false
      },
      "state": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "name": {
            "type": "string",
            "minLength": 1
          },
          "targetRef": {
            "$ref": "#/$defs/common/id"
          },
          "initial": {
            "type": "boolean"
          },
          "appearance": {
            "$ref": "#/$defs/appearance/appearance"
          },
          "layout": {
            "$ref": "#/$defs/layout/layout"
          },
          "visible": {
            "type": "boolean"
          },
          "variant": {
            "type": "string",
            "minLength": 1
          },
          "motionRef": {
            "$ref": "#/$defs/common/id"
          },
          "accessibility": {
            "$ref": "#/$defs/accessibility/accessibility"
          },
          "onEnter": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "onExit": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "transitions": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "to": {
                  "$ref": "#/$defs/common/id"
                },
                "eventRef": {
                  "$ref": "#/$defs/common/id"
                },
                "actionRef": {
                  "$ref": "#/$defs/common/id"
                },
                "motionRef": {
                  "$ref": "#/$defs/common/id"
                },
                "condition": {
                  "$ref": "#/$defs/common/condition"
                }
              },
              "required": [
                "to"
              ],
              "additionalProperties": false
            }
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "additionalProperties": false
      },
      "flow": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "name": {
            "type": "string",
            "minLength": 1
          },
          "initial": {
            "$ref": "#/$defs/common/id"
          },
          "sceneRef": {
            "$ref": "#/$defs/common/id"
          },
          "states": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "$ref": "#/$defs/common/id"
                },
                "name": {
                  "type": "string",
                  "minLength": 1
                },
                "sceneRef": {
                  "$ref": "#/$defs/common/id"
                }
              },
              "required": [
                "id",
                "name"
              ],
              "additionalProperties": false
            },
            "minItems": 1
          },
          "transitions": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "from": {
                  "$ref": "#/$defs/common/id"
                },
                "to": {
                  "$ref": "#/$defs/common/id"
                },
                "eventRef": {
                  "$ref": "#/$defs/common/id"
                },
                "motionRef": {
                  "$ref": "#/$defs/common/id"
                },
                "condition": {
                  "$ref": "#/$defs/common/condition"
                }
              },
              "required": [
                "from",
                "to"
              ],
              "additionalProperties": false
            }
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "required": [
          "id",
          "initial",
          "states"
        ],
        "additionalProperties": false
      }
    },
    "motion": {
      "value": {
        "anyOf": [
          {
            "type": "number"
          },
          {
            "type": "string",
            "minLength": 1
          },
          {
            "type": "boolean"
          },
          {
            "$ref": "#/$defs/common/vector2"
          },
          {
            "$ref": "#/$defs/common/vector3"
          },
          {
            "$ref": "#/$defs/appearance/color"
          }
        ]
      },
      "easing": {
        "anyOf": [
          {
            "enum": [
              "linear",
              "ease",
              "ease-in",
              "ease-out",
              "ease-in-out"
            ]
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "const": "cubic-bezier"
              },
              "values": {
                "type": "array",
                "items": {
                  "type": "number"
                },
                "minItems": 4,
                "maxItems": 4
              }
            },
            "required": [
              "type",
              "values"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "const": "cubic-bezier"
              },
              "x1": {
                "type": "number",
                "minimum": 0,
                "maximum": 1
              },
              "y1": {
                "type": "number"
              },
              "x2": {
                "type": "number",
                "minimum": 0,
                "maximum": 1
              },
              "y2": {
                "type": "number"
              }
            },
            "required": [
              "type",
              "x1",
              "y1",
              "x2",
              "y2"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "const": "linear"
              },
              "points": {
                "type": "array",
                "items": {
                  "type": "number"
                },
                "minItems": 2
              }
            },
            "required": [
              "type",
              "points"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "const": "steps"
              },
              "count": {
                "type": "integer",
                "minimum": 1
              },
              "position": {
                "enum": [
                  "start",
                  "end",
                  "jump-start",
                  "jump-end",
                  "jump-none",
                  "jump-both"
                ]
              }
            },
            "required": [
              "type",
              "count"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "const": "spring"
              },
              "mass": {
                "type": "number",
                "exclusiveMinimum": 0
              },
              "stiffness": {
                "type": "number",
                "exclusiveMinimum": 0
              },
              "damping": {
                "type": "number",
                "minimum": 0
              },
              "initialVelocity": {
                "type": "number"
              }
            },
            "required": [
              "type",
              "mass",
              "stiffness",
              "damping"
            ],
            "additionalProperties": false
          }
        ]
      },
      "spring": {
        "type": "object",
        "properties": {
          "mass": {
            "type": "number",
            "exclusiveMinimum": 0
          },
          "stiffness": {
            "type": "number",
            "exclusiveMinimum": 0
          },
          "damping": {
            "type": "number",
            "minimum": 0
          },
          "initialVelocity": {
            "type": "number"
          },
          "restSpeed": {
            "type": "number",
            "minimum": 0
          },
          "restDelta": {
            "type": "number",
            "minimum": 0
          }
        },
        "required": [
          "mass",
          "stiffness",
          "damping"
        ],
        "additionalProperties": false
      },
      "keyframe": {
        "type": "object",
        "properties": {
          "offset": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "value": {
            "$ref": "#/$defs/motion/value"
          },
          "values": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/$defs/motion/value"
            }
          },
          "easing": {
            "$ref": "#/$defs/motion/easing"
          },
          "composite": {
            "enum": [
              "replace",
              "add",
              "accumulate"
            ]
          }
        },
        "required": [
          "offset"
        ],
        "additionalProperties": false,
        "anyOf": [
          {
            "required": [
              "value"
            ]
          },
          {
            "required": [
              "values"
            ]
          }
        ]
      },
      "step": {
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "animation",
              "sequence",
              "parallel",
              "stagger",
              "wait"
            ]
          },
          "motionRef": {
            "$ref": "#/$defs/common/id"
          },
          "each": {
            "$ref": "#/$defs/common/duration"
          },
          "from": {
            "enum": [
              "first",
              "last",
              "center"
            ]
          },
          "seed": {
            "type": "integer",
            "minimum": 0
          },
          "duration": {
            "$ref": "#/$defs/common/duration"
          },
          "targets": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "children": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/motion/step"
            }
          }
        },
        "required": [
          "type"
        ],
        "additionalProperties": false
      },
      "track": {
        "type": "object",
        "properties": {
          "property": {
            "type": "string",
            "minLength": 1,
            "description": "Animatable visual property path, for example appearance.opacity or transform.translate."
          },
          "from": {
            "$ref": "#/$defs/motion/value"
          },
          "to": {
            "$ref": "#/$defs/motion/value"
          },
          "keyframes": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/motion/keyframe"
            },
            "minItems": 2
          },
          "easing": {
            "$ref": "#/$defs/motion/easing"
          },
          "composite": {
            "enum": [
              "replace",
              "add",
              "accumulate"
            ]
          }
        },
        "required": [
          "property"
        ],
        "additionalProperties": false
      },
      "driver": {
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "event",
              "state-transition",
              "gesture",
              "scroll",
              "timeline",
              "viewport",
              "visibility",
              "media-playback",
              "external-progress"
            ]
          },
          "sourceRef": {
            "$ref": "#/$defs/common/id"
          },
          "axis": {
            "enum": [
              "x",
              "y",
              "both"
            ]
          },
          "range": {
            "type": "object",
            "properties": {
              "start": {
                "type": "number"
              },
              "end": {
                "type": "number"
              }
            },
            "required": [
              "start",
              "end"
            ],
            "additionalProperties": false
          },
          "clamp": {
            "type": "boolean"
          },
          "externalName": {
            "type": "string",
            "minLength": 1
          }
        },
        "required": [
          "type"
        ],
        "additionalProperties": false
      },
      "path": {
        "type": "object",
        "properties": {
          "data": {
            "type": "string",
            "minLength": 1
          },
          "pathRef": {
            "$ref": "#/$defs/common/id"
          },
          "orientation": {
            "enum": [
              "auto",
              "auto-reverse",
              "fixed"
            ]
          },
          "start": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "end": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "coordinateSpace": {
            "$ref": "#/$defs/common/coordinateSpace"
          }
        },
        "additionalProperties": false
      },
      "sharedElement": {
        "type": "object",
        "properties": {
          "entityRef": {
            "$ref": "#/$defs/common/id"
          },
          "fromNodeRef": {
            "$ref": "#/$defs/common/id"
          },
          "toNodeRef": {
            "$ref": "#/$defs/common/id"
          },
          "preserve": {
            "type": "array",
            "items": {
              "enum": [
                "position",
                "size",
                "shape",
                "opacity",
                "color",
                "content"
              ]
            },
            "uniqueItems": true
          },
          "crossfade": {
            "type": "boolean"
          }
        },
        "required": [
          "entityRef",
          "fromNodeRef",
          "toNodeRef"
        ],
        "additionalProperties": false
      },
      "animation": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "name": {
            "type": "string",
            "minLength": 1
          },
          "kind": {
            "enum": [
              "property",
              "spring",
              "decay",
              "path",
              "morph",
              "layout",
              "shared-element",
              "sequence",
              "parallel",
              "stagger",
              "transition"
            ]
          },
          "targets": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "tracks": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/motion/track"
            },
            "minItems": 1
          },
          "duration": {
            "$ref": "#/$defs/common/duration"
          },
          "delay": {
            "$ref": "#/$defs/common/delay"
          },
          "easing": {
            "$ref": "#/$defs/motion/easing"
          },
          "spring": {
            "$ref": "#/$defs/motion/spring"
          },
          "decay": {
            "type": "object",
            "properties": {
              "velocity": {
                "type": "number"
              },
              "deceleration": {
                "type": "number",
                "exclusiveMinimum": 0
              }
            },
            "required": [
              "velocity",
              "deceleration"
            ],
            "additionalProperties": false
          },
          "timing": {
            "type": "object",
            "properties": {
              "duration": {
                "$ref": "#/$defs/common/duration"
              },
              "delay": {
                "$ref": "#/$defs/common/delay"
              },
              "endDelay": {
                "$ref": "#/$defs/common/duration"
              },
              "iterations": {
                "anyOf": [
                  {
                    "type": "number",
                    "minimum": 0
                  },
                  {
                    "const": "infinite"
                  }
                ]
              },
              "iterationStart": {
                "type": "number",
                "minimum": 0
              },
              "direction": {
                "enum": [
                  "normal",
                  "reverse",
                  "alternate",
                  "alternate-reverse"
                ]
              },
              "fill": {
                "enum": [
                  "none",
                  "forwards",
                  "backwards",
                  "both"
                ]
              },
              "playbackRate": {
                "type": "number",
                "exclusiveMinimum": 0
              }
            },
            "additionalProperties": false
          },
          "iterations": {
            "anyOf": [
              {
                "type": "number",
                "minimum": 0
              },
              {
                "const": "infinite"
              }
            ]
          },
          "direction": {
            "enum": [
              "normal",
              "reverse",
              "alternate",
              "alternate-reverse"
            ]
          },
          "autoreverse": {
            "type": "boolean"
          },
          "fill": {
            "enum": [
              "none",
              "forwards",
              "backwards",
              "both"
            ]
          },
          "composition": {
            "enum": [
              "replace",
              "add",
              "accumulate"
            ]
          },
          "motionRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "children": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/motion/step"
            }
          },
          "stagger": {
            "$ref": "#/$defs/common/duration"
          },
          "trigger": {
            "$ref": "#/$defs/motion/driver"
          },
          "path": {
            "$ref": "#/$defs/motion/path"
          },
          "morph": {
            "type": "object",
            "properties": {
              "fromPath": {
                "type": "string",
                "minLength": 1
              },
              "toPath": {
                "type": "string",
                "minLength": 1
              },
              "preserveTopology": {
                "type": "boolean"
              }
            },
            "required": [
              "fromPath",
              "toPath"
            ],
            "additionalProperties": false
          },
          "sharedElement": {
            "$ref": "#/$defs/motion/sharedElement"
          },
          "essential": {
            "type": "boolean"
          },
          "interrupt": {
            "anyOf": [
              {
                "enum": [
                  "cancel",
                  "finish",
                  "reverse",
                  "retarget",
                  "blend",
                  "queue",
                  "ignore"
                ]
              },
              {
                "type": "object",
                "properties": {
                  "policy": {
                    "enum": [
                      "cancel",
                      "finish",
                      "reverse",
                      "retarget",
                      "blend",
                      "queue",
                      "ignore"
                    ]
                  },
                  "preserveVelocity": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "policy"
                ],
                "additionalProperties": false
              }
            ]
          },
          "cancel": {
            "enum": [
              "restore",
              "freeze",
              "finish"
            ]
          },
          "reducedMotion": {
            "type": "object",
            "properties": {
              "strategy": {
                "enum": [
                  "instant",
                  "fade",
                  "reduce",
                  "substitute",
                  "none",
                  "disable",
                  "replace",
                  "shorten"
                ]
              },
              "duration": {
                "$ref": "#/$defs/common/duration"
              },
              "motionRef": {
                "$ref": "#/$defs/common/id"
              }
            },
            "additionalProperties": false
          },
          "performance": {
            "type": "object",
            "properties": {
              "preferCompositor": {
                "type": "boolean"
              },
              "frameBudget": {
                "type": "number",
                "minimum": 0
              }
            },
            "additionalProperties": false
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      }
    },
    "timeline": {
      "transition": {
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/$defs/common/taxonomy"
          },
          "duration": {
            "$ref": "#/$defs/common/duration"
          },
          "easing": {
            "$ref": "#/$defs/motion/easing"
          },
          "motionRef": {
            "$ref": "#/$defs/common/id"
          }
        },
        "required": [
          "type",
          "duration"
        ],
        "additionalProperties": false
      },
      "clip": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "start": {
            "$ref": "#/$defs/common/time"
          },
          "duration": {
            "$ref": "#/$defs/common/duration"
          },
          "sourceIn": {
            "$ref": "#/$defs/common/time"
          },
          "sourceOut": {
            "$ref": "#/$defs/common/time"
          },
          "sceneRef": {
            "$ref": "#/$defs/common/id"
          },
          "assetRef": {
            "$ref": "#/$defs/common/id"
          },
          "entityRef": {
            "$ref": "#/$defs/common/id"
          },
          "motionRef": {
            "$ref": "#/$defs/common/id"
          },
          "actionRef": {
            "$ref": "#/$defs/common/id"
          },
          "cameraRef": {
            "$ref": "#/$defs/common/id"
          },
          "lightRef": {
            "$ref": "#/$defs/common/id"
          },
          "effectRef": {
            "$ref": "#/$defs/common/id"
          },
          "speed": {
            "type": "number",
            "exclusiveMinimum": 0
          },
          "timeRemapping": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "time": {
                  "$ref": "#/$defs/common/time"
                },
                "sourceTime": {
                  "$ref": "#/$defs/common/time"
                }
              },
              "required": [
                "time",
                "sourceTime"
              ],
              "additionalProperties": false
            },
            "minItems": 2
          },
          "transitionIn": {
            "$ref": "#/$defs/timeline/transition"
          },
          "transitionOut": {
            "$ref": "#/$defs/timeline/transition"
          },
          "volume": {
            "type": "number",
            "minimum": 0
          },
          "muted": {
            "type": "boolean"
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "required": [
          "id",
          "start",
          "duration"
        ],
        "additionalProperties": false
      },
      "track": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "type": {
            "enum": [
              "visual",
              "video",
              "audio",
              "motion",
              "action",
              "camera",
              "lighting",
              "entity",
              "effect",
              "caption",
              "subtitle"
            ]
          },
          "name": {
            "type": "string",
            "minLength": 1
          },
          "clips": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/timeline/clip"
            }
          },
          "muted": {
            "type": "boolean"
          },
          "locked": {
            "type": "boolean"
          },
          "layer": {
            "type": "integer"
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "required": [
          "id",
          "type",
          "clips"
        ],
        "additionalProperties": false
      },
      "marker": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "time": {
            "$ref": "#/$defs/common/time"
          },
          "label": {
            "type": "string",
            "minLength": 1
          },
          "actionRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          }
        },
        "required": [
          "id",
          "time"
        ],
        "additionalProperties": false
      },
      "timeline": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "name": {
            "type": "string",
            "minLength": 1
          },
          "duration": {
            "$ref": "#/$defs/common/duration"
          },
          "fps": {
            "type": "number",
            "exclusiveMinimum": 0
          },
          "tracks": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/timeline/track"
            }
          },
          "markers": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/timeline/marker"
            }
          },
          "loop": {
            "type": "boolean"
          },
          "synchronization": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "sourceRef": {
                  "$ref": "#/$defs/common/id"
                },
                "targetRef": {
                  "$ref": "#/$defs/common/id"
                },
                "mode": {
                  "enum": [
                    "beat",
                    "cue",
                    "dialogue",
                    "timecode",
                    "marker"
                  ]
                },
                "offset": {
                  "$ref": "#/$defs/common/time"
                }
              },
              "required": [
                "sourceRef",
                "targetRef",
                "mode"
              ],
              "additionalProperties": false
            }
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "required": [
          "id",
          "duration",
          "tracks"
        ],
        "additionalProperties": false
      }
    },
    "assets": {
      "asset": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "type": {
            "enum": [
              "image",
              "video",
              "audio",
              "font",
              "svg",
              "vector",
              "raster",
              "icon",
              "lottie",
              "model",
              "texture",
              "shader",
              "document",
              "animation",
              "data"
            ]
          },
          "uri": {
            "$ref": "#/$defs/common/uri"
          },
          "mediaType": {
            "type": "string",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "minLength": 1
          },
          "description": {
            "type": "string",
            "minLength": 1
          },
          "width": {
            "type": "integer",
            "minimum": 1
          },
          "height": {
            "type": "integer",
            "minimum": 1
          },
          "duration": {
            "$ref": "#/$defs/common/duration"
          },
          "byteLength": {
            "type": "integer",
            "minimum": 0
          },
          "checksum": {
            "type": "string",
            "minLength": 1
          },
          "license": {
            "type": "string",
            "minLength": 1
          },
          "attribution": {
            "type": "string",
            "minLength": 1
          },
          "colorSpace": {
            "enum": [
              "srgb",
              "display-p3",
              "rec2020",
              "linear",
              "unknown"
            ]
          },
          "variants": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "uri": {
                  "$ref": "#/$defs/common/uri"
                },
                "width": {
                  "type": "integer",
                  "minimum": 1
                },
                "height": {
                  "type": "integer",
                  "minimum": 1
                },
                "mediaType": {
                  "type": "string",
                  "minLength": 1
                },
                "quality": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1
                },
                "platform": {
                  "$ref": "#/$defs/common/taxonomy"
                }
              },
              "required": [
                "uri"
              ],
              "additionalProperties": false
            }
          },
          "fallbackRef": {
            "$ref": "#/$defs/common/id"
          },
          "font": {
            "type": "object",
            "properties": {
              "family": {
                "type": "string",
                "minLength": 1
              },
              "style": {
                "enum": [
                  "normal",
                  "italic",
                  "oblique"
                ]
              },
              "weight": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 1
                  },
                  {
                    "type": "object",
                    "properties": {
                      "min": {
                        "type": "integer",
                        "minimum": 1
                      },
                      "max": {
                        "type": "integer",
                        "minimum": 1
                      }
                    },
                    "required": [
                      "min",
                      "max"
                    ],
                    "additionalProperties": false
                  }
                ]
              },
              "axes": {
                "type": "object",
                "additionalProperties": {
                  "type": "object",
                  "properties": {
                    "min": {
                      "type": "number"
                    },
                    "max": {
                      "type": "number"
                    },
                    "default": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "min",
                    "max",
                    "default"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "additionalProperties": false
          },
          "integrity": {
            "type": "string",
            "minLength": 1
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "required": [
          "id",
          "type",
          "uri"
        ],
        "additionalProperties": false
      }
    },
    "camera": {
      "camera": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "type": {
            "enum": [
              "perspective",
              "orthographic",
              "panoramic",
              "photographic",
              "realtime"
            ]
          },
          "position": {
            "$ref": "#/$defs/common/vector3"
          },
          "orientation": {
            "anyOf": [
              {
                "$ref": "#/$defs/common/vector3"
              },
              {
                "$ref": "#/$defs/common/quaternion"
              }
            ]
          },
          "targetRef": {
            "$ref": "#/$defs/common/id"
          },
          "fieldOfView": {
            "type": "number",
            "exclusiveMinimum": 0,
            "exclusiveMaximum": 180
          },
          "focalLength": {
            "type": "number",
            "exclusiveMinimum": 0
          },
          "sensorWidth": {
            "type": "number",
            "exclusiveMinimum": 0
          },
          "aperture": {
            "type": "number",
            "exclusiveMinimum": 0
          },
          "near": {
            "type": "number",
            "minimum": 0
          },
          "far": {
            "type": "number",
            "exclusiveMinimum": 0
          },
          "orthographicSize": {
            "type": "number",
            "exclusiveMinimum": 0
          },
          "focus": {
            "type": "object",
            "properties": {
              "targetRef": {
                "$ref": "#/$defs/common/id"
              },
              "distance": {
                "type": "number",
                "minimum": 0
              },
              "mode": {
                "enum": [
                  "manual",
                  "auto",
                  "follow"
                ]
              }
            },
            "additionalProperties": false
          },
          "depthOfField": {
            "type": "object",
            "properties": {
              "enabled": {
                "type": "boolean"
              },
              "focusDistance": {
                "type": "number",
                "minimum": 0
              },
              "blur": {
                "type": "number",
                "minimum": 0
              }
            },
            "additionalProperties": false
          },
          "framing": {
            "enum": [
              "extreme-close-up",
              "close-up",
              "medium",
              "medium-wide",
              "wide",
              "extreme-wide",
              "establishing",
              "over-shoulder",
              "point-of-view",
              "custom"
            ]
          },
          "shotType": {
            "$ref": "#/$defs/common/taxonomy"
          },
          "movement": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/taxonomy"
            },
            "uniqueItems": true
          },
          "intent": {
            "type": "string",
            "minLength": 1
          },
          "actionRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "exposure": {
            "type": "number"
          },
          "whiteBalance": {
            "type": "number",
            "minimum": 0
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "required": [
          "id",
          "type"
        ],
        "additionalProperties": false
      }
    },
    "lighting": {
      "light": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "type": {
            "enum": [
              "directional",
              "point",
              "spot",
              "area",
              "environment",
              "natural"
            ]
          },
          "color": {
            "$ref": "#/$defs/appearance/color"
          },
          "intensity": {
            "type": "number",
            "minimum": 0
          },
          "intensityUnit": {
            "enum": [
              "normalized",
              "lux",
              "lumens",
              "candela",
              "watts"
            ]
          },
          "temperature": {
            "type": "number",
            "minimum": 0
          },
          "position": {
            "$ref": "#/$defs/common/vector3"
          },
          "direction": {
            "$ref": "#/$defs/common/vector3"
          },
          "targetRef": {
            "$ref": "#/$defs/common/id"
          },
          "softness": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "falloff": {
            "enum": [
              "none",
              "linear",
              "inverse-square"
            ]
          },
          "range": {
            "type": "number",
            "minimum": 0
          },
          "coneAngle": {
            "type": "number",
            "minimum": 0,
            "maximum": 180
          },
          "size": {
            "$ref": "#/$defs/common/vector2"
          },
          "shadow": {
            "type": "object",
            "properties": {
              "enabled": {
                "type": "boolean"
              },
              "bias": {
                "type": "number"
              },
              "softness": {
                "type": "number",
                "minimum": 0,
                "maximum": 1
              },
              "resolution": {
                "type": "integer",
                "minimum": 1
              }
            },
            "additionalProperties": false
          },
          "assetRef": {
            "$ref": "#/$defs/common/id"
          },
          "role": {
            "enum": [
              "key",
              "fill",
              "rim",
              "background",
              "ambient",
              "practical"
            ]
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "required": [
          "id",
          "type"
        ],
        "additionalProperties": false
      }
    },
    "materials": {
      "texture": {
        "type": "object",
        "properties": {
          "assetRef": {
            "$ref": "#/$defs/common/id"
          },
          "channel": {
            "enum": [
              "r",
              "g",
              "b",
              "a",
              "rgb",
              "rgba"
            ]
          },
          "coordinateSet": {
            "type": "integer",
            "minimum": 0
          },
          "scale": {
            "$ref": "#/$defs/common/vector2"
          },
          "offset": {
            "$ref": "#/$defs/common/vector2"
          },
          "rotation": {
            "type": "number"
          },
          "wrap": {
            "enum": [
              "repeat",
              "clamp",
              "mirror"
            ]
          },
          "filter": {
            "enum": [
              "nearest",
              "linear",
              "anisotropic"
            ]
          },
          "strength": {
            "type": "number",
            "minimum": 0
          }
        },
        "required": [
          "assetRef"
        ],
        "additionalProperties": false
      },
      "material": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "name": {
            "type": "string",
            "minLength": 1
          },
          "model": {
            "enum": [
              "pbr-metallic-roughness",
              "pbr-specular-glossiness",
              "unlit",
              "toon",
              "custom"
            ]
          },
          "baseColor": {
            "$ref": "#/$defs/appearance/color"
          },
          "metalness": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "roughness": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "normal": {
            "$ref": "#/$defs/materials/texture"
          },
          "emissive": {
            "$ref": "#/$defs/appearance/color"
          },
          "emissiveIntensity": {
            "type": "number",
            "minimum": 0
          },
          "opacity": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "transmission": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "ior": {
            "type": "number",
            "minimum": 1
          },
          "clearCoat": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "clearCoatRoughness": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "doubleSided": {
            "type": "boolean"
          },
          "alphaMode": {
            "enum": [
              "opaque",
              "mask",
              "blend"
            ]
          },
          "alphaCutoff": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "textures": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/$defs/materials/texture"
            }
          },
          "assetRef": {
            "$ref": "#/$defs/common/id"
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "required": [
          "id",
          "model"
        ],
        "additionalProperties": false
      }
    },
    "effects": {
      "effect": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "type": {
            "$ref": "#/$defs/common/taxonomy"
          },
          "targetRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "enabled": {
            "type": "boolean"
          },
          "assetRef": {
            "$ref": "#/$defs/common/id"
          },
          "duration": {
            "$ref": "#/$defs/common/duration"
          },
          "blend": {
            "enum": [
              "normal",
              "add",
              "multiply",
              "screen"
            ]
          },
          "particles": {
            "type": "object",
            "properties": {
              "count": {
                "type": "integer",
                "minimum": 0
              },
              "rate": {
                "type": "number",
                "minimum": 0
              },
              "lifetime": {
                "$ref": "#/$defs/common/duration"
              },
              "size": {
                "$ref": "#/$defs/common/size"
              },
              "velocity": {
                "$ref": "#/$defs/common/vector3"
              },
              "spread": {
                "type": "number",
                "minimum": 0
              },
              "color": {
                "$ref": "#/$defs/appearance/color"
              },
              "seed": {
                "type": "integer",
                "minimum": 0
              }
            },
            "additionalProperties": false
          },
          "trail": {
            "type": "object",
            "properties": {
              "length": {
                "type": "number",
                "minimum": 0
              },
              "width": {
                "$ref": "#/$defs/common/size"
              },
              "color": {
                "$ref": "#/$defs/appearance/color"
              }
            },
            "additionalProperties": false
          },
          "postProcessing": {
            "type": "object",
            "properties": {
              "exposure": {
                "type": "number"
              },
              "contrast": {
                "type": "number",
                "minimum": 0
              },
              "saturation": {
                "type": "number",
                "minimum": 0
              },
              "temperature": {
                "type": "number"
              },
              "tint": {
                "type": "number"
              },
              "bloom": {
                "type": "number",
                "minimum": 0
              },
              "vignette": {
                "type": "number",
                "minimum": 0,
                "maximum": 1
              },
              "grain": {
                "type": "number",
                "minimum": 0,
                "maximum": 1
              },
              "chromaticAberration": {
                "type": "number",
                "minimum": 0,
                "maximum": 1
              },
              "lutAssetRef": {
                "$ref": "#/$defs/common/id"
              },
              "toneMapping": {
                "enum": [
                  "none",
                  "linear",
                  "reinhard",
                  "aces",
                  "filmic"
                ]
              }
            },
            "additionalProperties": false
          },
          "shaderAssetRef": {
            "$ref": "#/$defs/common/id"
          },
          "parameters": {
            "type": "object",
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 1
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                },
                {
                  "$ref": "#/$defs/common/vector2"
                },
                {
                  "$ref": "#/$defs/common/vector3"
                },
                {
                  "$ref": "#/$defs/appearance/color"
                }
              ]
            }
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "required": [
          "id",
          "type"
        ],
        "additionalProperties": false
      }
    },
    "world": {
      "environment": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "kind": {
            "$ref": "#/$defs/common/taxonomy"
          },
          "foreground": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "midground": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "background": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "sky": {
            "type": "object",
            "properties": {
              "color": {
                "$ref": "#/$defs/appearance/color"
              },
              "assetRef": {
                "$ref": "#/$defs/common/id"
              },
              "type": {
                "enum": [
                  "solid",
                  "gradient",
                  "image",
                  "procedural"
                ]
              }
            },
            "additionalProperties": false
          },
          "terrain": {
            "type": "object",
            "properties": {
              "entityRef": {
                "$ref": "#/$defs/common/id"
              },
              "assetRef": {
                "$ref": "#/$defs/common/id"
              },
              "elevation": {
                "type": "number"
              }
            },
            "additionalProperties": false
          },
          "weather": {
            "$ref": "#/$defs/common/taxonomy"
          },
          "timeOfDay": {
            "anyOf": [
              {
                "enum": [
                  "dawn",
                  "morning",
                  "noon",
                  "afternoon",
                  "dusk",
                  "night"
                ]
              },
              {
                "type": "string",
                "pattern": "^(?:[01][0-9]|2[0-3]):[0-5][0-9]$"
              }
            ]
          },
          "season": {
            "enum": [
              "spring",
              "summer",
              "autumn",
              "winter"
            ]
          },
          "temperature": {
            "type": "number"
          },
          "fog": {
            "type": "object",
            "properties": {
              "density": {
                "type": "number",
                "minimum": 0
              },
              "color": {
                "$ref": "#/$defs/appearance/color"
              },
              "near": {
                "type": "number",
                "minimum": 0
              },
              "far": {
                "type": "number",
                "minimum": 0
              }
            },
            "additionalProperties": false
          },
          "haze": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "lightRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "effectRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "entityRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "required": [
          "kind"
        ],
        "additionalProperties": false
      },
      "representation": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "type": {
            "enum": [
              "image",
              "video",
              "vector",
              "3d",
              "illustration",
              "generated",
              "ui",
              "text",
              "procedural"
            ]
          },
          "assetRef": {
            "$ref": "#/$defs/common/id"
          },
          "nodeRef": {
            "$ref": "#/$defs/common/id"
          },
          "componentRef": {
            "$ref": "#/$defs/common/id"
          },
          "sceneRef": {
            "$ref": "#/$defs/common/id"
          },
          "variant": {
            "type": "string",
            "minLength": 1
          },
          "condition": {
            "$ref": "#/$defs/common/condition"
          },
          "levelOfDetail": {
            "type": "integer",
            "minimum": 0
          },
          "referenceRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "required": [
          "type"
        ],
        "additionalProperties": false
      },
      "entity": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "kind": {
            "$ref": "#/$defs/common/taxonomy"
          },
          "name": {
            "type": "string",
            "minLength": 1
          },
          "role": {
            "$ref": "#/$defs/common/taxonomy"
          },
          "geometry": {
            "$ref": "#/$defs/geometry/geometry"
          },
          "transform": {
            "$ref": "#/$defs/geometry/transform"
          },
          "appearance": {
            "$ref": "#/$defs/appearance/appearance"
          },
          "representation": {
            "$ref": "#/$defs/world/representation"
          },
          "representations": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/world/representation"
            },
            "minItems": 1
          },
          "visibility": {
            "type": "object",
            "properties": {
              "visible": {
                "type": "boolean"
              },
              "occluded": {
                "type": "boolean"
              },
              "opacity": {
                "type": "number",
                "minimum": 0,
                "maximum": 1
              },
              "layers": {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "uniqueItems": true
              }
            },
            "additionalProperties": false
          },
          "presence": {
            "type": "object",
            "properties": {
              "from": {
                "$ref": "#/$defs/common/time"
              },
              "to": {
                "$ref": "#/$defs/common/time"
              },
              "condition": {
                "$ref": "#/$defs/common/condition"
              },
              "sceneRefs": {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/common/id"
                },
                "uniqueItems": true
              }
            },
            "additionalProperties": false
          },
          "lifecycle": {
            "enum": [
              "persistent",
              "ephemeral",
              "generated",
              "derived",
              "conditional",
              "tracked",
              "procedural"
            ]
          },
          "parts": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "relationships": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "states": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "actions": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "motion": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "references": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "identity": {
            "type": "object",
            "properties": {
              "persistentKey": {
                "type": "string",
                "minLength": 1
              },
              "label": {
                "type": "string",
                "minLength": 1
              },
              "description": {
                "type": "string",
                "minLength": 1
              }
            },
            "additionalProperties": false
          },
          "confidence": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "provenance": {
            "$ref": "#/$defs/common/provenance"
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "required": [
          "id",
          "kind"
        ],
        "additionalProperties": false
      },
      "relationship": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "type": {
            "$ref": "#/$defs/common/taxonomy"
          },
          "sourceRef": {
            "$ref": "#/$defs/common/id"
          },
          "targetRef": {
            "$ref": "#/$defs/common/id"
          },
          "strength": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "temporal": {
            "type": "object",
            "properties": {
              "from": {
                "$ref": "#/$defs/common/time"
              },
              "to": {
                "$ref": "#/$defs/common/time"
              }
            },
            "additionalProperties": false
          },
          "confidence": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "provenance": {
            "$ref": "#/$defs/common/provenance"
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "required": [
          "id",
          "type",
          "sourceRef",
          "targetRef"
        ],
        "additionalProperties": false
      },
      "world": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "name": {
            "type": "string",
            "minLength": 1
          },
          "environment": {
            "$ref": "#/$defs/world/environment"
          },
          "sceneRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "entityRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "cameraRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "lightRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "effectRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "coordinateSystem": {
            "type": "object",
            "properties": {
              "handedness": {
                "enum": [
                  "left",
                  "right"
                ]
              },
              "upAxis": {
                "enum": [
                  "x",
                  "y",
                  "z"
                ]
              },
              "unit": {
                "enum": [
                  "px",
                  "m",
                  "cm",
                  "mm"
                ]
              },
              "origin": {
                "$ref": "#/$defs/common/vector3"
              }
            },
            "additionalProperties": false
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "additionalProperties": false
      }
    },
    "scene": {
      "content": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "minLength": 1
          },
          "assetRef": {
            "$ref": "#/$defs/common/id"
          },
          "alt": {
            "type": "string",
            "minLength": 1
          },
          "runs": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "text": {
                  "type": "string"
                },
                "typography": {
                  "$ref": "#/$defs/appearance/typography"
                },
                "color": {
                  "$ref": "#/$defs/appearance/color"
                }
              },
              "required": [
                "text"
              ],
              "additionalProperties": false
            }
          },
          "fit": {
            "enum": [
              "contain",
              "cover",
              "fill",
              "none",
              "scale-down"
            ]
          },
          "objectPosition": {
            "$ref": "#/$defs/common/vector2"
          },
          "chart": {
            "$ref": "#/$defs/media/chart"
          }
        },
        "additionalProperties": false
      },
      "node": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "kind": {
            "$ref": "#/$defs/common/taxonomy"
          },
          "name": {
            "type": "string",
            "minLength": 1
          },
          "entityRef": {
            "$ref": "#/$defs/common/id"
          },
          "componentRef": {
            "$ref": "#/$defs/common/id"
          },
          "semanticRef": {
            "$ref": "#/$defs/common/id"
          },
          "assetRef": {
            "$ref": "#/$defs/common/id"
          },
          "materialRef": {
            "$ref": "#/$defs/common/id"
          },
          "instanceOf": {
            "$ref": "#/$defs/common/id"
          },
          "text": {
            "type": "string"
          },
          "content": {
            "$ref": "#/$defs/scene/content"
          },
          "geometry": {
            "$ref": "#/$defs/geometry/geometry"
          },
          "layout": {
            "$ref": "#/$defs/layout/layout"
          },
          "appearance": {
            "$ref": "#/$defs/appearance/appearance"
          },
          "transform": {
            "$ref": "#/$defs/geometry/transform"
          },
          "bounds": {
            "$ref": "#/$defs/common/bounds"
          },
          "responsive": {
            "$ref": "#/$defs/layout/responsive"
          },
          "accessibility": {
            "$ref": "#/$defs/accessibility/accessibility"
          },
          "children": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/scene/node"
            }
          },
          "visible": {
            "type": "boolean"
          },
          "layer": {
            "type": "string",
            "minLength": 1
          },
          "stateRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "eventRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "actionRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "motionRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "effectRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "references": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "spatialUI": {
            "$ref": "#/$defs/game/spatialUI"
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "required": [
          "id",
          "kind"
        ],
        "additionalProperties": false
      },
      "scene": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "name": {
            "type": "string",
            "minLength": 1
          },
          "kind": {
            "enum": [
              "2d",
              "2.5d",
              "3d"
            ]
          },
          "nodes": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/scene/node"
            }
          },
          "entityRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "cameraRef": {
            "$ref": "#/$defs/common/id"
          },
          "lightRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "layers": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "$ref": "#/$defs/common/id"
                },
                "name": {
                  "type": "string",
                  "minLength": 1
                },
                "order": {
                  "type": "integer"
                },
                "visible": {
                  "type": "boolean"
                },
                "opacity": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1
                }
              },
              "required": [
                "id"
              ],
              "additionalProperties": false
            }
          },
          "environment": {
            "$ref": "#/$defs/world/environment"
          },
          "effects": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "overlays": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "viewport": {
            "$ref": "#/$defs/common/viewport"
          },
          "background": {
            "$ref": "#/$defs/appearance/paint"
          },
          "coordinateSpace": {
            "$ref": "#/$defs/common/coordinateSpace"
          },
          "timelineRef": {
            "$ref": "#/$defs/common/id"
          },
          "layout": {
            "$ref": "#/$defs/layout/layout"
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "required": [
          "id",
          "kind",
          "nodes"
        ],
        "additionalProperties": false
      }
    },
    "media": {
      "composition": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "sceneRef": {
            "$ref": "#/$defs/common/id"
          },
          "cameraRef": {
            "$ref": "#/$defs/common/id"
          },
          "subjectRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "intent": {
            "type": "string",
            "minLength": 1
          },
          "style": {
            "type": "string",
            "minLength": 1
          },
          "rules": {
            "type": "array",
            "items": {
              "enum": [
                "rule-of-thirds",
                "golden-ratio",
                "symmetry",
                "leading-lines",
                "centered",
                "diagonal",
                "radial",
                "free"
              ]
            },
            "uniqueItems": true
          },
          "subjectPlacement": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "entityRef": {
                  "$ref": "#/$defs/common/id"
                },
                "bounds": {
                  "$ref": "#/$defs/common/bounds"
                },
                "priority": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "required": [
                "entityRef",
                "bounds"
              ],
              "additionalProperties": false
            }
          },
          "negativeSpace": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/bounds"
            }
          },
          "balance": {
            "enum": [
              "symmetric",
              "asymmetric",
              "radial"
            ]
          },
          "depth": {
            "enum": [
              "flat",
              "layered",
              "deep"
            ]
          },
          "lightRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "effectRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "referenceRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "required": [
          "id",
          "sceneRef"
        ],
        "additionalProperties": false
      },
      "illustration": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "sceneRef": {
            "$ref": "#/$defs/common/id"
          },
          "technique": {
            "$ref": "#/$defs/common/taxonomy"
          },
          "style": {
            "type": "string",
            "minLength": 1
          },
          "palette": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/appearance/color"
            }
          },
          "stroke": {
            "$ref": "#/$defs/appearance/stroke"
          },
          "textureAssetRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "referenceRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "required": [
          "id",
          "sceneRef",
          "technique"
        ],
        "additionalProperties": false
      },
      "caption": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "start": {
            "$ref": "#/$defs/common/time"
          },
          "end": {
            "$ref": "#/$defs/common/time"
          },
          "text": {
            "type": "string",
            "minLength": 1
          },
          "speaker": {
            "type": "string",
            "minLength": 1
          },
          "language": {
            "type": "string",
            "minLength": 1
          },
          "position": {
            "enum": [
              "top",
              "bottom",
              "center"
            ]
          },
          "nodeRef": {
            "$ref": "#/$defs/common/id"
          }
        },
        "required": [
          "id",
          "start",
          "end",
          "text"
        ],
        "additionalProperties": false
      },
      "shot": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "sceneRef": {
            "$ref": "#/$defs/common/id"
          },
          "cameraRef": {
            "$ref": "#/$defs/common/id"
          },
          "start": {
            "$ref": "#/$defs/common/time"
          },
          "duration": {
            "$ref": "#/$defs/common/duration"
          },
          "intent": {
            "type": "string",
            "minLength": 1
          },
          "transition": {
            "$ref": "#/$defs/timeline/transition"
          }
        },
        "required": [
          "id",
          "sceneRef",
          "start",
          "duration"
        ],
        "additionalProperties": false
      },
      "video": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "timelineRef": {
            "$ref": "#/$defs/common/id"
          },
          "shots": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/media/shot"
            },
            "minItems": 1
          },
          "captions": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/media/caption"
            }
          },
          "subtitleAssetRef": {
            "$ref": "#/$defs/common/id"
          },
          "audioAssetRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "effectRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "aspectRatio": {
            "type": "number",
            "exclusiveMinimum": 0
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "required": [
          "id",
          "timelineRef",
          "shots"
        ],
        "additionalProperties": false
      },
      "chart": {
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "bar",
              "line",
              "area",
              "pie",
              "donut",
              "scatter",
              "table"
            ]
          },
          "title": {
            "type": "string",
            "minLength": 1
          },
          "description": {
            "type": "string",
            "minLength": 1
          },
          "labels": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "series": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "minLength": 1
                },
                "values": {
                  "type": "array",
                  "items": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "color": {
                  "$ref": "#/$defs/appearance/color"
                }
              },
              "required": [
                "name",
                "values"
              ],
              "additionalProperties": false
            },
            "minItems": 1
          },
          "xLabel": {
            "type": "string",
            "minLength": 1
          },
          "yLabel": {
            "type": "string",
            "minLength": 1
          },
          "legend": {
            "type": "boolean"
          },
          "showValues": {
            "type": "boolean"
          }
        },
        "required": [
          "type",
          "series"
        ],
        "additionalProperties": false
      }
    },
    "presentation": {
      "master": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "name": {
            "type": "string",
            "minLength": 1
          },
          "sceneRef": {
            "$ref": "#/$defs/common/id"
          },
          "layout": {
            "$ref": "#/$defs/layout/layout"
          },
          "background": {
            "$ref": "#/$defs/appearance/paint"
          },
          "slots": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/$defs/components/slot"
            }
          },
          "headerNodeRef": {
            "$ref": "#/$defs/common/id"
          },
          "footerNodeRef": {
            "$ref": "#/$defs/common/id"
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      },
      "slide": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "title": {
            "type": "string",
            "minLength": 1
          },
          "sceneRef": {
            "$ref": "#/$defs/common/id"
          },
          "masterRef": {
            "$ref": "#/$defs/common/id"
          },
          "layout": {
            "type": "string",
            "minLength": 1
          },
          "notes": {
            "type": "string"
          },
          "transition": {
            "$ref": "#/$defs/timeline/transition"
          },
          "timelineRef": {
            "$ref": "#/$defs/common/id"
          },
          "duration": {
            "$ref": "#/$defs/common/duration"
          },
          "hidden": {
            "type": "boolean"
          },
          "mediaAssetRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "narrativeRole": {
            "$ref": "#/$defs/common/taxonomy"
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "required": [
          "id",
          "sceneRef"
        ],
        "additionalProperties": false
      },
      "presentation": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "title": {
            "type": "string",
            "minLength": 1
          },
          "size": {
            "$ref": "#/$defs/common/viewport"
          },
          "masters": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/presentation/master"
            }
          },
          "slides": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/presentation/slide"
            },
            "minItems": 1
          },
          "sequence": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "loop": {
            "type": "boolean"
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "required": [
          "id",
          "slides"
        ],
        "additionalProperties": false
      }
    },
    "document": {
      "section": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "title": {
            "type": "string",
            "minLength": 1
          },
          "nodeRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "columns": {
            "type": "integer",
            "minimum": 1
          },
          "columnGap": {
            "$ref": "#/$defs/common/dimension"
          },
          "breakBefore": {
            "enum": [
              "auto",
              "page",
              "column",
              "odd",
              "even"
            ]
          },
          "keepTogether": {
            "type": "boolean"
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      },
      "note": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "anchorRef": {
            "$ref": "#/$defs/common/id"
          },
          "text": {
            "type": "string",
            "minLength": 1
          },
          "kind": {
            "enum": [
              "footnote",
              "endnote",
              "caption"
            ]
          },
          "nodeRef": {
            "$ref": "#/$defs/common/id"
          }
        },
        "required": [
          "id",
          "text",
          "kind"
        ],
        "additionalProperties": false
      },
      "page": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "sceneRef": {
            "$ref": "#/$defs/common/id"
          },
          "size": {
            "type": "object",
            "properties": {
              "width": {
                "$ref": "#/$defs/common/size"
              },
              "height": {
                "$ref": "#/$defs/common/size"
              }
            },
            "required": [
              "width",
              "height"
            ],
            "additionalProperties": false
          },
          "margin": {
            "$ref": "#/$defs/layout/insets"
          },
          "bleed": {
            "$ref": "#/$defs/common/size"
          },
          "headerRef": {
            "$ref": "#/$defs/common/id"
          },
          "footerRef": {
            "$ref": "#/$defs/common/id"
          },
          "sections": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/document/section"
            }
          },
          "notes": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/document/note"
            }
          },
          "number": {
            "type": "integer",
            "minimum": 1
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "required": [
          "id",
          "sceneRef"
        ],
        "additionalProperties": false
      },
      "document": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "title": {
            "type": "string",
            "minLength": 1
          },
          "pages": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/document/page"
            },
            "minItems": 1
          },
          "pagination": {
            "type": "object",
            "properties": {
              "start": {
                "type": "integer",
                "minimum": 0
              },
              "format": {
                "enum": [
                  "decimal",
                  "lower-roman",
                  "upper-roman",
                  "lower-alpha",
                  "upper-alpha"
                ]
              },
              "position": {
                "enum": [
                  "header",
                  "footer",
                  "margin"
                ]
              },
              "showFirst": {
                "type": "boolean"
              }
            },
            "additionalProperties": false
          },
          "binding": {
            "enum": [
              "left",
              "right",
              "top",
              "none"
            ]
          },
          "widows": {
            "type": "integer",
            "minimum": 1
          },
          "orphans": {
            "type": "integer",
            "minimum": 1
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "required": [
          "id",
          "pages"
        ],
        "additionalProperties": false
      }
    },
    "three-d": {
      "joint": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "name": {
            "type": "string",
            "minLength": 1
          },
          "parentRef": {
            "$ref": "#/$defs/common/id"
          },
          "transform": {
            "$ref": "#/$defs/geometry/transform"
          },
          "inverseBindMatrix": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "minItems": 16,
            "maxItems": 16
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      },
      "skeleton": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "joints": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/three-d/joint"
            },
            "minItems": 1
          },
          "rootRef": {
            "$ref": "#/$defs/common/id"
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "required": [
          "id",
          "joints"
        ],
        "additionalProperties": false
      },
      "mesh": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "assetRef": {
            "$ref": "#/$defs/common/id"
          },
          "geometry": {
            "$ref": "#/$defs/geometry/geometry"
          },
          "materialRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "skeletonRef": {
            "$ref": "#/$defs/common/id"
          },
          "skin": {
            "type": "object",
            "properties": {
              "jointRefs": {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/common/id"
                },
                "uniqueItems": true
              },
              "weightsAssetRef": {
                "$ref": "#/$defs/common/id"
              },
              "bindPoseAssetRef": {
                "$ref": "#/$defs/common/id"
              }
            },
            "additionalProperties": false
          },
          "morphTargets": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "$ref": "#/$defs/common/id"
                },
                "name": {
                  "type": "string",
                  "minLength": 1
                },
                "assetRef": {
                  "$ref": "#/$defs/common/id"
                },
                "weight": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1
                }
              },
              "required": [
                "id"
              ],
              "additionalProperties": false
            }
          },
          "lod": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "distance": {
                  "type": "number",
                  "minimum": 0
                },
                "assetRef": {
                  "$ref": "#/$defs/common/id"
                },
                "meshRef": {
                  "$ref": "#/$defs/common/id"
                },
                "screenCoverage": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1
                }
              },
              "required": [
                "distance"
              ],
              "additionalProperties": false
            }
          },
          "instanceRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      },
      "rig": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "skeletonRef": {
            "$ref": "#/$defs/common/id"
          },
          "assetRef": {
            "$ref": "#/$defs/common/id"
          },
          "controls": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "$ref": "#/$defs/common/id"
                },
                "jointRefs": {
                  "type": "array",
                  "items": {
                    "$ref": "#/$defs/common/id"
                  },
                  "uniqueItems": true
                },
                "kind": {
                  "enum": [
                    "fk",
                    "ik",
                    "look-at",
                    "constraint"
                  ]
                },
                "targetRef": {
                  "$ref": "#/$defs/common/id"
                }
              },
              "required": [
                "id",
                "kind"
              ],
              "additionalProperties": false
            }
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      },
      "threeD": {
        "type": "object",
        "properties": {
          "sceneRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "meshes": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/three-d/mesh"
            }
          },
          "skeletons": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/three-d/skeleton"
            }
          },
          "rigs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/three-d/rig"
            }
          },
          "assetRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "animationRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "additionalProperties": false
      }
    },
    "game": {
      "spatialUI": {
        "type": "object",
        "properties": {
          "mode": {
            "enum": [
              "world-space",
              "screen-space",
              "anchored",
              "entity-attached"
            ]
          },
          "anchorRef": {
            "$ref": "#/$defs/common/id"
          },
          "billboard": {
            "enum": [
              "none",
              "camera",
              "axis-y"
            ]
          },
          "occlusion": {
            "enum": [
              "depth-test",
              "always-visible",
              "fade"
            ]
          },
          "scaleMode": {
            "enum": [
              "world",
              "screen",
              "distance"
            ]
          },
          "interaction": {
            "enum": [
              "pointer",
              "gaze",
              "ray",
              "direct",
              "none"
            ]
          },
          "distance": {
            "type": "number",
            "minimum": 0
          }
        },
        "required": [
          "mode"
        ],
        "additionalProperties": false
      },
      "character": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "entityRef": {
            "$ref": "#/$defs/common/id"
          },
          "rigRef": {
            "$ref": "#/$defs/common/id"
          },
          "skeletonRef": {
            "$ref": "#/$defs/common/id"
          },
          "animationController": {
            "type": "object",
            "properties": {
              "initialState": {
                "$ref": "#/$defs/common/id"
              },
              "states": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "$ref": "#/$defs/common/id"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1
                    },
                    "motionRef": {
                      "$ref": "#/$defs/common/id"
                    },
                    "assetRef": {
                      "$ref": "#/$defs/common/id"
                    },
                    "speed": {
                      "type": "number",
                      "minimum": 0
                    },
                    "loop": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "id",
                    "name"
                  ],
                  "additionalProperties": false
                }
              },
              "transitions": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "from": {
                      "$ref": "#/$defs/common/id"
                    },
                    "to": {
                      "$ref": "#/$defs/common/id"
                    },
                    "duration": {
                      "$ref": "#/$defs/common/duration"
                    },
                    "blend": {
                      "enum": [
                        "linear",
                        "crossfade",
                        "additive"
                      ]
                    },
                    "eventRef": {
                      "$ref": "#/$defs/common/id"
                    }
                  },
                  "required": [
                    "from",
                    "to"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "additionalProperties": false
          },
          "visualStateMappings": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "properties": {
                "stateRef": {
                  "$ref": "#/$defs/common/id"
                },
                "motionRef": {
                  "$ref": "#/$defs/common/id"
                },
                "effectRefs": {
                  "type": "array",
                  "items": {
                    "$ref": "#/$defs/common/id"
                  },
                  "uniqueItems": true
                },
                "appearance": {
                  "$ref": "#/$defs/appearance/appearance"
                }
              },
              "additionalProperties": false
            }
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "required": [
          "id",
          "entityRef"
        ],
        "additionalProperties": false
      },
      "level": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "name": {
            "type": "string",
            "minLength": 1
          },
          "sceneRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/id"
            },
            "uniqueItems": true
          },
          "areas": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "$ref": "#/$defs/common/id"
                },
                "sceneRef": {
                  "$ref": "#/$defs/common/id"
                },
                "bounds": {
                  "$ref": "#/$defs/common/bounds"
                },
                "environment": {
                  "$ref": "#/$defs/world/environment"
                }
              },
              "required": [
                "id"
              ],
              "additionalProperties": false
            }
          },
          "environment": {
            "$ref": "#/$defs/world/environment"
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "required": [
          "id",
          "sceneRefs"
        ],
        "additionalProperties": false
      },
      "game": {
        "type": "object",
        "properties": {
          "worldRef": {
            "$ref": "#/$defs/common/id"
          },
          "levels": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/game/level"
            }
          },
          "characters": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/game/character"
            }
          },
          "hud": {
            "type": "object",
            "properties": {
              "sceneRef": {
                "$ref": "#/$defs/common/id"
              },
              "componentRefs": {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/common/id"
                },
                "uniqueItems": true
              },
              "safeArea": {
                "type": "boolean"
              }
            },
            "additionalProperties": false
          },
          "cameraRef": {
            "$ref": "#/$defs/common/id"
          },
          "visualStates": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "$ref": "#/$defs/common/id"
                },
                "externalName": {
                  "type": "string",
                  "minLength": 1
                },
                "stateRefs": {
                  "type": "array",
                  "items": {
                    "$ref": "#/$defs/common/id"
                  },
                  "uniqueItems": true
                },
                "actionRefs": {
                  "type": "array",
                  "items": {
                    "$ref": "#/$defs/common/id"
                  },
                  "uniqueItems": true
                },
                "effectRefs": {
                  "type": "array",
                  "items": {
                    "$ref": "#/$defs/common/id"
                  },
                  "uniqueItems": true
                }
              },
              "required": [
                "id",
                "externalName"
              ],
              "additionalProperties": false
            }
          },
          "cutscenes": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "$ref": "#/$defs/common/id"
                },
                "timelineRef": {
                  "$ref": "#/$defs/common/id"
                },
                "skippable": {
                  "type": "boolean"
                },
                "restoreCamera": {
                  "type": "boolean"
                }
              },
              "required": [
                "id",
                "timelineRef"
              ],
              "additionalProperties": false
            }
          },
          "spatialUI": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/game/spatialUI"
            }
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "additionalProperties": false
      }
    },
    "rendering": {
      "capability": {
        "type": "object",
        "properties": {
          "name": {
            "$ref": "#/$defs/common/taxonomy"
          },
          "level": {
            "enum": [
              "required",
              "preferred",
              "optional",
              "unsupported"
            ]
          },
          "fallback": {
            "type": "object",
            "properties": {
              "strategy": {
                "enum": [
                  "omit",
                  "approximate",
                  "substitute",
                  "rasterize",
                  "flatten"
                ]
              },
              "description": {
                "type": "string",
                "minLength": 1
              },
              "assetRef": {
                "$ref": "#/$defs/common/id"
              },
              "motionRef": {
                "$ref": "#/$defs/common/id"
              },
              "capability": {
                "$ref": "#/$defs/common/taxonomy"
              }
            },
            "additionalProperties": false
          },
          "reason": {
            "type": "string",
            "minLength": 1
          }
        },
        "required": [
          "name",
          "level"
        ],
        "additionalProperties": false
      },
      "target": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "platform": {
            "$ref": "#/$defs/common/taxonomy"
          },
          "width": {
            "type": "integer",
            "minimum": 1
          },
          "height": {
            "type": "integer",
            "minimum": 1
          },
          "pixelDensity": {
            "type": "number",
            "exclusiveMinimum": 0
          },
          "colorSpace": {
            "enum": [
              "srgb",
              "display-p3",
              "rec2020",
              "linear"
            ]
          },
          "colorSpaceFallback": {
            "enum": [
              "srgb",
              "display-p3",
              "rec2020",
              "linear"
            ]
          },
          "frameRate": {
            "type": "number",
            "exclusiveMinimum": 0
          },
          "aspectRatio": {
            "type": "number",
            "exclusiveMinimum": 0
          },
          "quality": {
            "enum": [
              "draft",
              "preview",
              "production",
              "lossless"
            ]
          },
          "format": {
            "type": "string",
            "minLength": 1
          },
          "capabilities": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/rendering/capability"
            }
          },
          "profileRefs": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/common/taxonomy"
            },
            "uniqueItems": true
          },
          "transparent": {
            "type": "boolean"
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "required": [
          "id",
          "platform"
        ],
        "additionalProperties": false
      },
      "rendering": {
        "type": "object",
        "properties": {
          "targets": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/rendering/target"
            },
            "minItems": 1
          },
          "capabilities": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/rendering/capability"
            }
          },
          "quality": {
            "enum": [
              "draft",
              "preview",
              "production",
              "lossless"
            ]
          },
          "deterministic": {
            "type": "boolean"
          },
          "seed": {
            "type": "integer",
            "minimum": 0
          },
          "fallbackPolicy": {
            "enum": [
              "explicit-only",
              "report-and-approximate",
              "error"
            ]
          },
          "background": {
            "$ref": "#/$defs/appearance/color"
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "additionalProperties": false
      },
      "override": {
        "type": "object",
        "properties": {
          "platform": {
            "$ref": "#/$defs/common/taxonomy"
          },
          "targetRef": {
            "$ref": "#/$defs/common/id"
          },
          "reason": {
            "type": "string",
            "minLength": 1
          },
          "layout": {
            "$ref": "#/$defs/layout/layout"
          },
          "appearance": {
            "$ref": "#/$defs/appearance/appearance"
          },
          "accessibility": {
            "$ref": "#/$defs/accessibility/accessibility"
          },
          "componentRef": {
            "$ref": "#/$defs/common/id"
          },
          "motionRef": {
            "$ref": "#/$defs/common/id"
          },
          "capabilities": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/rendering/capability"
            }
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "required": [
          "platform",
          "targetRef",
          "reason"
        ],
        "additionalProperties": false
      }
    },
    "validation": {
      "tolerance": {
        "type": "object",
        "description": "Comparison thresholds; metric-specific interpretation is declared by the validator.",
        "properties": {
          "absolute": {
            "type": "number",
            "minimum": 0
          },
          "relative": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "unit": {
            "type": "string",
            "minLength": 1
          }
        },
        "additionalProperties": false
      },
      "rule": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/common/id"
          },
          "type": {
            "enum": [
              "schema",
              "semantic",
              "capability",
              "accessibility",
              "visual",
              "reference-conformance"
            ]
          },
          "targetRef": {
            "$ref": "#/$defs/common/id"
          },
          "referenceRef": {
            "$ref": "#/$defs/common/id"
          },
          "aspect": {
            "$ref": "#/$defs/common/taxonomy"
          },
          "metric": {
            "$ref": "#/$defs/common/taxonomy"
          },
          "matchMode": {
            "enum": [
              "exact",
              "structural",
              "perceptual",
              "semantic",
              "stylistic",
              "inspirational"
            ]
          },
          "conformance": {
            "enum": [
              "strict",
              "approximate",
              "inspiration"
            ]
          },
          "tolerance": {
            "$ref": "#/$defs/validation/tolerance"
          },
          "severity": {
            "enum": [
              "error",
              "warning",
              "info"
            ]
          },
          "required": {
            "type": "boolean"
          },
          "description": {
            "type": "string",
            "minLength": 1
          },
          "viewport": {
            "$ref": "#/$defs/common/viewport"
          },
          "stateRef": {
            "$ref": "#/$defs/common/id"
          },
          "time": {
            "$ref": "#/$defs/common/time"
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "required": [
          "id",
          "type"
        ],
        "additionalProperties": false
      },
      "validation": {
        "type": "object",
        "properties": {
          "schema": {
            "type": "boolean"
          },
          "semantic": {
            "type": "boolean"
          },
          "accessibility": {
            "type": "boolean"
          },
          "capabilities": {
            "type": "boolean"
          },
          "rules": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/validation/rule"
            }
          },
          "referenceConformance": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "referenceRef": {
                  "$ref": "#/$defs/common/id"
                },
                "aspect": {
                  "$ref": "#/$defs/common/taxonomy"
                },
                "conformance": {
                  "enum": [
                    "strict",
                    "approximate",
                    "inspiration"
                  ]
                },
                "matchMode": {
                  "enum": [
                    "exact",
                    "structural",
                    "perceptual",
                    "semantic",
                    "stylistic",
                    "inspirational"
                  ]
                },
                "tolerance": {
                  "$ref": "#/$defs/validation/tolerance"
                }
              },
              "required": [
                "referenceRef",
                "aspect",
                "conformance"
              ],
              "additionalProperties": false
            }
          },
          "failOn": {
            "enum": [
              "error",
              "warning",
              "info"
            ]
          },
          "extensions": {
            "$ref": "#/$defs/common/extensions"
          }
        },
        "additionalProperties": false
      }
    }
  }
}
