{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "$schema": {
      "description": "JSON Schema URL used by editors; an existing custom URL is preserved.",
      "type": "string"
    },
    "settings": {
      "type": "object",
      "properties": {
        "window": {
          "type": "object",
          "properties": {
            "bounds": {
              "type": "object",
              "properties": {
                "x": {
                  "type": "number",
                  "description": "Window left edge in screen device-independent pixels; negative on some displays."
                },
                "y": {
                  "type": "number",
                  "description": "Window top edge in screen device-independent pixels; negative on some displays."
                },
                "width": {
                  "type": "number",
                  "description": "Stage content width in device-independent pixels."
                },
                "height": {
                  "type": "number",
                  "description": "Stage content height in device-independent pixels."
                }
              },
              "required": [
                "x",
                "y",
                "width",
                "height"
              ],
              "additionalProperties": false,
              "description": "Last stage-window position and content size."
            },
            "controlBounds": {
              "type": "object",
              "properties": {
                "x": {
                  "type": "number",
                  "description": "Window left edge in screen device-independent pixels; negative on some displays."
                },
                "y": {
                  "type": "number",
                  "description": "Window top edge in screen device-independent pixels; negative on some displays."
                },
                "width": {
                  "type": "number",
                  "description": "Stage content width in device-independent pixels."
                },
                "height": {
                  "type": "number",
                  "description": "Stage content height in device-independent pixels."
                }
              },
              "required": [
                "x",
                "y",
                "width",
                "height"
              ],
              "additionalProperties": false,
              "description": "Last control-window position and content size."
            },
            "alwaysOnTop": {
              "type": "boolean",
              "description": "Keep the control-panel window above other windows."
            }
          },
          "additionalProperties": false,
          "description": "Desktop window placement and behavior."
        },
        "model": {
          "type": "object",
          "properties": {
            "lastModelId": {
              "description": "Legacy selected model, read only when migrating into scenes.",
              "type": [
                "string",
                "null"
              ]
            },
            "transform": {
              "type": "object",
              "properties": {
                "x": {
                  "type": "number",
                  "description": "Legacy horizontal model translation, migrated into the first scene."
                },
                "y": {
                  "type": "number",
                  "description": "Legacy vertical model translation, migrated into the first scene."
                },
                "scale": {
                  "type": "number",
                  "description": "Legacy model scale, normalized when migrated into the first scene."
                }
              },
              "additionalProperties": false,
              "description": "Legacy Live2D placement, read only when migrating settings into scenes."
            },
            "vrmTransform": {
              "type": "object",
              "properties": {
                "azimuth": {
                  "type": "number",
                  "description": "Horizontal orbit angle in radians."
                },
                "elevation": {
                  "type": "number",
                  "description": "Vertical orbit angle in radians."
                },
                "distance": {
                  "type": "number",
                  "description": "Camera distance from its target in world units; normalized during migration."
                },
                "targetX": {
                  "type": "number",
                  "description": "Horizontal orbit target in world units."
                },
                "targetY": {
                  "type": "number",
                  "description": "Vertical orbit target in world units."
                },
                "targetZ": {
                  "type": "number",
                  "description": "Depth of the orbit target in world units."
                }
              },
              "additionalProperties": false,
              "description": "Legacy VRM camera, read only when migrating settings into scenes."
            },
            "recents": {
              "type": "array",
              "items": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "Stable model registry identity."
                      },
                      "name": {
                        "type": "string",
                        "description": "Model display name."
                      },
                      "origin": {
                        "type": "string",
                        "enum": [
                          "bundled",
                          "user"
                        ],
                        "description": "Whether the model is bundled or user-imported."
                      },
                      "kind": {
                        "description": "Model format; in older records without origin, this field instead identifies the model origin.",
                        "type": "string",
                        "enum": [
                          "live2d",
                          "vrm",
                          "bundled",
                          "user"
                        ]
                      },
                      "format": {
                        "description": "Legacy model format, used before the kind field was renamed.",
                        "type": "string",
                        "enum": [
                          "live2d",
                          "vrm"
                        ]
                      },
                      "dir": {
                        "type": "string",
                        "description": "Absolute model directory. Only the desktop reads this filesystem path."
                      },
                      "entryFile": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Model entry filename relative to its registered directory."
                      },
                      "model3File": {
                        "description": "Legacy Live2D entry filename, used when entryFile is absent.",
                        "type": "string",
                        "minLength": 1
                      }
                    },
                    "required": [
                      "id",
                      "name",
                      "origin",
                      "dir",
                      "entryFile"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "Stable model registry identity."
                      },
                      "name": {
                        "type": "string",
                        "description": "Model display name."
                      },
                      "origin": {
                        "type": "string",
                        "enum": [
                          "bundled",
                          "user"
                        ],
                        "description": "Whether the model is bundled or user-imported."
                      },
                      "kind": {
                        "description": "Model format; in older records without origin, this field instead identifies the model origin.",
                        "type": "string",
                        "enum": [
                          "live2d",
                          "vrm",
                          "bundled",
                          "user"
                        ]
                      },
                      "format": {
                        "description": "Legacy model format, used before the kind field was renamed.",
                        "type": "string",
                        "enum": [
                          "live2d",
                          "vrm"
                        ]
                      },
                      "dir": {
                        "type": "string",
                        "description": "Absolute model directory. Only the desktop reads this filesystem path."
                      },
                      "entryFile": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Model entry filename relative to its registered directory."
                      },
                      "model3File": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Model entry filename relative to its registered directory."
                      }
                    },
                    "required": [
                      "id",
                      "name",
                      "origin",
                      "dir",
                      "model3File"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "Stable model registry identity."
                      },
                      "name": {
                        "type": "string",
                        "description": "Model display name."
                      },
                      "origin": {
                        "type": "string",
                        "enum": [
                          "bundled",
                          "user"
                        ],
                        "description": "Whether the model is bundled or user-imported."
                      },
                      "kind": {
                        "type": "string",
                        "enum": [
                          "bundled",
                          "user"
                        ],
                        "description": "Whether the model is bundled or user-imported."
                      },
                      "format": {
                        "description": "Legacy model format, used before the kind field was renamed.",
                        "type": "string",
                        "enum": [
                          "live2d",
                          "vrm"
                        ]
                      },
                      "dir": {
                        "type": "string",
                        "description": "Absolute model directory. Only the desktop reads this filesystem path."
                      },
                      "entryFile": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Model entry filename relative to its registered directory."
                      },
                      "model3File": {
                        "description": "Legacy Live2D entry filename, used when entryFile is absent.",
                        "type": "string",
                        "minLength": 1
                      }
                    },
                    "required": [
                      "id",
                      "name",
                      "kind",
                      "dir",
                      "entryFile"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "Stable model registry identity."
                      },
                      "name": {
                        "type": "string",
                        "description": "Model display name."
                      },
                      "origin": {
                        "type": "string",
                        "enum": [
                          "bundled",
                          "user"
                        ],
                        "description": "Whether the model is bundled or user-imported."
                      },
                      "kind": {
                        "type": "string",
                        "enum": [
                          "bundled",
                          "user"
                        ],
                        "description": "Whether the model is bundled or user-imported."
                      },
                      "format": {
                        "description": "Legacy model format, used before the kind field was renamed.",
                        "type": "string",
                        "enum": [
                          "live2d",
                          "vrm"
                        ]
                      },
                      "dir": {
                        "type": "string",
                        "description": "Absolute model directory. Only the desktop reads this filesystem path."
                      },
                      "entryFile": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Model entry filename relative to its registered directory."
                      },
                      "model3File": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Model entry filename relative to its registered directory."
                      }
                    },
                    "required": [
                      "id",
                      "name",
                      "kind",
                      "dir",
                      "model3File"
                    ],
                    "additionalProperties": false
                  }
                ],
                "description": "A recent model in the current or legacy format; the origin and an entry filename are required."
              },
              "description": "Previously imported models; entries retain desktop-only paths."
            }
          },
          "additionalProperties": false,
          "description": "Recent models and legacy placement retained for scene migration."
        },
        "ui": {
          "type": "object",
          "properties": {
            "language": {
              "type": "string",
              "enum": [
                "system",
                "en",
                "ja",
                "zh-CN",
                "zh-TW"
              ],
              "description": "Interface language, or system to follow the operating system."
            },
            "theme": {
              "type": "string",
              "enum": [
                "system",
                "light",
                "dark"
              ],
              "description": "Interface appearance, or system to follow the operating system."
            },
            "trayVisible": {
              "type": "boolean",
              "description": "Show the tray or menu bar icon."
            },
            "controlVisible": {
              "type": "boolean",
              "description": "Whether the control window is open."
            },
            "outlinerWidth": {
              "type": "integer",
              "minimum": 260,
              "maximum": 9007199254740991,
              "description": "Outliner column width in CSS pixels."
            },
            "streamMode": {
              "type": "boolean",
              "description": "Hide stage editor overlays while leaving the scene selection unchanged."
            },
            "showInspector": {
              "type": "boolean",
              "description": "Show the primary model inspector on the stage, including in Stream Mode."
            },
            "onboarded": {
              "type": "boolean",
              "description": "Whether the first-run setup dialog has been completed."
            },
            "idleAnimation": {
              "type": "boolean",
              "description": "Legacy idle-animation switch, migrated into scene model instances."
            },
            "idleClip": {
              "type": "string",
              "enum": [
                "Idle_Standing.vrma",
                "Idle_HandsBack.vrma",
                "Idle_HandOnHip.vrma",
                "Idle_FoldedArms.vrma",
                "Idle_Leaning.vrma",
                "Idle_Talking.vrma",
                "Idle_Sitting.vrma",
                "Idle_Dance.vrma",
                "Idle_Waiting.vrma",
                "VRMA_01.vrma",
                "VRMA_02.vrma",
                "VRMA_03.vrma",
                "VRMA_04.vrma",
                "VRMA_05.vrma",
                "VRMA_06.vrma",
                "VRMA_07.vrma"
              ],
              "description": "Legacy bundled idle animation, migrated into scene model instances."
            },
            "modelInfoOpen": {
              "type": "boolean",
              "description": "Expand model information."
            },
            "modelPositionOpen": {
              "type": "boolean",
              "description": "Expand model placement."
            },
            "modelMaterialOpen": {
              "type": "boolean",
              "description": "Expand model materials."
            },
            "modelEffectsOpen": {
              "type": "boolean",
              "description": "Expand model effects."
            },
            "modelIdleOpen": {
              "type": "boolean",
              "description": "Expand model idle animation."
            },
            "modelTrackingOpen": {
              "type": "boolean",
              "description": "Expand model tracking."
            },
            "modelBindingsOpen": {
              "type": "boolean",
              "description": "Expand model parameter bindings."
            },
            "modelMotionsOpen": {
              "type": "boolean",
              "description": "Expand model motions."
            },
            "modelExpressionsOpen": {
              "type": "boolean",
              "description": "Expand model expressions."
            },
            "modelPinOpen": {
              "type": "boolean",
              "description": "Expand model attachment settings."
            },
            "objectInfoOpen": {
              "type": "boolean",
              "description": "Expand object information."
            },
            "objectPositionOpen": {
              "type": "boolean",
              "description": "Expand object placement."
            },
            "objectEffectsOpen": {
              "type": "boolean",
              "description": "Expand object effects."
            },
            "objectWebOpen": {
              "type": "boolean",
              "description": "Expand web object page settings."
            },
            "objectPinOpen": {
              "type": "boolean",
              "description": "Expand object attachment settings."
            },
            "effectDetailOpen": {
              "type": "boolean",
              "description": "Expand the selected effect settings."
            },
            "sceneWindowOpen": {
              "type": "boolean",
              "description": "Expand scene window settings."
            },
            "sceneBackgroundOpen": {
              "type": "boolean",
              "description": "Expand scene background settings."
            },
            "sceneTransitionOpen": {
              "type": "boolean",
              "description": "Expand scene transition settings."
            },
            "sceneCameraOpen": {
              "type": "boolean",
              "description": "Expand scene camera settings."
            },
            "sceneLightingOpen": {
              "type": "boolean",
              "description": "Expand scene lighting settings."
            },
            "sceneEnvironmentOpen": {
              "type": "boolean",
              "description": "Expand scene environment settings."
            },
            "avatarShortcutsOpen": {
              "type": "boolean",
              "description": "Expand avatar shortcuts."
            },
            "settingsGeneralOpen": {
              "type": "boolean",
              "description": "Expand general application settings."
            },
            "settingsPerformanceOpen": {
              "type": "boolean",
              "description": "Expand performance settings."
            },
            "settingsStorageOpen": {
              "type": "boolean",
              "description": "Expand storage settings."
            },
            "settingsApiOpen": {
              "type": "boolean",
              "description": "Expand plugin API settings."
            },
            "settingsHandsOpen": {
              "type": "boolean",
              "description": "Expand hand-tracking settings."
            }
          },
          "additionalProperties": false,
          "description": "Desktop appearance, editor visibility, and remembered panel expansion states."
        },
        "automations": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1,
                "description": "Stable automation identity, used by shortcuts, clients and run diagnostics."
              },
              "timelineVersion": {
                "type": "number",
                "const": 1
              },
              "durationMs": {
                "type": "number",
                "exclusiveMinimum": 0,
                "maximum": 3600000,
                "description": "Manual sequence length or fallback for sources without a finite duration, in milliseconds."
              },
              "autoDuration": {
                "description": "Absent means automatic: the sequence ends with its last clip or cue.",
                "type": "boolean"
              },
              "title": {
                "description": "User label. When absent or empty, the label is derived from the actions.",
                "type": "string"
              },
              "accelerator": {
                "description": "A stored keyboard or controller shortcut; null leaves it unbound. Persona checks the shortcut vocabulary during import.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "global": {
                "type": "boolean",
                "description": "Allow the shortcut while Persona is in the background."
              },
              "enabled": {
                "description": "Absent means enabled.",
                "type": "boolean"
              },
              "triggers": {
                "description": "Any matching trigger can start the automation. Trigger IDs must be unique; Persona checks identity collisions during import.",
                "type": "array",
                "items": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "minLength": 1,
                          "pattern": "\\S",
                          "description": "Stable row identity. IDs must be unique within this action or trigger list."
                        },
                        "kind": {
                          "type": "string",
                          "const": "microphone"
                        },
                        "direction": {
                          "type": "string",
                          "enum": [
                            "above",
                            "below"
                          ],
                          "description": "The strict crossing direction that starts the hold timer."
                        },
                        "threshold": {
                          "type": "number",
                          "minimum": 0,
                          "maximum": 1,
                          "description": "Crossing level in the input's natural range (0 to 1)."
                        },
                        "hysteresis": {
                          "type": "number",
                          "minimum": 0,
                          "maximum": 1,
                          "description": "How far the value must return past the threshold before another crossing can fire."
                        },
                        "holdMs": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 60000,
                          "description": "Whole milliseconds the crossing must remain active before firing."
                        }
                      },
                      "required": [
                        "id",
                        "kind",
                        "direction",
                        "threshold",
                        "hysteresis",
                        "holdMs"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S",
                              "description": "Stable row identity. IDs must be unique within this action or trigger list."
                            },
                            "instanceId": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S",
                              "description": "Avatar layer ID in the scene prepared by setup actions."
                            },
                            "modelId": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S",
                              "description": "Expected registered model ID. A replacement model cannot inherit this action or trigger."
                            },
                            "kind": {
                              "type": "string",
                              "const": "parameter"
                            },
                            "input": {
                              "type": "string",
                              "enum": [
                                "FaceAngleX",
                                "FaceAngleY"
                              ],
                              "description": "Named tracking input, including a saved controller profile. This observes input values, not final model outputs."
                            },
                            "direction": {
                              "type": "string",
                              "enum": [
                                "above",
                                "below"
                              ],
                              "description": "The strict crossing direction that starts the hold timer."
                            },
                            "threshold": {
                              "type": "number",
                              "minimum": -30,
                              "maximum": 30,
                              "description": "Crossing level in the input's natural range (-30 to 30)."
                            },
                            "hysteresis": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 60,
                              "description": "How far the value must return past the threshold before another crossing can fire."
                            },
                            "holdMs": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 60000,
                              "description": "Whole milliseconds the crossing must remain active before firing."
                            }
                          },
                          "required": [
                            "id",
                            "instanceId",
                            "modelId",
                            "kind",
                            "input",
                            "direction",
                            "threshold",
                            "hysteresis",
                            "holdMs"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S",
                              "description": "Stable row identity. IDs must be unique within this action or trigger list."
                            },
                            "instanceId": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S",
                              "description": "Avatar layer ID in the scene prepared by setup actions."
                            },
                            "modelId": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S",
                              "description": "Expected registered model ID. A replacement model cannot inherit this action or trigger."
                            },
                            "kind": {
                              "type": "string",
                              "const": "parameter"
                            },
                            "input": {
                              "type": "string",
                              "enum": [
                                "FaceAngleZ",
                                "HandLeftAngleY",
                                "HandRightAngleY"
                              ],
                              "description": "Named tracking input, including a saved controller profile. This observes input values, not final model outputs."
                            },
                            "direction": {
                              "type": "string",
                              "enum": [
                                "above",
                                "below"
                              ],
                              "description": "The strict crossing direction that starts the hold timer."
                            },
                            "threshold": {
                              "type": "number",
                              "minimum": -90,
                              "maximum": 90,
                              "description": "Crossing level in the input's natural range (-90 to 90)."
                            },
                            "hysteresis": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 180,
                              "description": "How far the value must return past the threshold before another crossing can fire."
                            },
                            "holdMs": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 60000,
                              "description": "Whole milliseconds the crossing must remain active before firing."
                            }
                          },
                          "required": [
                            "id",
                            "instanceId",
                            "modelId",
                            "kind",
                            "input",
                            "direction",
                            "threshold",
                            "hysteresis",
                            "holdMs"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S",
                              "description": "Stable row identity. IDs must be unique within this action or trigger list."
                            },
                            "instanceId": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S",
                              "description": "Avatar layer ID in the scene prepared by setup actions."
                            },
                            "modelId": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S",
                              "description": "Expected registered model ID. A replacement model cannot inherit this action or trigger."
                            },
                            "kind": {
                              "type": "string",
                              "const": "parameter"
                            },
                            "input": {
                              "type": "string",
                              "enum": [
                                "FacePositionX",
                                "FacePositionY"
                              ],
                              "description": "Named tracking input, including a saved controller profile. This observes input values, not final model outputs."
                            },
                            "direction": {
                              "type": "string",
                              "enum": [
                                "above",
                                "below"
                              ],
                              "description": "The strict crossing direction that starts the hold timer."
                            },
                            "threshold": {
                              "type": "number",
                              "minimum": -15,
                              "maximum": 15,
                              "description": "Crossing level in the input's natural range (-15 to 15)."
                            },
                            "hysteresis": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 30,
                              "description": "How far the value must return past the threshold before another crossing can fire."
                            },
                            "holdMs": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 60000,
                              "description": "Whole milliseconds the crossing must remain active before firing."
                            }
                          },
                          "required": [
                            "id",
                            "instanceId",
                            "modelId",
                            "kind",
                            "input",
                            "direction",
                            "threshold",
                            "hysteresis",
                            "holdMs"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S",
                              "description": "Stable row identity. IDs must be unique within this action or trigger list."
                            },
                            "instanceId": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S",
                              "description": "Avatar layer ID in the scene prepared by setup actions."
                            },
                            "modelId": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S",
                              "description": "Expected registered model ID. A replacement model cannot inherit this action or trigger."
                            },
                            "kind": {
                              "type": "string",
                              "const": "parameter"
                            },
                            "input": {
                              "type": "string",
                              "enum": [
                                "FacePositionZ",
                                "HandLeftPositionX",
                                "HandLeftPositionY",
                                "HandLeftPositionZ",
                                "HandRightPositionX",
                                "HandRightPositionY",
                                "HandRightPositionZ"
                              ],
                              "description": "Named tracking input, including a saved controller profile. This observes input values, not final model outputs."
                            },
                            "direction": {
                              "type": "string",
                              "enum": [
                                "above",
                                "below"
                              ],
                              "description": "The strict crossing direction that starts the hold timer."
                            },
                            "threshold": {
                              "type": "number",
                              "minimum": -10,
                              "maximum": 10,
                              "description": "Crossing level in the input's natural range (-10 to 10)."
                            },
                            "hysteresis": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 20,
                              "description": "How far the value must return past the threshold before another crossing can fire."
                            },
                            "holdMs": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 60000,
                              "description": "Whole milliseconds the crossing must remain active before firing."
                            }
                          },
                          "required": [
                            "id",
                            "instanceId",
                            "modelId",
                            "kind",
                            "input",
                            "direction",
                            "threshold",
                            "hysteresis",
                            "holdMs"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S",
                              "description": "Stable row identity. IDs must be unique within this action or trigger list."
                            },
                            "instanceId": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S",
                              "description": "Avatar layer ID in the scene prepared by setup actions."
                            },
                            "modelId": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S",
                              "description": "Expected registered model ID. A replacement model cannot inherit this action or trigger."
                            },
                            "kind": {
                              "type": "string",
                              "const": "parameter"
                            },
                            "input": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "enum": [
                                    "EyeOpenLeft",
                                    "EyeOpenRight",
                                    "MouthSmile",
                                    "MouthOpen",
                                    "VoiceVolume",
                                    "VoiceFrequency",
                                    "VoiceFrequencyPlusMouthSmile",
                                    "VoiceA",
                                    "VoiceI",
                                    "VoiceU",
                                    "VoiceE",
                                    "VoiceO",
                                    "VoiceSilence",
                                    "VoiceMouthOpen",
                                    "HandLeftFound",
                                    "HandLeftOpen",
                                    "HandLeftFinger_1_Thumb",
                                    "HandLeftFinger_2_Index",
                                    "HandLeftFinger_3_Middle",
                                    "HandLeftFinger_4_Ring",
                                    "HandLeftFinger_5_Pinky",
                                    "HandRightFound",
                                    "HandRightOpen",
                                    "HandRightFinger_1_Thumb",
                                    "HandRightFinger_2_Index",
                                    "HandRightFinger_3_Middle",
                                    "HandRightFinger_4_Ring",
                                    "HandRightFinger_5_Pinky",
                                    "BothHandsFound",
                                    "ARKitBrowDownLeft",
                                    "ARKitBrowDownRight",
                                    "ARKitBrowInnerUp",
                                    "ARKitBrowOuterUpLeft",
                                    "ARKitBrowOuterUpRight",
                                    "ARKitCheekPuff",
                                    "ARKitCheekSquintLeft",
                                    "ARKitCheekSquintRight",
                                    "ARKitEyeBlinkLeft",
                                    "ARKitEyeBlinkRight",
                                    "ARKitEyeLookDownLeft",
                                    "ARKitEyeLookDownRight",
                                    "ARKitEyeLookInLeft",
                                    "ARKitEyeLookInRight",
                                    "ARKitEyeLookOutLeft",
                                    "ARKitEyeLookOutRight",
                                    "ARKitEyeLookUpLeft",
                                    "ARKitEyeLookUpRight",
                                    "ARKitEyeSquintLeft",
                                    "ARKitEyeSquintRight",
                                    "ARKitEyeWideLeft",
                                    "ARKitEyeWideRight",
                                    "ARKitJawForward",
                                    "ARKitJawLeft",
                                    "ARKitJawOpen",
                                    "ARKitJawRight",
                                    "ARKitMouthClose",
                                    "ARKitMouthDimpleLeft",
                                    "ARKitMouthDimpleRight",
                                    "ARKitMouthFrownLeft",
                                    "ARKitMouthFrownRight",
                                    "ARKitMouthFunnel",
                                    "ARKitMouthLeft",
                                    "ARKitMouthLowerDownLeft",
                                    "ARKitMouthLowerDownRight",
                                    "ARKitMouthPressLeft",
                                    "ARKitMouthPressRight",
                                    "ARKitMouthPucker",
                                    "ARKitMouthRight",
                                    "ARKitMouthRollLower",
                                    "ARKitMouthRollUpper",
                                    "ARKitMouthShrugLower",
                                    "ARKitMouthShrugUpper",
                                    "ARKitMouthSmileLeft",
                                    "ARKitMouthSmileRight",
                                    "ARKitMouthStretchLeft",
                                    "ARKitMouthStretchRight",
                                    "ARKitMouthUpperUpLeft",
                                    "ARKitMouthUpperUpRight",
                                    "ARKitNoseSneerLeft",
                                    "ARKitNoseSneerRight",
                                    "ARKitTongueOut",
                                    "ControllerStickPressLeft",
                                    "ControllerStickPressRight",
                                    "ControllerCross",
                                    "ControllerCircle",
                                    "ControllerSquare",
                                    "ControllerTriangle",
                                    "ControllerShoulderLeft",
                                    "ControllerShoulderRight",
                                    "ControllerTriggerLeft",
                                    "ControllerTriggerRight",
                                    "ControllerOptionLeft",
                                    "ControllerOptionRight",
                                    "ControllerHome"
                                  ]
                                },
                                {
                                  "type": "string",
                                  "pattern": "^Controller(?:[2-9]|[1-9][0-9]+)(?:StickPressLeft|StickPressRight|Cross|Circle|Square|Triangle|ShoulderLeft|ShoulderRight|TriggerLeft|TriggerRight|OptionLeft|OptionRight|Home)$"
                                }
                              ],
                              "description": "Named tracking input, including a saved controller profile. This observes input values, not final model outputs."
                            },
                            "direction": {
                              "type": "string",
                              "enum": [
                                "above",
                                "below"
                              ],
                              "description": "The strict crossing direction that starts the hold timer."
                            },
                            "threshold": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 1,
                              "description": "Crossing level in the input's natural range (0 to 1)."
                            },
                            "hysteresis": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 1,
                              "description": "How far the value must return past the threshold before another crossing can fire."
                            },
                            "holdMs": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 60000,
                              "description": "Whole milliseconds the crossing must remain active before firing."
                            }
                          },
                          "required": [
                            "id",
                            "instanceId",
                            "modelId",
                            "kind",
                            "input",
                            "direction",
                            "threshold",
                            "hysteresis",
                            "holdMs"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S",
                              "description": "Stable row identity. IDs must be unique within this action or trigger list."
                            },
                            "instanceId": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S",
                              "description": "Avatar layer ID in the scene prepared by setup actions."
                            },
                            "modelId": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S",
                              "description": "Expected registered model ID. A replacement model cannot inherit this action or trigger."
                            },
                            "kind": {
                              "type": "string",
                              "const": "parameter"
                            },
                            "input": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "enum": [
                                    "EyeLeftX",
                                    "EyeLeftY",
                                    "EyeRightX",
                                    "EyeRightY",
                                    "Brows",
                                    "BrowLeftY",
                                    "BrowRightY",
                                    "MouthX",
                                    "VoiceMouthSpread",
                                    "MousePositionX",
                                    "MousePositionY",
                                    "ControllerStickLeftX",
                                    "ControllerStickLeftY",
                                    "ControllerStickRightX",
                                    "ControllerStickRightY",
                                    "ControllerDPadX",
                                    "ControllerDPadY"
                                  ]
                                },
                                {
                                  "type": "string",
                                  "pattern": "^Controller(?:[2-9]|[1-9][0-9]+)(?:StickLeftX|StickLeftY|StickRightX|StickRightY|DPadX|DPadY)$"
                                }
                              ],
                              "description": "Named tracking input, including a saved controller profile. This observes input values, not final model outputs."
                            },
                            "direction": {
                              "type": "string",
                              "enum": [
                                "above",
                                "below"
                              ],
                              "description": "The strict crossing direction that starts the hold timer."
                            },
                            "threshold": {
                              "type": "number",
                              "minimum": -1,
                              "maximum": 1,
                              "description": "Crossing level in the input's natural range (-1 to 1)."
                            },
                            "hysteresis": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 2,
                              "description": "How far the value must return past the threshold before another crossing can fire."
                            },
                            "holdMs": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 60000,
                              "description": "Whole milliseconds the crossing must remain active before firing."
                            }
                          },
                          "required": [
                            "id",
                            "instanceId",
                            "modelId",
                            "kind",
                            "input",
                            "direction",
                            "threshold",
                            "hysteresis",
                            "holdMs"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S",
                              "description": "Stable row identity. IDs must be unique within this action or trigger list."
                            },
                            "instanceId": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S",
                              "description": "Avatar layer ID in the scene prepared by setup actions."
                            },
                            "modelId": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S",
                              "description": "Expected registered model ID. A replacement model cannot inherit this action or trigger."
                            },
                            "kind": {
                              "type": "string",
                              "const": "parameter"
                            },
                            "input": {
                              "type": "string",
                              "enum": [
                                "VoiceVolumePlusMouthOpen"
                              ],
                              "description": "Named tracking input, including a saved controller profile. This observes input values, not final model outputs."
                            },
                            "direction": {
                              "type": "string",
                              "enum": [
                                "above",
                                "below"
                              ],
                              "description": "The strict crossing direction that starts the hold timer."
                            },
                            "threshold": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 2,
                              "description": "Crossing level in the input's natural range (0 to 2)."
                            },
                            "hysteresis": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 2,
                              "description": "How far the value must return past the threshold before another crossing can fire."
                            },
                            "holdMs": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 60000,
                              "description": "Whole milliseconds the crossing must remain active before firing."
                            }
                          },
                          "required": [
                            "id",
                            "instanceId",
                            "modelId",
                            "kind",
                            "input",
                            "direction",
                            "threshold",
                            "hysteresis",
                            "holdMs"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S",
                              "description": "Stable row identity. IDs must be unique within this action or trigger list."
                            },
                            "instanceId": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S",
                              "description": "Avatar layer ID in the scene prepared by setup actions."
                            },
                            "modelId": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S",
                              "description": "Expected registered model ID. A replacement model cannot inherit this action or trigger."
                            },
                            "kind": {
                              "type": "string",
                              "const": "parameter"
                            },
                            "input": {
                              "type": "string",
                              "enum": [
                                "HandLeftAngleX",
                                "HandLeftAngleZ",
                                "HandRightAngleX",
                                "HandRightAngleZ"
                              ],
                              "description": "Named tracking input, including a saved controller profile. This observes input values, not final model outputs."
                            },
                            "direction": {
                              "type": "string",
                              "enum": [
                                "above",
                                "below"
                              ],
                              "description": "The strict crossing direction that starts the hold timer."
                            },
                            "threshold": {
                              "type": "number",
                              "minimum": -180,
                              "maximum": 180,
                              "description": "Crossing level in the input's natural range (-180 to 180)."
                            },
                            "hysteresis": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 360,
                              "description": "How far the value must return past the threshold before another crossing can fire."
                            },
                            "holdMs": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 60000,
                              "description": "Whole milliseconds the crossing must remain active before firing."
                            }
                          },
                          "required": [
                            "id",
                            "instanceId",
                            "modelId",
                            "kind",
                            "input",
                            "direction",
                            "threshold",
                            "hysteresis",
                            "holdMs"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S",
                              "description": "Stable row identity. IDs must be unique within this action or trigger list."
                            },
                            "instanceId": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S",
                              "description": "Avatar layer ID in the scene prepared by setup actions."
                            },
                            "modelId": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S",
                              "description": "Expected registered model ID. A replacement model cannot inherit this action or trigger."
                            },
                            "kind": {
                              "type": "string",
                              "const": "parameter"
                            },
                            "input": {
                              "type": "string",
                              "enum": [
                                "HandDistance"
                              ],
                              "description": "Named tracking input, including a saved controller profile. This observes input values, not final model outputs."
                            },
                            "direction": {
                              "type": "string",
                              "enum": [
                                "above",
                                "below"
                              ],
                              "description": "The strict crossing direction that starts the hold timer."
                            },
                            "threshold": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10,
                              "description": "Crossing level in the input's natural range (0 to 10)."
                            },
                            "hysteresis": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10,
                              "description": "How far the value must return past the threshold before another crossing can fire."
                            },
                            "holdMs": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 60000,
                              "description": "Whole milliseconds the crossing must remain active before firing."
                            }
                          },
                          "required": [
                            "id",
                            "instanceId",
                            "modelId",
                            "kind",
                            "input",
                            "direction",
                            "threshold",
                            "hysteresis",
                            "holdMs"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "minLength": 1,
                          "pattern": "\\S",
                          "description": "Stable row identity. IDs must be unique within this action or trigger list."
                        },
                        "instanceId": {
                          "type": "string",
                          "minLength": 1,
                          "pattern": "\\S",
                          "description": "Avatar layer ID in the scene prepared by setup actions."
                        },
                        "modelId": {
                          "type": "string",
                          "minLength": 1,
                          "pattern": "\\S",
                          "description": "Expected registered model ID. A replacement model cannot inherit this action or trigger."
                        },
                        "kind": {
                          "type": "string",
                          "const": "motion"
                        },
                        "event": {
                          "type": "string",
                          "enum": [
                            "started",
                            "ended",
                            "both"
                          ],
                          "description": "Match motion playback starting, ending, or either event."
                        }
                      },
                      "required": [
                        "id",
                        "instanceId",
                        "modelId",
                        "kind",
                        "event"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "minLength": 1,
                          "pattern": "\\S",
                          "description": "Stable row identity. IDs must be unique within this action or trigger list."
                        },
                        "kind": {
                          "type": "string",
                          "const": "model-loaded"
                        },
                        "modelId": {
                          "anyOf": [
                            {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "Registered model ID to observe; null matches any model load."
                        }
                      },
                      "required": [
                        "id",
                        "kind",
                        "modelId"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "minLength": 1,
                          "pattern": "\\S",
                          "description": "Stable row identity. IDs must be unique within this action or trigger list."
                        },
                        "kind": {
                          "type": "string",
                          "const": "scene"
                        },
                        "sceneId": {
                          "anyOf": [
                            {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "Saved scene ID to observe; null matches any scene."
                        },
                        "event": {
                          "type": "string",
                          "enum": [
                            "entered",
                            "exited",
                            "both"
                          ],
                          "description": "Match entering, exiting, or either event. Actions affect the incoming scene."
                        }
                      },
                      "required": [
                        "id",
                        "kind",
                        "sceneId",
                        "event"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "minLength": 1,
                          "pattern": "\\S",
                          "description": "Stable row identity. IDs must be unique within this action or trigger list."
                        },
                        "kind": {
                          "type": "string",
                          "const": "face-tracking"
                        },
                        "sourceId": {
                          "type": "string",
                          "minLength": 1,
                          "pattern": "\\S",
                          "description": "Tracking source ID whose face channel is observed independently of hands and body."
                        },
                        "event": {
                          "type": "string",
                          "enum": [
                            "found",
                            "lost",
                            "both"
                          ],
                          "description": "Match face tracking becoming available, unavailable, or either event."
                        }
                      },
                      "required": [
                        "id",
                        "kind",
                        "sourceId",
                        "event"
                      ],
                      "additionalProperties": false
                    }
                  ]
                }
              },
              "cooldownMs": {
                "description": "Minimum whole milliseconds between run starts. Absent means no cooldown.",
                "type": "integer",
                "minimum": 0,
                "maximum": 3600000
              },
              "actions": {
                "minItems": 1,
                "type": "array",
                "items": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "minLength": 1,
                          "pattern": "\\S"
                        },
                        "startMs": {
                          "type": "number",
                          "minimum": 0,
                          "maximum": 3600000,
                          "description": "Start time on the sequence clock, in milliseconds."
                        },
                        "durationMs": {
                          "anyOf": [
                            {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "Clip length; null uses natural media length, zero is an instant command."
                        },
                        "sourceInMs": {
                          "type": "number",
                          "minimum": 0,
                          "description": "Source playback offset, in milliseconds; zero for commands and effects."
                        },
                        "kind": {
                          "type": "string",
                          "const": "play-audio"
                        },
                        "assetId": {
                          "type": "string",
                          "minLength": 1,
                          "pattern": "\\S",
                          "description": "Registered audio inventory asset ID."
                        },
                        "volume": {
                          "type": "number",
                          "minimum": 0,
                          "maximum": 1
                        },
                        "repeatCount": {
                          "anyOf": [
                            {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 999
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "Total plays; null loops until stopped."
                        },
                        "fadeInMs": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 60000
                        },
                        "fadeOutMs": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 60000
                        },
                        "retrigger": {
                          "type": "string",
                          "enum": [
                            "restart",
                            "overlap",
                            "ignore"
                          ]
                        },
                        "lipSync": {
                          "anyOf": [
                            {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "instanceId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "pattern": "\\S",
                                      "description": "Avatar layer ID in the scene prepared by setup actions."
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "pattern": "\\S",
                                      "description": "Expected registered model ID. A replacement model cannot inherit this action or trigger."
                                    }
                                  },
                                  "required": [
                                    "instanceId",
                                    "modelId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "target": {
                                      "type": "string",
                                      "const": "primary",
                                      "description": "Resolve the active scene primary avatar when this action starts."
                                    }
                                  },
                                  "required": [
                                    "target"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "Avatar driven by this audio, independently of microphone capture."
                        }
                      },
                      "required": [
                        "id",
                        "startMs",
                        "durationMs",
                        "sourceInMs",
                        "kind",
                        "assetId",
                        "volume",
                        "repeatCount",
                        "fadeInMs",
                        "fadeOutMs",
                        "retrigger",
                        "lipSync"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "minLength": 1,
                          "pattern": "\\S"
                        },
                        "startMs": {
                          "type": "number",
                          "minimum": 0,
                          "maximum": 3600000,
                          "description": "Start time on the sequence clock, in milliseconds."
                        },
                        "durationMs": {
                          "anyOf": [
                            {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "Clip length; null uses natural media length, zero is an instant command."
                        },
                        "sourceInMs": {
                          "type": "number",
                          "minimum": 0,
                          "description": "Source playback offset, in milliseconds; zero for commands and effects."
                        },
                        "kind": {
                          "type": "string",
                          "const": "audio-control"
                        },
                        "assetId": {
                          "type": "string",
                          "minLength": 1,
                          "pattern": "\\S"
                        },
                        "command": {
                          "type": "string",
                          "enum": [
                            "pause",
                            "resume",
                            "stop"
                          ]
                        }
                      },
                      "required": [
                        "id",
                        "startMs",
                        "durationMs",
                        "sourceInMs",
                        "kind",
                        "assetId",
                        "command"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "toggle-expression"
                            },
                            "expression": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S",
                              "description": "Declared expression filename or expression key in the target model."
                            },
                            "instanceId": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S",
                              "description": "Avatar layer ID in the scene prepared by setup actions."
                            },
                            "modelId": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S",
                              "description": "Expected registered model ID. A replacement model cannot inherit this action or trigger."
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "expression",
                            "instanceId",
                            "modelId"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "toggle-expression"
                            },
                            "expression": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S",
                              "description": "Declared expression filename or expression key in the target model."
                            },
                            "target": {
                              "type": "string",
                              "const": "primary",
                              "description": "Resolve the active scene primary avatar when this action starts."
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "expression",
                            "target"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    },
                    {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "play-motion"
                            },
                            "group": {
                              "type": "string",
                              "description": "Declared motion group; an empty group is valid."
                            },
                            "index": {
                              "type": "number",
                              "minimum": 0,
                              "multipleOf": 1,
                              "description": "Zero-based index within the declared motion group."
                            },
                            "instanceId": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S",
                              "description": "Avatar layer ID in the scene prepared by setup actions."
                            },
                            "modelId": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S",
                              "description": "Expected registered model ID. A replacement model cannot inherit this action or trigger."
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "group",
                            "index",
                            "instanceId",
                            "modelId"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "play-motion"
                            },
                            "group": {
                              "type": "string",
                              "description": "Declared motion group; an empty group is valid."
                            },
                            "index": {
                              "type": "number",
                              "minimum": 0,
                              "multipleOf": 1,
                              "description": "Zero-based index within the declared motion group."
                            },
                            "target": {
                              "type": "string",
                              "const": "primary",
                              "description": "Resolve the active scene primary avatar when this action starts."
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "group",
                            "index",
                            "target"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    },
                    {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "remove-all-expressions"
                            },
                            "instanceId": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S",
                              "description": "Avatar layer ID in the scene prepared by setup actions."
                            },
                            "modelId": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S",
                              "description": "Expected registered model ID. A replacement model cannot inherit this action or trigger."
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "instanceId",
                            "modelId"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "remove-all-expressions"
                            },
                            "target": {
                              "type": "string",
                              "const": "primary",
                              "description": "Resolve the active scene primary avatar when this action starts."
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "target"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    },
                    {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string",
                                  "minLength": 1,
                                  "pattern": "\\S"
                                },
                                "startMs": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000,
                                  "description": "Start time on the sequence clock, in milliseconds."
                                },
                                "durationMs": {
                                  "anyOf": [
                                    {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 3600000
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ],
                                  "description": "Clip length; null uses natural media length, zero is an instant command."
                                },
                                "sourceInMs": {
                                  "type": "number",
                                  "minimum": 0,
                                  "description": "Source playback offset, in milliseconds; zero for commands and effects."
                                },
                                "kind": {
                                  "type": "string",
                                  "const": "model-position"
                                },
                                "format": {
                                  "type": "string",
                                  "const": "live2d"
                                },
                                "placement": {
                                  "type": "object",
                                  "properties": {
                                    "x": {
                                      "type": "number",
                                      "description": "Horizontal offset from the stage center, in pixels."
                                    },
                                    "y": {
                                      "type": "number",
                                      "description": "Vertical offset from the stage center, in pixels."
                                    },
                                    "scale": {
                                      "type": "number",
                                      "minimum": 0.1,
                                      "maximum": 24,
                                      "description": "Scale relative to the fitted model size."
                                    },
                                    "rotation": {
                                      "type": "number",
                                      "description": "Rotation in radians; angles may wrap beyond one turn."
                                    }
                                  },
                                  "required": [
                                    "x",
                                    "y",
                                    "scale",
                                    "rotation"
                                  ],
                                  "additionalProperties": false
                                },
                                "instanceId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "pattern": "\\S",
                                  "description": "Avatar layer ID in the scene prepared by setup actions."
                                },
                                "modelId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "pattern": "\\S",
                                  "description": "Expected registered model ID. A replacement model cannot inherit this action or trigger."
                                }
                              },
                              "required": [
                                "id",
                                "startMs",
                                "durationMs",
                                "sourceInMs",
                                "kind",
                                "format",
                                "placement",
                                "instanceId",
                                "modelId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string",
                                  "minLength": 1,
                                  "pattern": "\\S"
                                },
                                "startMs": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000,
                                  "description": "Start time on the sequence clock, in milliseconds."
                                },
                                "durationMs": {
                                  "anyOf": [
                                    {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 3600000
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ],
                                  "description": "Clip length; null uses natural media length, zero is an instant command."
                                },
                                "sourceInMs": {
                                  "type": "number",
                                  "minimum": 0,
                                  "description": "Source playback offset, in milliseconds; zero for commands and effects."
                                },
                                "kind": {
                                  "type": "string",
                                  "const": "model-position"
                                },
                                "format": {
                                  "type": "string",
                                  "const": "live2d"
                                },
                                "placement": {
                                  "type": "object",
                                  "properties": {
                                    "x": {
                                      "type": "number",
                                      "description": "Horizontal offset from the stage center, in pixels."
                                    },
                                    "y": {
                                      "type": "number",
                                      "description": "Vertical offset from the stage center, in pixels."
                                    },
                                    "scale": {
                                      "type": "number",
                                      "minimum": 0.1,
                                      "maximum": 24,
                                      "description": "Scale relative to the fitted model size."
                                    },
                                    "rotation": {
                                      "type": "number",
                                      "description": "Rotation in radians; angles may wrap beyond one turn."
                                    }
                                  },
                                  "required": [
                                    "x",
                                    "y",
                                    "scale",
                                    "rotation"
                                  ],
                                  "additionalProperties": false
                                },
                                "target": {
                                  "type": "string",
                                  "const": "primary",
                                  "description": "Resolve the active scene primary avatar when this action starts."
                                }
                              },
                              "required": [
                                "id",
                                "startMs",
                                "durationMs",
                                "sourceInMs",
                                "kind",
                                "format",
                                "placement",
                                "target"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string",
                                  "minLength": 1,
                                  "pattern": "\\S"
                                },
                                "startMs": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000,
                                  "description": "Start time on the sequence clock, in milliseconds."
                                },
                                "durationMs": {
                                  "anyOf": [
                                    {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 3600000
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ],
                                  "description": "Clip length; null uses natural media length, zero is an instant command."
                                },
                                "sourceInMs": {
                                  "type": "number",
                                  "minimum": 0,
                                  "description": "Source playback offset, in milliseconds; zero for commands and effects."
                                },
                                "kind": {
                                  "type": "string",
                                  "const": "model-position"
                                },
                                "format": {
                                  "type": "string",
                                  "const": "vrm"
                                },
                                "placement": {
                                  "type": "object",
                                  "properties": {
                                    "x": {
                                      "type": "number",
                                      "description": "Horizontal position in world units."
                                    },
                                    "y": {
                                      "type": "number",
                                      "description": "Vertical position in world units."
                                    },
                                    "z": {
                                      "type": "number",
                                      "description": "Depth in world units; positive points toward the viewer."
                                    },
                                    "rotX": {
                                      "type": "number",
                                      "description": "Pitch in radians; angles may wrap beyond one turn."
                                    },
                                    "rotY": {
                                      "type": "number",
                                      "description": "Yaw in radians, composed with the model base yaw."
                                    },
                                    "rotZ": {
                                      "type": "number",
                                      "description": "Roll in radians; angles may wrap beyond one turn."
                                    },
                                    "scale": {
                                      "type": "number",
                                      "minimum": 0.05,
                                      "maximum": 10,
                                      "description": "Uniform model scale."
                                    }
                                  },
                                  "required": [
                                    "x",
                                    "y",
                                    "z",
                                    "rotX",
                                    "rotY",
                                    "rotZ",
                                    "scale"
                                  ],
                                  "additionalProperties": false
                                },
                                "instanceId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "pattern": "\\S",
                                  "description": "Avatar layer ID in the scene prepared by setup actions."
                                },
                                "modelId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "pattern": "\\S",
                                  "description": "Expected registered model ID. A replacement model cannot inherit this action or trigger."
                                }
                              },
                              "required": [
                                "id",
                                "startMs",
                                "durationMs",
                                "sourceInMs",
                                "kind",
                                "format",
                                "placement",
                                "instanceId",
                                "modelId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string",
                                  "minLength": 1,
                                  "pattern": "\\S"
                                },
                                "startMs": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000,
                                  "description": "Start time on the sequence clock, in milliseconds."
                                },
                                "durationMs": {
                                  "anyOf": [
                                    {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 3600000
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ],
                                  "description": "Clip length; null uses natural media length, zero is an instant command."
                                },
                                "sourceInMs": {
                                  "type": "number",
                                  "minimum": 0,
                                  "description": "Source playback offset, in milliseconds; zero for commands and effects."
                                },
                                "kind": {
                                  "type": "string",
                                  "const": "model-position"
                                },
                                "format": {
                                  "type": "string",
                                  "const": "vrm"
                                },
                                "placement": {
                                  "type": "object",
                                  "properties": {
                                    "x": {
                                      "type": "number",
                                      "description": "Horizontal position in world units."
                                    },
                                    "y": {
                                      "type": "number",
                                      "description": "Vertical position in world units."
                                    },
                                    "z": {
                                      "type": "number",
                                      "description": "Depth in world units; positive points toward the viewer."
                                    },
                                    "rotX": {
                                      "type": "number",
                                      "description": "Pitch in radians; angles may wrap beyond one turn."
                                    },
                                    "rotY": {
                                      "type": "number",
                                      "description": "Yaw in radians, composed with the model base yaw."
                                    },
                                    "rotZ": {
                                      "type": "number",
                                      "description": "Roll in radians; angles may wrap beyond one turn."
                                    },
                                    "scale": {
                                      "type": "number",
                                      "minimum": 0.05,
                                      "maximum": 10,
                                      "description": "Uniform model scale."
                                    }
                                  },
                                  "required": [
                                    "x",
                                    "y",
                                    "z",
                                    "rotX",
                                    "rotY",
                                    "rotZ",
                                    "scale"
                                  ],
                                  "additionalProperties": false
                                },
                                "target": {
                                  "type": "string",
                                  "const": "primary",
                                  "description": "Resolve the active scene primary avatar when this action starts."
                                }
                              },
                              "required": [
                                "id",
                                "startMs",
                                "durationMs",
                                "sourceInMs",
                                "kind",
                                "format",
                                "placement",
                                "target"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "load-model"
                            },
                            "modelId": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S",
                              "description": "Registered replacement model ID."
                            },
                            "instanceId": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S",
                              "description": "Avatar layer ID in the scene prepared by setup actions."
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "modelId",
                            "instanceId"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "load-model"
                            },
                            "modelId": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S",
                              "description": "Registered replacement model ID."
                            },
                            "target": {
                              "type": "string",
                              "const": "primary",
                              "description": "Resolve the active scene primary avatar when this action starts."
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "modelId",
                            "target"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "minLength": 1,
                          "pattern": "\\S"
                        },
                        "startMs": {
                          "type": "number",
                          "minimum": 0,
                          "maximum": 3600000,
                          "description": "Start time on the sequence clock, in milliseconds."
                        },
                        "durationMs": {
                          "anyOf": [
                            {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "Clip length; null uses natural media length, zero is an instant command."
                        },
                        "sourceInMs": {
                          "type": "number",
                          "minimum": 0,
                          "description": "Source playback offset, in milliseconds; zero for commands and effects."
                        },
                        "kind": {
                          "type": "string",
                          "const": "effect-toggle"
                        },
                        "effect": {
                          "type": "string",
                          "enum": [
                            "color",
                            "levels",
                            "colorWheels",
                            "colorShift",
                            "selectColors",
                            "gradient",
                            "flare",
                            "blur",
                            "bloom",
                            "diffusion",
                            "dof",
                            "chromaticAberration",
                            "grain",
                            "vignette",
                            "rim",
                            "outline",
                            "dropShadow",
                            "pixelate",
                            "glitch",
                            "droplets",
                            "rain",
                            "snow"
                          ]
                        }
                      },
                      "required": [
                        "id",
                        "startMs",
                        "durationMs",
                        "sourceInMs",
                        "kind",
                        "effect"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "effect-params"
                            },
                            "effect": {
                              "type": "string",
                              "const": "color"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether this captured effect state enables the effect."
                            },
                            "params": {
                              "type": "object",
                              "properties": {
                                "hue": {
                                  "type": "number",
                                  "minimum": -180,
                                  "maximum": 180,
                                  "default": 0
                                },
                                "saturation": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "brightness": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "contrast": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "temperature": {
                                  "type": "number",
                                  "minimum": -100,
                                  "maximum": 100,
                                  "default": 0
                                },
                                "tint": {
                                  "type": "number",
                                  "minimum": -100,
                                  "maximum": 100,
                                  "default": 0
                                }
                              },
                              "required": [
                                "hue",
                                "saturation",
                                "brightness",
                                "contrast",
                                "temperature",
                                "tint"
                              ],
                              "additionalProperties": false,
                              "description": "Complete effect snapshot. Numbers and colors ease to these values; modes and switches change once."
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "effect",
                            "enabled",
                            "params"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "effect-params"
                            },
                            "effect": {
                              "type": "string",
                              "const": "levels"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether this captured effect state enables the effect."
                            },
                            "params": {
                              "type": "object",
                              "properties": {
                                "inputBlack": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "inputWhite": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 1
                                },
                                "inputGamma": {
                                  "type": "number",
                                  "minimum": 0.1,
                                  "maximum": 4,
                                  "default": 1
                                },
                                "outputBlack": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "outputWhite": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 1
                                },
                                "inputBlackR": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "inputWhiteR": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 1
                                },
                                "inputGammaR": {
                                  "type": "number",
                                  "minimum": 0.1,
                                  "maximum": 4,
                                  "default": 1
                                },
                                "outputBlackR": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "outputWhiteR": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 1
                                },
                                "inputBlackG": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "inputWhiteG": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 1
                                },
                                "inputGammaG": {
                                  "type": "number",
                                  "minimum": 0.1,
                                  "maximum": 4,
                                  "default": 1
                                },
                                "outputBlackG": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "outputWhiteG": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 1
                                },
                                "inputBlackB": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "inputWhiteB": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 1
                                },
                                "inputGammaB": {
                                  "type": "number",
                                  "minimum": 0.1,
                                  "maximum": 4,
                                  "default": 1
                                },
                                "outputBlackB": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "outputWhiteB": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 1
                                }
                              },
                              "required": [
                                "inputBlack",
                                "inputWhite",
                                "inputGamma",
                                "outputBlack",
                                "outputWhite",
                                "inputBlackR",
                                "inputWhiteR",
                                "inputGammaR",
                                "outputBlackR",
                                "outputWhiteR",
                                "inputBlackG",
                                "inputWhiteG",
                                "inputGammaG",
                                "outputBlackG",
                                "outputWhiteG",
                                "inputBlackB",
                                "inputWhiteB",
                                "inputGammaB",
                                "outputBlackB",
                                "outputWhiteB"
                              ],
                              "additionalProperties": false,
                              "description": "Complete effect snapshot. Numbers and colors ease to these values; modes and switches change once."
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "effect",
                            "enabled",
                            "params"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "effect-params"
                            },
                            "effect": {
                              "type": "string",
                              "const": "colorWheels"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether this captured effect state enables the effect."
                            },
                            "params": {
                              "type": "object",
                              "properties": {
                                "lift": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "gamma": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "gain": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "shadows": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "midtones": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "highlights": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "shadowLimit": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0.3
                                },
                                "highlightLimit": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0.7
                                },
                                "liftColor": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#ffffff",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "gammaColor": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#ffffff",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "gainColor": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#ffffff",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "shadowsColor": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#ffffff",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "midtonesColor": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#ffffff",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "highlightsColor": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#ffffff",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "mode": {
                                  "type": "string",
                                  "enum": [
                                    "liftGammaGain",
                                    "shadowsMidtonesHighlights"
                                  ],
                                  "default": "liftGammaGain"
                                }
                              },
                              "required": [
                                "lift",
                                "gamma",
                                "gain",
                                "shadows",
                                "midtones",
                                "highlights",
                                "shadowLimit",
                                "highlightLimit",
                                "liftColor",
                                "gammaColor",
                                "gainColor",
                                "shadowsColor",
                                "midtonesColor",
                                "highlightsColor",
                                "mode"
                              ],
                              "additionalProperties": false,
                              "description": "Complete effect snapshot. Numbers and colors ease to these values; modes and switches change once."
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "effect",
                            "enabled",
                            "params"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "effect-params"
                            },
                            "effect": {
                              "type": "string",
                              "const": "colorShift"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether this captured effect state enables the effect."
                            },
                            "params": {
                              "type": "object",
                              "properties": {
                                "hueRed": {
                                  "type": "number",
                                  "minimum": -180,
                                  "maximum": 180,
                                  "default": 0,
                                  "description": "Measured in °."
                                },
                                "saturationRed": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "luminanceRed": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "luminanceSaturationRed": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "hueYellow": {
                                  "type": "number",
                                  "minimum": -180,
                                  "maximum": 180,
                                  "default": 0,
                                  "description": "Measured in °."
                                },
                                "saturationYellow": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "luminanceYellow": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "luminanceSaturationYellow": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "hueGreen": {
                                  "type": "number",
                                  "minimum": -180,
                                  "maximum": 180,
                                  "default": 0,
                                  "description": "Measured in °."
                                },
                                "saturationGreen": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "luminanceGreen": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "luminanceSaturationGreen": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "hueCyan": {
                                  "type": "number",
                                  "minimum": -180,
                                  "maximum": 180,
                                  "default": 0,
                                  "description": "Measured in °."
                                },
                                "saturationCyan": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "luminanceCyan": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "luminanceSaturationCyan": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "hueBlue": {
                                  "type": "number",
                                  "minimum": -180,
                                  "maximum": 180,
                                  "default": 0,
                                  "description": "Measured in °."
                                },
                                "saturationBlue": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "luminanceBlue": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "luminanceSaturationBlue": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "hueMagenta": {
                                  "type": "number",
                                  "minimum": -180,
                                  "maximum": 180,
                                  "default": 0,
                                  "description": "Measured in °."
                                },
                                "saturationMagenta": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "luminanceMagenta": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "luminanceSaturationMagenta": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                }
                              },
                              "required": [
                                "hueRed",
                                "saturationRed",
                                "luminanceRed",
                                "luminanceSaturationRed",
                                "hueYellow",
                                "saturationYellow",
                                "luminanceYellow",
                                "luminanceSaturationYellow",
                                "hueGreen",
                                "saturationGreen",
                                "luminanceGreen",
                                "luminanceSaturationGreen",
                                "hueCyan",
                                "saturationCyan",
                                "luminanceCyan",
                                "luminanceSaturationCyan",
                                "hueBlue",
                                "saturationBlue",
                                "luminanceBlue",
                                "luminanceSaturationBlue",
                                "hueMagenta",
                                "saturationMagenta",
                                "luminanceMagenta",
                                "luminanceSaturationMagenta"
                              ],
                              "additionalProperties": false,
                              "description": "Complete effect snapshot. Numbers and colors ease to these values; modes and switches change once."
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "effect",
                            "enabled",
                            "params"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "effect-params"
                            },
                            "effect": {
                              "type": "string",
                              "const": "selectColors"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether this captured effect state enables the effect."
                            },
                            "params": {
                              "type": "object",
                              "properties": {
                                "hueRange": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 0.5,
                                  "default": 0.08
                                },
                                "saturationRange": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 1
                                },
                                "brightnessRange": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 1
                                },
                                "saturation": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": -1
                                },
                                "blend": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 1
                                },
                                "color1": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#ff0000",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "color2": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#ffff00",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "color3": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#00ff00",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "color4": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#00ffff",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "color5": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#0000ff",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "color6": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#ff00ff",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "color7": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#ffffff",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "color8": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#808080",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "color9": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#000000",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "color10": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#ff8800",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "invert": {
                                  "type": "boolean",
                                  "default": false
                                },
                                "color1Enabled": {
                                  "type": "boolean",
                                  "default": true
                                },
                                "color2Enabled": {
                                  "type": "boolean",
                                  "default": false
                                },
                                "color3Enabled": {
                                  "type": "boolean",
                                  "default": false
                                },
                                "color4Enabled": {
                                  "type": "boolean",
                                  "default": false
                                },
                                "color5Enabled": {
                                  "type": "boolean",
                                  "default": false
                                },
                                "color6Enabled": {
                                  "type": "boolean",
                                  "default": false
                                },
                                "color7Enabled": {
                                  "type": "boolean",
                                  "default": false
                                },
                                "color8Enabled": {
                                  "type": "boolean",
                                  "default": false
                                },
                                "color9Enabled": {
                                  "type": "boolean",
                                  "default": false
                                },
                                "color10Enabled": {
                                  "type": "boolean",
                                  "default": false
                                }
                              },
                              "required": [
                                "hueRange",
                                "saturationRange",
                                "brightnessRange",
                                "saturation",
                                "blend",
                                "color1",
                                "color2",
                                "color3",
                                "color4",
                                "color5",
                                "color6",
                                "color7",
                                "color8",
                                "color9",
                                "color10",
                                "invert",
                                "color1Enabled",
                                "color2Enabled",
                                "color3Enabled",
                                "color4Enabled",
                                "color5Enabled",
                                "color6Enabled",
                                "color7Enabled",
                                "color8Enabled",
                                "color9Enabled",
                                "color10Enabled"
                              ],
                              "additionalProperties": false,
                              "description": "Complete effect snapshot. Numbers and colors ease to these values; modes and switches change once."
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "effect",
                            "enabled",
                            "params"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "effect-params"
                            },
                            "effect": {
                              "type": "string",
                              "const": "gradient"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether this captured effect state enables the effect."
                            },
                            "params": {
                              "type": "object",
                              "properties": {
                                "radius": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3,
                                  "default": 1
                                },
                                "smoothness": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 5,
                                  "default": 1
                                },
                                "centerX": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "centerY": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "angle": {
                                  "type": "number",
                                  "minimum": -180,
                                  "maximum": 180,
                                  "default": 0,
                                  "description": "Measured in °."
                                },
                                "scaleX": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 2,
                                  "default": 1
                                },
                                "scaleY": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 2,
                                  "default": 0.5
                                },
                                "opacity": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 1
                                },
                                "color": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#ffffff",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "backgroundColor": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#000000",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "invert": {
                                  "type": "boolean",
                                  "default": false
                                },
                                "transparentBackground": {
                                  "type": "boolean",
                                  "default": false
                                },
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "solid",
                                    "linear",
                                    "circle",
                                    "ellipse"
                                  ],
                                  "default": "circle"
                                },
                                "blendMode": {
                                  "type": "string",
                                  "enum": [
                                    "normal",
                                    "darken",
                                    "multiply",
                                    "colorBurn",
                                    "linearBurn",
                                    "add",
                                    "lighten",
                                    "screen",
                                    "colorDodge",
                                    "overlay",
                                    "softLight",
                                    "hardLight",
                                    "vividLight",
                                    "linearLight",
                                    "pinLight",
                                    "hardMix",
                                    "difference",
                                    "exclusion",
                                    "subtract",
                                    "divide",
                                    "hue",
                                    "saturation",
                                    "color",
                                    "luminosity"
                                  ],
                                  "default": "normal"
                                }
                              },
                              "required": [
                                "radius",
                                "smoothness",
                                "centerX",
                                "centerY",
                                "angle",
                                "scaleX",
                                "scaleY",
                                "opacity",
                                "color",
                                "backgroundColor",
                                "invert",
                                "transparentBackground",
                                "type",
                                "blendMode"
                              ],
                              "additionalProperties": false,
                              "description": "Complete effect snapshot. Numbers and colors ease to these values; modes and switches change once."
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "effect",
                            "enabled",
                            "params"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "effect-params"
                            },
                            "effect": {
                              "type": "string",
                              "const": "flare"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether this captured effect state enables the effect."
                            },
                            "params": {
                              "type": "object",
                              "properties": {
                                "intensity": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "size": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 2,
                                  "default": 0
                                },
                                "angle": {
                                  "type": "number",
                                  "minimum": -180,
                                  "maximum": 180,
                                  "default": 0,
                                  "description": "Measured in °."
                                },
                                "glowOpacity": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 1
                                },
                                "raysScale": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "raysIntensity": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "raysOpacity": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 1
                                },
                                "color": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#ffffff",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "raysColor": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#ffffff",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "rays": {
                                  "type": "boolean",
                                  "default": false
                                },
                                "mode": {
                                  "type": "string",
                                  "enum": [
                                    "add",
                                    "screen",
                                    "colorDodge"
                                  ],
                                  "default": "add"
                                },
                                "raysMode": {
                                  "type": "string",
                                  "enum": [
                                    "sun",
                                    "shine",
                                    "god"
                                  ],
                                  "default": "sun"
                                }
                              },
                              "required": [
                                "intensity",
                                "size",
                                "angle",
                                "glowOpacity",
                                "raysScale",
                                "raysIntensity",
                                "raysOpacity",
                                "color",
                                "raysColor",
                                "rays",
                                "mode",
                                "raysMode"
                              ],
                              "additionalProperties": false,
                              "description": "Complete effect snapshot. Numbers and colors ease to these values; modes and switches change once."
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "effect",
                            "enabled",
                            "params"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "effect-params"
                            },
                            "effect": {
                              "type": "string",
                              "const": "blur"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether this captured effect state enables the effect."
                            },
                            "params": {
                              "type": "object",
                              "properties": {
                                "radius": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 64,
                                  "default": 8,
                                  "description": "Measured in px."
                                },
                                "highQuality": {
                                  "type": "boolean",
                                  "default": false
                                },
                                "mode": {
                                  "type": "string",
                                  "enum": [
                                    "gaussian",
                                    "bokeh"
                                  ],
                                  "default": "gaussian"
                                }
                              },
                              "required": [
                                "radius",
                                "highQuality",
                                "mode"
                              ],
                              "additionalProperties": false,
                              "description": "Complete effect snapshot. Numbers and colors ease to these values; modes and switches change once."
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "effect",
                            "enabled",
                            "params"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "effect-params"
                            },
                            "effect": {
                              "type": "string",
                              "const": "bloom"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether this captured effect state enables the effect."
                            },
                            "params": {
                              "type": "object",
                              "properties": {
                                "intensity": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 10,
                                  "default": 0
                                },
                                "threshold": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 2,
                                  "default": 0.5
                                },
                                "thresholdSmooth": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "radius": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 6,
                                  "default": 1
                                },
                                "saturation": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "opacity": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 1
                                },
                                "starRays": {
                                  "type": "number",
                                  "minimum": 1,
                                  "maximum": 6,
                                  "default": 3
                                },
                                "starAngle": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 360,
                                  "default": 0,
                                  "description": "Measured in °."
                                },
                                "colorTolerance": {
                                  "type": "number",
                                  "minimum": 0.01,
                                  "maximum": 1,
                                  "default": 0.5
                                },
                                "tint": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#ffffff",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "color1": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#ffffff",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "color2": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#ffffff",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "color3": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#ffffff",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "color4": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#ffffff",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "color5": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#ffffff",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "selectColors": {
                                  "type": "boolean",
                                  "default": false
                                },
                                "invertColors": {
                                  "type": "boolean",
                                  "default": false
                                },
                                "color1Enabled": {
                                  "type": "boolean",
                                  "default": true
                                },
                                "color2Enabled": {
                                  "type": "boolean",
                                  "default": false
                                },
                                "color3Enabled": {
                                  "type": "boolean",
                                  "default": false
                                },
                                "color4Enabled": {
                                  "type": "boolean",
                                  "default": false
                                },
                                "color5Enabled": {
                                  "type": "boolean",
                                  "default": false
                                },
                                "mode": {
                                  "type": "string",
                                  "enum": [
                                    "normal",
                                    "streak",
                                    "star"
                                  ],
                                  "default": "normal"
                                }
                              },
                              "required": [
                                "intensity",
                                "threshold",
                                "thresholdSmooth",
                                "radius",
                                "saturation",
                                "opacity",
                                "starRays",
                                "starAngle",
                                "colorTolerance",
                                "tint",
                                "color1",
                                "color2",
                                "color3",
                                "color4",
                                "color5",
                                "selectColors",
                                "invertColors",
                                "color1Enabled",
                                "color2Enabled",
                                "color3Enabled",
                                "color4Enabled",
                                "color5Enabled",
                                "mode"
                              ],
                              "additionalProperties": false,
                              "description": "Complete effect snapshot. Numbers and colors ease to these values; modes and switches change once."
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "effect",
                            "enabled",
                            "params"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "effect-params"
                            },
                            "effect": {
                              "type": "string",
                              "const": "diffusion"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether this captured effect state enables the effect."
                            },
                            "params": {
                              "type": "object",
                              "properties": {
                                "intensity": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 2,
                                  "default": 1
                                },
                                "radius": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0.85
                                },
                                "threshold": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0.35
                                }
                              },
                              "required": [
                                "intensity",
                                "radius",
                                "threshold"
                              ],
                              "additionalProperties": false,
                              "description": "Complete effect snapshot. Numbers and colors ease to these values; modes and switches change once."
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "effect",
                            "enabled",
                            "params"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "effect-params"
                            },
                            "effect": {
                              "type": "string",
                              "const": "dof"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether this captured effect state enables the effect."
                            },
                            "params": {
                              "type": "object",
                              "properties": {
                                "bokehScale": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 8,
                                  "default": 2
                                },
                                "focusRange": {
                                  "type": "number",
                                  "minimum": 0.1,
                                  "maximum": 10,
                                  "default": 2
                                }
                              },
                              "required": [
                                "bokehScale",
                                "focusRange"
                              ],
                              "additionalProperties": false,
                              "description": "Complete effect snapshot. Numbers and colors ease to these values; modes and switches change once."
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "effect",
                            "enabled",
                            "params"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "effect-params"
                            },
                            "effect": {
                              "type": "string",
                              "const": "chromaticAberration"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether this captured effect state enables the effect."
                            },
                            "params": {
                              "type": "object",
                              "properties": {
                                "strength": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0.2
                                },
                                "blurEdges": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 1
                                }
                              },
                              "required": [
                                "strength",
                                "blurEdges"
                              ],
                              "additionalProperties": false,
                              "description": "Complete effect snapshot. Numbers and colors ease to these values; modes and switches change once."
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "effect",
                            "enabled",
                            "params"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "effect-params"
                            },
                            "effect": {
                              "type": "string",
                              "const": "grain"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether this captured effect state enables the effect."
                            },
                            "params": {
                              "type": "object",
                              "properties": {
                                "strength": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0.3
                                }
                              },
                              "required": [
                                "strength"
                              ],
                              "additionalProperties": false,
                              "description": "Complete effect snapshot. Numbers and colors ease to these values; modes and switches change once."
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "effect",
                            "enabled",
                            "params"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "effect-params"
                            },
                            "effect": {
                              "type": "string",
                              "const": "vignette"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether this captured effect state enables the effect."
                            },
                            "params": {
                              "type": "object",
                              "properties": {
                                "darkness": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0.5
                                },
                                "offset": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0.5
                                }
                              },
                              "required": [
                                "darkness",
                                "offset"
                              ],
                              "additionalProperties": false,
                              "description": "Complete effect snapshot. Numbers and colors ease to these values; modes and switches change once."
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "effect",
                            "enabled",
                            "params"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "effect-params"
                            },
                            "effect": {
                              "type": "string",
                              "const": "rim"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether this captured effect state enables the effect."
                            },
                            "params": {
                              "type": "object",
                              "properties": {
                                "size": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0.5
                                },
                                "brightness": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 5,
                                  "default": 0
                                },
                                "contrast": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "angle": {
                                  "type": "number",
                                  "minimum": -180,
                                  "maximum": 180,
                                  "default": 0,
                                  "description": "Measured in °."
                                },
                                "opacity": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 1
                                },
                                "color": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#ffffff",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "mode": {
                                  "type": "string",
                                  "enum": [
                                    "single",
                                    "double",
                                    "sharpenSingle",
                                    "sharpenDouble"
                                  ],
                                  "default": "single"
                                },
                                "blendMode": {
                                  "type": "string",
                                  "enum": [
                                    "normal",
                                    "darken",
                                    "multiply",
                                    "colorBurn",
                                    "linearBurn",
                                    "add",
                                    "lighten",
                                    "screen",
                                    "colorDodge",
                                    "overlay",
                                    "softLight",
                                    "hardLight",
                                    "vividLight",
                                    "linearLight",
                                    "pinLight",
                                    "hardMix",
                                    "difference",
                                    "exclusion",
                                    "subtract",
                                    "divide",
                                    "hue",
                                    "saturation",
                                    "color",
                                    "luminosity"
                                  ],
                                  "default": "overlay"
                                }
                              },
                              "required": [
                                "size",
                                "brightness",
                                "contrast",
                                "angle",
                                "opacity",
                                "color",
                                "mode",
                                "blendMode"
                              ],
                              "additionalProperties": false,
                              "description": "Complete effect snapshot. Numbers and colors ease to these values; modes and switches change once."
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "effect",
                            "enabled",
                            "params"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "effect-params"
                            },
                            "effect": {
                              "type": "string",
                              "const": "outline"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether this captured effect state enables the effect."
                            },
                            "params": {
                              "type": "object",
                              "properties": {
                                "size": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "opacity": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 1
                                },
                                "color": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#000000",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "quality": {
                                  "type": "string",
                                  "enum": [
                                    "low",
                                    "medium",
                                    "high"
                                  ],
                                  "default": "medium"
                                }
                              },
                              "required": [
                                "size",
                                "opacity",
                                "color",
                                "quality"
                              ],
                              "additionalProperties": false,
                              "description": "Complete effect snapshot. Numbers and colors ease to these values; modes and switches change once."
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "effect",
                            "enabled",
                            "params"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "effect-params"
                            },
                            "effect": {
                              "type": "string",
                              "const": "dropShadow"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether this captured effect state enables the effect."
                            },
                            "params": {
                              "type": "object",
                              "properties": {
                                "opacity": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0.6
                                },
                                "offsetX": {
                                  "type": "number",
                                  "minimum": -20,
                                  "maximum": 20,
                                  "default": 3,
                                  "description": "Measured in %."
                                },
                                "offsetY": {
                                  "type": "number",
                                  "minimum": -20,
                                  "maximum": 20,
                                  "default": 3,
                                  "description": "Measured in %."
                                },
                                "size": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 64,
                                  "default": 0,
                                  "description": "Measured in px."
                                },
                                "color": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#000000",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                }
                              },
                              "required": [
                                "opacity",
                                "offsetX",
                                "offsetY",
                                "size",
                                "color"
                              ],
                              "additionalProperties": false,
                              "description": "Complete effect snapshot. Numbers and colors ease to these values; modes and switches change once."
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "effect",
                            "enabled",
                            "params"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "effect-params"
                            },
                            "effect": {
                              "type": "string",
                              "const": "pixelate"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether this captured effect state enables the effect."
                            },
                            "params": {
                              "type": "object",
                              "properties": {
                                "granularity": {
                                  "type": "number",
                                  "minimum": 2,
                                  "maximum": 64,
                                  "default": 8
                                }
                              },
                              "required": [
                                "granularity"
                              ],
                              "additionalProperties": false,
                              "description": "Complete effect snapshot. Numbers and colors ease to these values; modes and switches change once."
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "effect",
                            "enabled",
                            "params"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "effect-params"
                            },
                            "effect": {
                              "type": "string",
                              "const": "glitch"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether this captured effect state enables the effect."
                            },
                            "params": {
                              "type": "object",
                              "properties": {
                                "intensity": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 2,
                                  "default": 1
                                },
                                "speed": {
                                  "type": "number",
                                  "minimum": 0.1,
                                  "maximum": 4,
                                  "default": 1,
                                  "description": "Measured in ×."
                                },
                                "interval": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 8,
                                  "default": 3,
                                  "description": "Measured in s."
                                },
                                "duration": {
                                  "type": "number",
                                  "minimum": 0.1,
                                  "maximum": 2,
                                  "default": 0.4,
                                  "description": "Measured in s."
                                },
                                "slices": {
                                  "type": "number",
                                  "minimum": 4,
                                  "maximum": 80,
                                  "default": 24
                                },
                                "shift": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 120,
                                  "default": 30,
                                  "description": "Measured in px."
                                },
                                "rgbShift": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 20,
                                  "default": 4,
                                  "description": "Measured in px."
                                },
                                "blocks": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0.5
                                },
                                "noise": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0.35
                                }
                              },
                              "required": [
                                "intensity",
                                "speed",
                                "interval",
                                "duration",
                                "slices",
                                "shift",
                                "rgbShift",
                                "blocks",
                                "noise"
                              ],
                              "additionalProperties": false,
                              "description": "Complete effect snapshot. Numbers and colors ease to these values; modes and switches change once."
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "effect",
                            "enabled",
                            "params"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "effect-params"
                            },
                            "effect": {
                              "type": "string",
                              "const": "droplets"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether this captured effect state enables the effect."
                            },
                            "params": {
                              "type": "object",
                              "properties": {
                                "intensity": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1.25,
                                  "default": 0.5
                                },
                                "speed": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3,
                                  "default": 1,
                                  "description": "Measured in ×."
                                },
                                "scale": {
                                  "type": "number",
                                  "minimum": 0.4,
                                  "maximum": 2.5,
                                  "default": 0.4
                                },
                                "dropWidth": {
                                  "type": "number",
                                  "minimum": 0.4,
                                  "maximum": 1.5,
                                  "default": 1
                                },
                                "dropLength": {
                                  "type": "number",
                                  "minimum": 0.4,
                                  "maximum": 2.5,
                                  "default": 1
                                },
                                "refraction": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3,
                                  "default": 0.2
                                },
                                "fallSpeed": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3,
                                  "default": 1,
                                  "description": "Measured in ×."
                                },
                                "direction": {
                                  "type": "number",
                                  "minimum": -180,
                                  "maximum": 180,
                                  "default": 0,
                                  "description": "Measured in °."
                                },
                                "wiggle": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 2,
                                  "default": 1
                                },
                                "staticDrops": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3,
                                  "default": 0.2
                                },
                                "glints": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0.6
                                }
                              },
                              "required": [
                                "intensity",
                                "speed",
                                "scale",
                                "dropWidth",
                                "dropLength",
                                "refraction",
                                "fallSpeed",
                                "direction",
                                "wiggle",
                                "staticDrops",
                                "glints"
                              ],
                              "additionalProperties": false,
                              "description": "Complete effect snapshot. Numbers and colors ease to these values; modes and switches change once."
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "effect",
                            "enabled",
                            "params"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "effect-params"
                            },
                            "effect": {
                              "type": "string",
                              "const": "rain"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether this captured effect state enables the effect."
                            },
                            "params": {
                              "type": "object",
                              "properties": {
                                "amount": {
                                  "type": "number",
                                  "minimum": 100,
                                  "maximum": 10000,
                                  "default": 4000
                                },
                                "speed": {
                                  "type": "number",
                                  "minimum": 0.2,
                                  "maximum": 3,
                                  "default": 1,
                                  "description": "Measured in ×."
                                },
                                "wind": {
                                  "type": "number",
                                  "minimum": -6,
                                  "maximum": 6,
                                  "default": 0,
                                  "description": "Measured in m/s."
                                },
                                "length": {
                                  "type": "number",
                                  "minimum": 0.2,
                                  "maximum": 3,
                                  "default": 1
                                },
                                "size": {
                                  "type": "number",
                                  "minimum": 0.4,
                                  "maximum": 3,
                                  "default": 1
                                },
                                "splash": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0.7
                                },
                                "opacity": {
                                  "type": "number",
                                  "minimum": 0.05,
                                  "maximum": 1,
                                  "default": 0.4
                                }
                              },
                              "required": [
                                "amount",
                                "speed",
                                "wind",
                                "length",
                                "size",
                                "splash",
                                "opacity"
                              ],
                              "additionalProperties": false,
                              "description": "Complete effect snapshot. Numbers and colors ease to these values; modes and switches change once."
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "effect",
                            "enabled",
                            "params"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "effect-params"
                            },
                            "effect": {
                              "type": "string",
                              "const": "snow"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether this captured effect state enables the effect."
                            },
                            "params": {
                              "type": "object",
                              "properties": {
                                "amount": {
                                  "type": "number",
                                  "minimum": 100,
                                  "maximum": 10000,
                                  "default": 2000
                                },
                                "speed": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3,
                                  "default": 1,
                                  "description": "Measured in ×."
                                },
                                "wind": {
                                  "type": "number",
                                  "minimum": -3,
                                  "maximum": 3,
                                  "default": 0,
                                  "description": "Measured in m/s."
                                },
                                "sway": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3,
                                  "default": 1
                                },
                                "size": {
                                  "type": "number",
                                  "minimum": 0.4,
                                  "maximum": 3,
                                  "default": 1
                                },
                                "melt": {
                                  "type": "number",
                                  "minimum": 0.5,
                                  "maximum": 30,
                                  "default": 6,
                                  "description": "Measured in s."
                                },
                                "opacity": {
                                  "type": "number",
                                  "minimum": 0.1,
                                  "maximum": 1,
                                  "default": 1
                                }
                              },
                              "required": [
                                "amount",
                                "speed",
                                "wind",
                                "sway",
                                "size",
                                "melt",
                                "opacity"
                              ],
                              "additionalProperties": false,
                              "description": "Complete effect snapshot. Numbers and colors ease to these values; modes and switches change once."
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "effect",
                            "enabled",
                            "params"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    },
                    {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "effect-clip"
                            },
                            "effect": {
                              "type": "string",
                              "const": "color"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether this captured effect state enables the effect."
                            },
                            "params": {
                              "type": "object",
                              "properties": {
                                "hue": {
                                  "type": "number",
                                  "minimum": -180,
                                  "maximum": 180,
                                  "default": 0
                                },
                                "saturation": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "brightness": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "contrast": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "temperature": {
                                  "type": "number",
                                  "minimum": -100,
                                  "maximum": 100,
                                  "default": 0
                                },
                                "tint": {
                                  "type": "number",
                                  "minimum": -100,
                                  "maximum": 100,
                                  "default": 0
                                }
                              },
                              "required": [
                                "hue",
                                "saturation",
                                "brightness",
                                "contrast",
                                "temperature",
                                "tint"
                              ],
                              "additionalProperties": false,
                              "description": "Complete effect snapshot. Numbers and colors ease to these values; modes and switches change once."
                            },
                            "fadeInMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10000
                            },
                            "fadeOutMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10000
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "effect",
                            "enabled",
                            "params",
                            "fadeInMs",
                            "fadeOutMs"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "effect-clip"
                            },
                            "effect": {
                              "type": "string",
                              "const": "levels"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether this captured effect state enables the effect."
                            },
                            "params": {
                              "type": "object",
                              "properties": {
                                "inputBlack": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "inputWhite": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 1
                                },
                                "inputGamma": {
                                  "type": "number",
                                  "minimum": 0.1,
                                  "maximum": 4,
                                  "default": 1
                                },
                                "outputBlack": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "outputWhite": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 1
                                },
                                "inputBlackR": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "inputWhiteR": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 1
                                },
                                "inputGammaR": {
                                  "type": "number",
                                  "minimum": 0.1,
                                  "maximum": 4,
                                  "default": 1
                                },
                                "outputBlackR": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "outputWhiteR": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 1
                                },
                                "inputBlackG": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "inputWhiteG": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 1
                                },
                                "inputGammaG": {
                                  "type": "number",
                                  "minimum": 0.1,
                                  "maximum": 4,
                                  "default": 1
                                },
                                "outputBlackG": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "outputWhiteG": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 1
                                },
                                "inputBlackB": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "inputWhiteB": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 1
                                },
                                "inputGammaB": {
                                  "type": "number",
                                  "minimum": 0.1,
                                  "maximum": 4,
                                  "default": 1
                                },
                                "outputBlackB": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "outputWhiteB": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 1
                                }
                              },
                              "required": [
                                "inputBlack",
                                "inputWhite",
                                "inputGamma",
                                "outputBlack",
                                "outputWhite",
                                "inputBlackR",
                                "inputWhiteR",
                                "inputGammaR",
                                "outputBlackR",
                                "outputWhiteR",
                                "inputBlackG",
                                "inputWhiteG",
                                "inputGammaG",
                                "outputBlackG",
                                "outputWhiteG",
                                "inputBlackB",
                                "inputWhiteB",
                                "inputGammaB",
                                "outputBlackB",
                                "outputWhiteB"
                              ],
                              "additionalProperties": false,
                              "description": "Complete effect snapshot. Numbers and colors ease to these values; modes and switches change once."
                            },
                            "fadeInMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10000
                            },
                            "fadeOutMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10000
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "effect",
                            "enabled",
                            "params",
                            "fadeInMs",
                            "fadeOutMs"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "effect-clip"
                            },
                            "effect": {
                              "type": "string",
                              "const": "colorWheels"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether this captured effect state enables the effect."
                            },
                            "params": {
                              "type": "object",
                              "properties": {
                                "lift": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "gamma": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "gain": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "shadows": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "midtones": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "highlights": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "shadowLimit": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0.3
                                },
                                "highlightLimit": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0.7
                                },
                                "liftColor": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#ffffff",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "gammaColor": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#ffffff",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "gainColor": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#ffffff",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "shadowsColor": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#ffffff",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "midtonesColor": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#ffffff",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "highlightsColor": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#ffffff",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "mode": {
                                  "type": "string",
                                  "enum": [
                                    "liftGammaGain",
                                    "shadowsMidtonesHighlights"
                                  ],
                                  "default": "liftGammaGain"
                                }
                              },
                              "required": [
                                "lift",
                                "gamma",
                                "gain",
                                "shadows",
                                "midtones",
                                "highlights",
                                "shadowLimit",
                                "highlightLimit",
                                "liftColor",
                                "gammaColor",
                                "gainColor",
                                "shadowsColor",
                                "midtonesColor",
                                "highlightsColor",
                                "mode"
                              ],
                              "additionalProperties": false,
                              "description": "Complete effect snapshot. Numbers and colors ease to these values; modes and switches change once."
                            },
                            "fadeInMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10000
                            },
                            "fadeOutMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10000
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "effect",
                            "enabled",
                            "params",
                            "fadeInMs",
                            "fadeOutMs"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "effect-clip"
                            },
                            "effect": {
                              "type": "string",
                              "const": "colorShift"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether this captured effect state enables the effect."
                            },
                            "params": {
                              "type": "object",
                              "properties": {
                                "hueRed": {
                                  "type": "number",
                                  "minimum": -180,
                                  "maximum": 180,
                                  "default": 0,
                                  "description": "Measured in °."
                                },
                                "saturationRed": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "luminanceRed": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "luminanceSaturationRed": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "hueYellow": {
                                  "type": "number",
                                  "minimum": -180,
                                  "maximum": 180,
                                  "default": 0,
                                  "description": "Measured in °."
                                },
                                "saturationYellow": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "luminanceYellow": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "luminanceSaturationYellow": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "hueGreen": {
                                  "type": "number",
                                  "minimum": -180,
                                  "maximum": 180,
                                  "default": 0,
                                  "description": "Measured in °."
                                },
                                "saturationGreen": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "luminanceGreen": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "luminanceSaturationGreen": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "hueCyan": {
                                  "type": "number",
                                  "minimum": -180,
                                  "maximum": 180,
                                  "default": 0,
                                  "description": "Measured in °."
                                },
                                "saturationCyan": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "luminanceCyan": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "luminanceSaturationCyan": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "hueBlue": {
                                  "type": "number",
                                  "minimum": -180,
                                  "maximum": 180,
                                  "default": 0,
                                  "description": "Measured in °."
                                },
                                "saturationBlue": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "luminanceBlue": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "luminanceSaturationBlue": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "hueMagenta": {
                                  "type": "number",
                                  "minimum": -180,
                                  "maximum": 180,
                                  "default": 0,
                                  "description": "Measured in °."
                                },
                                "saturationMagenta": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "luminanceMagenta": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "luminanceSaturationMagenta": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                }
                              },
                              "required": [
                                "hueRed",
                                "saturationRed",
                                "luminanceRed",
                                "luminanceSaturationRed",
                                "hueYellow",
                                "saturationYellow",
                                "luminanceYellow",
                                "luminanceSaturationYellow",
                                "hueGreen",
                                "saturationGreen",
                                "luminanceGreen",
                                "luminanceSaturationGreen",
                                "hueCyan",
                                "saturationCyan",
                                "luminanceCyan",
                                "luminanceSaturationCyan",
                                "hueBlue",
                                "saturationBlue",
                                "luminanceBlue",
                                "luminanceSaturationBlue",
                                "hueMagenta",
                                "saturationMagenta",
                                "luminanceMagenta",
                                "luminanceSaturationMagenta"
                              ],
                              "additionalProperties": false,
                              "description": "Complete effect snapshot. Numbers and colors ease to these values; modes and switches change once."
                            },
                            "fadeInMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10000
                            },
                            "fadeOutMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10000
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "effect",
                            "enabled",
                            "params",
                            "fadeInMs",
                            "fadeOutMs"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "effect-clip"
                            },
                            "effect": {
                              "type": "string",
                              "const": "selectColors"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether this captured effect state enables the effect."
                            },
                            "params": {
                              "type": "object",
                              "properties": {
                                "hueRange": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 0.5,
                                  "default": 0.08
                                },
                                "saturationRange": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 1
                                },
                                "brightnessRange": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 1
                                },
                                "saturation": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": -1
                                },
                                "blend": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 1
                                },
                                "color1": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#ff0000",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "color2": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#ffff00",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "color3": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#00ff00",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "color4": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#00ffff",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "color5": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#0000ff",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "color6": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#ff00ff",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "color7": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#ffffff",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "color8": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#808080",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "color9": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#000000",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "color10": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#ff8800",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "invert": {
                                  "type": "boolean",
                                  "default": false
                                },
                                "color1Enabled": {
                                  "type": "boolean",
                                  "default": true
                                },
                                "color2Enabled": {
                                  "type": "boolean",
                                  "default": false
                                },
                                "color3Enabled": {
                                  "type": "boolean",
                                  "default": false
                                },
                                "color4Enabled": {
                                  "type": "boolean",
                                  "default": false
                                },
                                "color5Enabled": {
                                  "type": "boolean",
                                  "default": false
                                },
                                "color6Enabled": {
                                  "type": "boolean",
                                  "default": false
                                },
                                "color7Enabled": {
                                  "type": "boolean",
                                  "default": false
                                },
                                "color8Enabled": {
                                  "type": "boolean",
                                  "default": false
                                },
                                "color9Enabled": {
                                  "type": "boolean",
                                  "default": false
                                },
                                "color10Enabled": {
                                  "type": "boolean",
                                  "default": false
                                }
                              },
                              "required": [
                                "hueRange",
                                "saturationRange",
                                "brightnessRange",
                                "saturation",
                                "blend",
                                "color1",
                                "color2",
                                "color3",
                                "color4",
                                "color5",
                                "color6",
                                "color7",
                                "color8",
                                "color9",
                                "color10",
                                "invert",
                                "color1Enabled",
                                "color2Enabled",
                                "color3Enabled",
                                "color4Enabled",
                                "color5Enabled",
                                "color6Enabled",
                                "color7Enabled",
                                "color8Enabled",
                                "color9Enabled",
                                "color10Enabled"
                              ],
                              "additionalProperties": false,
                              "description": "Complete effect snapshot. Numbers and colors ease to these values; modes and switches change once."
                            },
                            "fadeInMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10000
                            },
                            "fadeOutMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10000
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "effect",
                            "enabled",
                            "params",
                            "fadeInMs",
                            "fadeOutMs"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "effect-clip"
                            },
                            "effect": {
                              "type": "string",
                              "const": "gradient"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether this captured effect state enables the effect."
                            },
                            "params": {
                              "type": "object",
                              "properties": {
                                "radius": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3,
                                  "default": 1
                                },
                                "smoothness": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 5,
                                  "default": 1
                                },
                                "centerX": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "centerY": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "angle": {
                                  "type": "number",
                                  "minimum": -180,
                                  "maximum": 180,
                                  "default": 0,
                                  "description": "Measured in °."
                                },
                                "scaleX": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 2,
                                  "default": 1
                                },
                                "scaleY": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 2,
                                  "default": 0.5
                                },
                                "opacity": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 1
                                },
                                "color": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#ffffff",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "backgroundColor": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#000000",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "invert": {
                                  "type": "boolean",
                                  "default": false
                                },
                                "transparentBackground": {
                                  "type": "boolean",
                                  "default": false
                                },
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "solid",
                                    "linear",
                                    "circle",
                                    "ellipse"
                                  ],
                                  "default": "circle"
                                },
                                "blendMode": {
                                  "type": "string",
                                  "enum": [
                                    "normal",
                                    "darken",
                                    "multiply",
                                    "colorBurn",
                                    "linearBurn",
                                    "add",
                                    "lighten",
                                    "screen",
                                    "colorDodge",
                                    "overlay",
                                    "softLight",
                                    "hardLight",
                                    "vividLight",
                                    "linearLight",
                                    "pinLight",
                                    "hardMix",
                                    "difference",
                                    "exclusion",
                                    "subtract",
                                    "divide",
                                    "hue",
                                    "saturation",
                                    "color",
                                    "luminosity"
                                  ],
                                  "default": "normal"
                                }
                              },
                              "required": [
                                "radius",
                                "smoothness",
                                "centerX",
                                "centerY",
                                "angle",
                                "scaleX",
                                "scaleY",
                                "opacity",
                                "color",
                                "backgroundColor",
                                "invert",
                                "transparentBackground",
                                "type",
                                "blendMode"
                              ],
                              "additionalProperties": false,
                              "description": "Complete effect snapshot. Numbers and colors ease to these values; modes and switches change once."
                            },
                            "fadeInMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10000
                            },
                            "fadeOutMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10000
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "effect",
                            "enabled",
                            "params",
                            "fadeInMs",
                            "fadeOutMs"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "effect-clip"
                            },
                            "effect": {
                              "type": "string",
                              "const": "flare"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether this captured effect state enables the effect."
                            },
                            "params": {
                              "type": "object",
                              "properties": {
                                "intensity": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "size": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 2,
                                  "default": 0
                                },
                                "angle": {
                                  "type": "number",
                                  "minimum": -180,
                                  "maximum": 180,
                                  "default": 0,
                                  "description": "Measured in °."
                                },
                                "glowOpacity": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 1
                                },
                                "raysScale": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "raysIntensity": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "raysOpacity": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 1
                                },
                                "color": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#ffffff",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "raysColor": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#ffffff",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "rays": {
                                  "type": "boolean",
                                  "default": false
                                },
                                "mode": {
                                  "type": "string",
                                  "enum": [
                                    "add",
                                    "screen",
                                    "colorDodge"
                                  ],
                                  "default": "add"
                                },
                                "raysMode": {
                                  "type": "string",
                                  "enum": [
                                    "sun",
                                    "shine",
                                    "god"
                                  ],
                                  "default": "sun"
                                }
                              },
                              "required": [
                                "intensity",
                                "size",
                                "angle",
                                "glowOpacity",
                                "raysScale",
                                "raysIntensity",
                                "raysOpacity",
                                "color",
                                "raysColor",
                                "rays",
                                "mode",
                                "raysMode"
                              ],
                              "additionalProperties": false,
                              "description": "Complete effect snapshot. Numbers and colors ease to these values; modes and switches change once."
                            },
                            "fadeInMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10000
                            },
                            "fadeOutMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10000
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "effect",
                            "enabled",
                            "params",
                            "fadeInMs",
                            "fadeOutMs"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "effect-clip"
                            },
                            "effect": {
                              "type": "string",
                              "const": "blur"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether this captured effect state enables the effect."
                            },
                            "params": {
                              "type": "object",
                              "properties": {
                                "radius": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 64,
                                  "default": 8,
                                  "description": "Measured in px."
                                },
                                "highQuality": {
                                  "type": "boolean",
                                  "default": false
                                },
                                "mode": {
                                  "type": "string",
                                  "enum": [
                                    "gaussian",
                                    "bokeh"
                                  ],
                                  "default": "gaussian"
                                }
                              },
                              "required": [
                                "radius",
                                "highQuality",
                                "mode"
                              ],
                              "additionalProperties": false,
                              "description": "Complete effect snapshot. Numbers and colors ease to these values; modes and switches change once."
                            },
                            "fadeInMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10000
                            },
                            "fadeOutMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10000
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "effect",
                            "enabled",
                            "params",
                            "fadeInMs",
                            "fadeOutMs"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "effect-clip"
                            },
                            "effect": {
                              "type": "string",
                              "const": "bloom"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether this captured effect state enables the effect."
                            },
                            "params": {
                              "type": "object",
                              "properties": {
                                "intensity": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 10,
                                  "default": 0
                                },
                                "threshold": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 2,
                                  "default": 0.5
                                },
                                "thresholdSmooth": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "radius": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 6,
                                  "default": 1
                                },
                                "saturation": {
                                  "type": "number",
                                  "minimum": -1,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "opacity": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 1
                                },
                                "starRays": {
                                  "type": "number",
                                  "minimum": 1,
                                  "maximum": 6,
                                  "default": 3
                                },
                                "starAngle": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 360,
                                  "default": 0,
                                  "description": "Measured in °."
                                },
                                "colorTolerance": {
                                  "type": "number",
                                  "minimum": 0.01,
                                  "maximum": 1,
                                  "default": 0.5
                                },
                                "tint": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#ffffff",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "color1": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#ffffff",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "color2": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#ffffff",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "color3": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#ffffff",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "color4": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#ffffff",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "color5": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#ffffff",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "selectColors": {
                                  "type": "boolean",
                                  "default": false
                                },
                                "invertColors": {
                                  "type": "boolean",
                                  "default": false
                                },
                                "color1Enabled": {
                                  "type": "boolean",
                                  "default": true
                                },
                                "color2Enabled": {
                                  "type": "boolean",
                                  "default": false
                                },
                                "color3Enabled": {
                                  "type": "boolean",
                                  "default": false
                                },
                                "color4Enabled": {
                                  "type": "boolean",
                                  "default": false
                                },
                                "color5Enabled": {
                                  "type": "boolean",
                                  "default": false
                                },
                                "mode": {
                                  "type": "string",
                                  "enum": [
                                    "normal",
                                    "streak",
                                    "star"
                                  ],
                                  "default": "normal"
                                }
                              },
                              "required": [
                                "intensity",
                                "threshold",
                                "thresholdSmooth",
                                "radius",
                                "saturation",
                                "opacity",
                                "starRays",
                                "starAngle",
                                "colorTolerance",
                                "tint",
                                "color1",
                                "color2",
                                "color3",
                                "color4",
                                "color5",
                                "selectColors",
                                "invertColors",
                                "color1Enabled",
                                "color2Enabled",
                                "color3Enabled",
                                "color4Enabled",
                                "color5Enabled",
                                "mode"
                              ],
                              "additionalProperties": false,
                              "description": "Complete effect snapshot. Numbers and colors ease to these values; modes and switches change once."
                            },
                            "fadeInMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10000
                            },
                            "fadeOutMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10000
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "effect",
                            "enabled",
                            "params",
                            "fadeInMs",
                            "fadeOutMs"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "effect-clip"
                            },
                            "effect": {
                              "type": "string",
                              "const": "diffusion"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether this captured effect state enables the effect."
                            },
                            "params": {
                              "type": "object",
                              "properties": {
                                "intensity": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 2,
                                  "default": 1
                                },
                                "radius": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0.85
                                },
                                "threshold": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0.35
                                }
                              },
                              "required": [
                                "intensity",
                                "radius",
                                "threshold"
                              ],
                              "additionalProperties": false,
                              "description": "Complete effect snapshot. Numbers and colors ease to these values; modes and switches change once."
                            },
                            "fadeInMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10000
                            },
                            "fadeOutMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10000
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "effect",
                            "enabled",
                            "params",
                            "fadeInMs",
                            "fadeOutMs"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "effect-clip"
                            },
                            "effect": {
                              "type": "string",
                              "const": "dof"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether this captured effect state enables the effect."
                            },
                            "params": {
                              "type": "object",
                              "properties": {
                                "bokehScale": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 8,
                                  "default": 2
                                },
                                "focusRange": {
                                  "type": "number",
                                  "minimum": 0.1,
                                  "maximum": 10,
                                  "default": 2
                                }
                              },
                              "required": [
                                "bokehScale",
                                "focusRange"
                              ],
                              "additionalProperties": false,
                              "description": "Complete effect snapshot. Numbers and colors ease to these values; modes and switches change once."
                            },
                            "fadeInMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10000
                            },
                            "fadeOutMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10000
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "effect",
                            "enabled",
                            "params",
                            "fadeInMs",
                            "fadeOutMs"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "effect-clip"
                            },
                            "effect": {
                              "type": "string",
                              "const": "chromaticAberration"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether this captured effect state enables the effect."
                            },
                            "params": {
                              "type": "object",
                              "properties": {
                                "strength": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0.2
                                },
                                "blurEdges": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 1
                                }
                              },
                              "required": [
                                "strength",
                                "blurEdges"
                              ],
                              "additionalProperties": false,
                              "description": "Complete effect snapshot. Numbers and colors ease to these values; modes and switches change once."
                            },
                            "fadeInMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10000
                            },
                            "fadeOutMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10000
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "effect",
                            "enabled",
                            "params",
                            "fadeInMs",
                            "fadeOutMs"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "effect-clip"
                            },
                            "effect": {
                              "type": "string",
                              "const": "grain"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether this captured effect state enables the effect."
                            },
                            "params": {
                              "type": "object",
                              "properties": {
                                "strength": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0.3
                                }
                              },
                              "required": [
                                "strength"
                              ],
                              "additionalProperties": false,
                              "description": "Complete effect snapshot. Numbers and colors ease to these values; modes and switches change once."
                            },
                            "fadeInMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10000
                            },
                            "fadeOutMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10000
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "effect",
                            "enabled",
                            "params",
                            "fadeInMs",
                            "fadeOutMs"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "effect-clip"
                            },
                            "effect": {
                              "type": "string",
                              "const": "vignette"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether this captured effect state enables the effect."
                            },
                            "params": {
                              "type": "object",
                              "properties": {
                                "darkness": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0.5
                                },
                                "offset": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0.5
                                }
                              },
                              "required": [
                                "darkness",
                                "offset"
                              ],
                              "additionalProperties": false,
                              "description": "Complete effect snapshot. Numbers and colors ease to these values; modes and switches change once."
                            },
                            "fadeInMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10000
                            },
                            "fadeOutMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10000
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "effect",
                            "enabled",
                            "params",
                            "fadeInMs",
                            "fadeOutMs"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "effect-clip"
                            },
                            "effect": {
                              "type": "string",
                              "const": "rim"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether this captured effect state enables the effect."
                            },
                            "params": {
                              "type": "object",
                              "properties": {
                                "size": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0.5
                                },
                                "brightness": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 5,
                                  "default": 0
                                },
                                "contrast": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "angle": {
                                  "type": "number",
                                  "minimum": -180,
                                  "maximum": 180,
                                  "default": 0,
                                  "description": "Measured in °."
                                },
                                "opacity": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 1
                                },
                                "color": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#ffffff",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "mode": {
                                  "type": "string",
                                  "enum": [
                                    "single",
                                    "double",
                                    "sharpenSingle",
                                    "sharpenDouble"
                                  ],
                                  "default": "single"
                                },
                                "blendMode": {
                                  "type": "string",
                                  "enum": [
                                    "normal",
                                    "darken",
                                    "multiply",
                                    "colorBurn",
                                    "linearBurn",
                                    "add",
                                    "lighten",
                                    "screen",
                                    "colorDodge",
                                    "overlay",
                                    "softLight",
                                    "hardLight",
                                    "vividLight",
                                    "linearLight",
                                    "pinLight",
                                    "hardMix",
                                    "difference",
                                    "exclusion",
                                    "subtract",
                                    "divide",
                                    "hue",
                                    "saturation",
                                    "color",
                                    "luminosity"
                                  ],
                                  "default": "overlay"
                                }
                              },
                              "required": [
                                "size",
                                "brightness",
                                "contrast",
                                "angle",
                                "opacity",
                                "color",
                                "mode",
                                "blendMode"
                              ],
                              "additionalProperties": false,
                              "description": "Complete effect snapshot. Numbers and colors ease to these values; modes and switches change once."
                            },
                            "fadeInMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10000
                            },
                            "fadeOutMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10000
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "effect",
                            "enabled",
                            "params",
                            "fadeInMs",
                            "fadeOutMs"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "effect-clip"
                            },
                            "effect": {
                              "type": "string",
                              "const": "outline"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether this captured effect state enables the effect."
                            },
                            "params": {
                              "type": "object",
                              "properties": {
                                "size": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0
                                },
                                "opacity": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 1
                                },
                                "color": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#000000",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                },
                                "quality": {
                                  "type": "string",
                                  "enum": [
                                    "low",
                                    "medium",
                                    "high"
                                  ],
                                  "default": "medium"
                                }
                              },
                              "required": [
                                "size",
                                "opacity",
                                "color",
                                "quality"
                              ],
                              "additionalProperties": false,
                              "description": "Complete effect snapshot. Numbers and colors ease to these values; modes and switches change once."
                            },
                            "fadeInMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10000
                            },
                            "fadeOutMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10000
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "effect",
                            "enabled",
                            "params",
                            "fadeInMs",
                            "fadeOutMs"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "effect-clip"
                            },
                            "effect": {
                              "type": "string",
                              "const": "dropShadow"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether this captured effect state enables the effect."
                            },
                            "params": {
                              "type": "object",
                              "properties": {
                                "opacity": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0.6
                                },
                                "offsetX": {
                                  "type": "number",
                                  "minimum": -20,
                                  "maximum": 20,
                                  "default": 3,
                                  "description": "Measured in %."
                                },
                                "offsetY": {
                                  "type": "number",
                                  "minimum": -20,
                                  "maximum": 20,
                                  "default": 3,
                                  "description": "Measured in %."
                                },
                                "size": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 64,
                                  "default": 0,
                                  "description": "Measured in px."
                                },
                                "color": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-fA-F]{6}$",
                                  "default": "#000000",
                                  "description": "Opaque color in #RRGGBB hexadecimal notation."
                                }
                              },
                              "required": [
                                "opacity",
                                "offsetX",
                                "offsetY",
                                "size",
                                "color"
                              ],
                              "additionalProperties": false,
                              "description": "Complete effect snapshot. Numbers and colors ease to these values; modes and switches change once."
                            },
                            "fadeInMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10000
                            },
                            "fadeOutMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10000
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "effect",
                            "enabled",
                            "params",
                            "fadeInMs",
                            "fadeOutMs"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "effect-clip"
                            },
                            "effect": {
                              "type": "string",
                              "const": "pixelate"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether this captured effect state enables the effect."
                            },
                            "params": {
                              "type": "object",
                              "properties": {
                                "granularity": {
                                  "type": "number",
                                  "minimum": 2,
                                  "maximum": 64,
                                  "default": 8
                                }
                              },
                              "required": [
                                "granularity"
                              ],
                              "additionalProperties": false,
                              "description": "Complete effect snapshot. Numbers and colors ease to these values; modes and switches change once."
                            },
                            "fadeInMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10000
                            },
                            "fadeOutMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10000
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "effect",
                            "enabled",
                            "params",
                            "fadeInMs",
                            "fadeOutMs"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "effect-clip"
                            },
                            "effect": {
                              "type": "string",
                              "const": "glitch"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether this captured effect state enables the effect."
                            },
                            "params": {
                              "type": "object",
                              "properties": {
                                "intensity": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 2,
                                  "default": 1
                                },
                                "speed": {
                                  "type": "number",
                                  "minimum": 0.1,
                                  "maximum": 4,
                                  "default": 1,
                                  "description": "Measured in ×."
                                },
                                "interval": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 8,
                                  "default": 3,
                                  "description": "Measured in s."
                                },
                                "duration": {
                                  "type": "number",
                                  "minimum": 0.1,
                                  "maximum": 2,
                                  "default": 0.4,
                                  "description": "Measured in s."
                                },
                                "slices": {
                                  "type": "number",
                                  "minimum": 4,
                                  "maximum": 80,
                                  "default": 24
                                },
                                "shift": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 120,
                                  "default": 30,
                                  "description": "Measured in px."
                                },
                                "rgbShift": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 20,
                                  "default": 4,
                                  "description": "Measured in px."
                                },
                                "blocks": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0.5
                                },
                                "noise": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0.35
                                }
                              },
                              "required": [
                                "intensity",
                                "speed",
                                "interval",
                                "duration",
                                "slices",
                                "shift",
                                "rgbShift",
                                "blocks",
                                "noise"
                              ],
                              "additionalProperties": false,
                              "description": "Complete effect snapshot. Numbers and colors ease to these values; modes and switches change once."
                            },
                            "fadeInMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10000
                            },
                            "fadeOutMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10000
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "effect",
                            "enabled",
                            "params",
                            "fadeInMs",
                            "fadeOutMs"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "effect-clip"
                            },
                            "effect": {
                              "type": "string",
                              "const": "droplets"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether this captured effect state enables the effect."
                            },
                            "params": {
                              "type": "object",
                              "properties": {
                                "intensity": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1.25,
                                  "default": 0.5
                                },
                                "speed": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3,
                                  "default": 1,
                                  "description": "Measured in ×."
                                },
                                "scale": {
                                  "type": "number",
                                  "minimum": 0.4,
                                  "maximum": 2.5,
                                  "default": 0.4
                                },
                                "dropWidth": {
                                  "type": "number",
                                  "minimum": 0.4,
                                  "maximum": 1.5,
                                  "default": 1
                                },
                                "dropLength": {
                                  "type": "number",
                                  "minimum": 0.4,
                                  "maximum": 2.5,
                                  "default": 1
                                },
                                "refraction": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3,
                                  "default": 0.2
                                },
                                "fallSpeed": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3,
                                  "default": 1,
                                  "description": "Measured in ×."
                                },
                                "direction": {
                                  "type": "number",
                                  "minimum": -180,
                                  "maximum": 180,
                                  "default": 0,
                                  "description": "Measured in °."
                                },
                                "wiggle": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 2,
                                  "default": 1
                                },
                                "staticDrops": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3,
                                  "default": 0.2
                                },
                                "glints": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0.6
                                }
                              },
                              "required": [
                                "intensity",
                                "speed",
                                "scale",
                                "dropWidth",
                                "dropLength",
                                "refraction",
                                "fallSpeed",
                                "direction",
                                "wiggle",
                                "staticDrops",
                                "glints"
                              ],
                              "additionalProperties": false,
                              "description": "Complete effect snapshot. Numbers and colors ease to these values; modes and switches change once."
                            },
                            "fadeInMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10000
                            },
                            "fadeOutMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10000
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "effect",
                            "enabled",
                            "params",
                            "fadeInMs",
                            "fadeOutMs"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "effect-clip"
                            },
                            "effect": {
                              "type": "string",
                              "const": "rain"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether this captured effect state enables the effect."
                            },
                            "params": {
                              "type": "object",
                              "properties": {
                                "amount": {
                                  "type": "number",
                                  "minimum": 100,
                                  "maximum": 10000,
                                  "default": 4000
                                },
                                "speed": {
                                  "type": "number",
                                  "minimum": 0.2,
                                  "maximum": 3,
                                  "default": 1,
                                  "description": "Measured in ×."
                                },
                                "wind": {
                                  "type": "number",
                                  "minimum": -6,
                                  "maximum": 6,
                                  "default": 0,
                                  "description": "Measured in m/s."
                                },
                                "length": {
                                  "type": "number",
                                  "minimum": 0.2,
                                  "maximum": 3,
                                  "default": 1
                                },
                                "size": {
                                  "type": "number",
                                  "minimum": 0.4,
                                  "maximum": 3,
                                  "default": 1
                                },
                                "splash": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "default": 0.7
                                },
                                "opacity": {
                                  "type": "number",
                                  "minimum": 0.05,
                                  "maximum": 1,
                                  "default": 0.4
                                }
                              },
                              "required": [
                                "amount",
                                "speed",
                                "wind",
                                "length",
                                "size",
                                "splash",
                                "opacity"
                              ],
                              "additionalProperties": false,
                              "description": "Complete effect snapshot. Numbers and colors ease to these values; modes and switches change once."
                            },
                            "fadeInMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10000
                            },
                            "fadeOutMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10000
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "effect",
                            "enabled",
                            "params",
                            "fadeInMs",
                            "fadeOutMs"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "effect-clip"
                            },
                            "effect": {
                              "type": "string",
                              "const": "snow"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether this captured effect state enables the effect."
                            },
                            "params": {
                              "type": "object",
                              "properties": {
                                "amount": {
                                  "type": "number",
                                  "minimum": 100,
                                  "maximum": 10000,
                                  "default": 2000
                                },
                                "speed": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3,
                                  "default": 1,
                                  "description": "Measured in ×."
                                },
                                "wind": {
                                  "type": "number",
                                  "minimum": -3,
                                  "maximum": 3,
                                  "default": 0,
                                  "description": "Measured in m/s."
                                },
                                "sway": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3,
                                  "default": 1
                                },
                                "size": {
                                  "type": "number",
                                  "minimum": 0.4,
                                  "maximum": 3,
                                  "default": 1
                                },
                                "melt": {
                                  "type": "number",
                                  "minimum": 0.5,
                                  "maximum": 30,
                                  "default": 6,
                                  "description": "Measured in s."
                                },
                                "opacity": {
                                  "type": "number",
                                  "minimum": 0.1,
                                  "maximum": 1,
                                  "default": 1
                                }
                              },
                              "required": [
                                "amount",
                                "speed",
                                "wind",
                                "sway",
                                "size",
                                "melt",
                                "opacity"
                              ],
                              "additionalProperties": false,
                              "description": "Complete effect snapshot. Numbers and colors ease to these values; modes and switches change once."
                            },
                            "fadeInMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10000
                            },
                            "fadeOutMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10000
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "effect",
                            "enabled",
                            "params",
                            "fadeInMs",
                            "fadeOutMs"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "minLength": 1,
                          "pattern": "\\S"
                        },
                        "startMs": {
                          "type": "number",
                          "minimum": 0,
                          "maximum": 3600000,
                          "description": "Start time on the sequence clock, in milliseconds."
                        },
                        "durationMs": {
                          "anyOf": [
                            {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "Clip length; null uses natural media length, zero is an instant command."
                        },
                        "sourceInMs": {
                          "type": "number",
                          "minimum": 0,
                          "description": "Source playback offset, in milliseconds; zero for commands and effects."
                        },
                        "kind": {
                          "type": "string",
                          "const": "camera-pose"
                        },
                        "camera": {
                          "type": "object",
                          "properties": {
                            "orbit": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "azimuth": {
                                      "type": "number",
                                      "description": "Horizontal orbit angle in radians; angles may wrap beyond one turn."
                                    },
                                    "elevation": {
                                      "type": "number",
                                      "description": "Vertical orbit angle in radians; angles may cross either pole."
                                    },
                                    "distance": {
                                      "type": "number",
                                      "description": "Signed target-to-eye offset along camera-local +Z, in world units."
                                    },
                                    "targetX": {
                                      "type": "number",
                                      "description": "Horizontal look-at coordinate in world units."
                                    },
                                    "targetY": {
                                      "type": "number",
                                      "description": "Vertical look-at coordinate in world units."
                                    },
                                    "targetZ": {
                                      "type": "number",
                                      "description": "Depth of the look-at point in world units."
                                    }
                                  },
                                  "required": [
                                    "azimuth",
                                    "elevation",
                                    "distance",
                                    "targetX",
                                    "targetY",
                                    "targetZ"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Orbit angles are radians; distance and look-at coordinates are world units. Null uses default framing."
                            },
                            "fov": {
                              "type": "number",
                              "minimum": 1,
                              "maximum": 179,
                              "description": "Vertical field of view in degrees."
                            },
                            "roll": {
                              "description": "Camera roll about local +Z in radians; defaults to zero.",
                              "type": "number"
                            },
                            "projection": {
                              "description": "Projection mode; defaults to perspective.",
                              "type": "string",
                              "enum": [
                                "perspective",
                                "orthographic"
                              ]
                            }
                          },
                          "required": [
                            "orbit",
                            "fov"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "id",
                        "startMs",
                        "durationMs",
                        "sourceInMs",
                        "kind",
                        "camera"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "minLength": 1,
                          "pattern": "\\S"
                        },
                        "startMs": {
                          "type": "number",
                          "minimum": 0,
                          "maximum": 3600000,
                          "description": "Start time on the sequence clock, in milliseconds."
                        },
                        "durationMs": {
                          "anyOf": [
                            {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "Clip length; null uses natural media length, zero is an instant command."
                        },
                        "sourceInMs": {
                          "type": "number",
                          "minimum": 0,
                          "description": "Source playback offset, in milliseconds; zero for commands and effects."
                        },
                        "kind": {
                          "type": "string",
                          "const": "reset-camera"
                        }
                      },
                      "required": [
                        "id",
                        "startMs",
                        "durationMs",
                        "sourceInMs",
                        "kind"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "minLength": 1,
                          "pattern": "\\S"
                        },
                        "startMs": {
                          "type": "number",
                          "minimum": 0,
                          "maximum": 3600000,
                          "description": "Start time on the sequence clock, in milliseconds."
                        },
                        "durationMs": {
                          "anyOf": [
                            {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "Clip length; null uses natural media length, zero is an instant command."
                        },
                        "sourceInMs": {
                          "type": "number",
                          "minimum": 0,
                          "description": "Source playback offset, in milliseconds; zero for commands and effects."
                        },
                        "kind": {
                          "type": "string",
                          "const": "play-camera-motion"
                        },
                        "assetId": {
                          "type": "string",
                          "minLength": 1,
                          "pattern": "\\S",
                          "description": "Registered camera motion inventory asset ID. The clip bounds playback and releases the camera when it ends."
                        }
                      },
                      "required": [
                        "id",
                        "startMs",
                        "durationMs",
                        "sourceInMs",
                        "kind",
                        "assetId"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "minLength": 1,
                          "pattern": "\\S"
                        },
                        "startMs": {
                          "type": "number",
                          "minimum": 0,
                          "maximum": 3600000,
                          "description": "Start time on the sequence clock, in milliseconds."
                        },
                        "durationMs": {
                          "anyOf": [
                            {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "Clip length; null uses natural media length, zero is an instant command."
                        },
                        "sourceInMs": {
                          "type": "number",
                          "minimum": 0,
                          "description": "Source playback offset, in milliseconds; zero for commands and effects."
                        },
                        "kind": {
                          "type": "string",
                          "const": "stop-camera-motion"
                        }
                      },
                      "required": [
                        "id",
                        "startMs",
                        "durationMs",
                        "sourceInMs",
                        "kind"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "layer-visibility"
                            },
                            "visible": {
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string",
                                  "const": "toggle"
                                }
                              ],
                              "description": "Show, hide, or invert the current visibility."
                            },
                            "instanceId": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S",
                              "description": "Avatar layer ID in the scene prepared by setup actions."
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "visible",
                            "instanceId"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "\\S"
                            },
                            "startMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000,
                              "description": "Start time on the sequence clock, in milliseconds."
                            },
                            "durationMs": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 3600000
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Clip length; null uses natural media length, zero is an instant command."
                            },
                            "sourceInMs": {
                              "type": "number",
                              "minimum": 0,
                              "description": "Source playback offset, in milliseconds; zero for commands and effects."
                            },
                            "kind": {
                              "type": "string",
                              "const": "layer-visibility"
                            },
                            "visible": {
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "string",
                                  "const": "toggle"
                                }
                              ],
                              "description": "Show, hide, or invert the current visibility."
                            },
                            "target": {
                              "type": "string",
                              "const": "primary",
                              "description": "Resolve the active scene primary avatar when this action starts."
                            }
                          },
                          "required": [
                            "id",
                            "startMs",
                            "durationMs",
                            "sourceInMs",
                            "kind",
                            "visible",
                            "target"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "minLength": 1,
                          "pattern": "\\S"
                        },
                        "startMs": {
                          "type": "number",
                          "minimum": 0,
                          "maximum": 3600000,
                          "description": "Start time on the sequence clock, in milliseconds."
                        },
                        "durationMs": {
                          "anyOf": [
                            {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "Clip length; null uses natural media length, zero is an instant command."
                        },
                        "sourceInMs": {
                          "type": "number",
                          "minimum": 0,
                          "description": "Source playback offset, in milliseconds; zero for commands and effects."
                        },
                        "kind": {
                          "type": "string",
                          "const": "stream-mode"
                        },
                        "on": {
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "string",
                              "const": "toggle"
                            }
                          ],
                          "description": "Enable, disable, or invert Stream Mode."
                        }
                      },
                      "required": [
                        "id",
                        "startMs",
                        "durationMs",
                        "sourceInMs",
                        "kind",
                        "on"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "minLength": 1,
                          "pattern": "\\S"
                        },
                        "startMs": {
                          "type": "number",
                          "minimum": 0,
                          "maximum": 3600000,
                          "description": "Start time on the sequence clock, in milliseconds."
                        },
                        "durationMs": {
                          "anyOf": [
                            {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "Clip length; null uses natural media length, zero is an instant command."
                        },
                        "sourceInMs": {
                          "type": "number",
                          "minimum": 0,
                          "description": "Source playback offset, in milliseconds; zero for commands and effects."
                        },
                        "kind": {
                          "type": "string",
                          "const": "switch-scene"
                        },
                        "sceneId": {
                          "type": "string",
                          "minLength": 1,
                          "description": "Saved destination scene ID, prepared before the sequence clock starts."
                        }
                      },
                      "required": [
                        "id",
                        "startMs",
                        "durationMs",
                        "sourceInMs",
                        "kind",
                        "sceneId"
                      ],
                      "additionalProperties": false
                    }
                  ]
                },
                "description": "Timed actions share the sequence clock. Scene switches and model swaps are setup at zero. Action IDs must be unique."
              }
            },
            "required": [
              "id",
              "timelineVersion",
              "durationMs",
              "accelerator",
              "global",
              "actions"
            ],
            "additionalProperties": false
          },
          "description": "Finite automation timelines with timed actions and event triggers."
        },
        "tracking": {
          "type": "object",
          "properties": {
            "enabled": {
              "type": "boolean",
              "description": "Enable network face tracking; webcam tasks use their own switches."
            },
            "sources": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Stable source identifier used by scene model bindings."
                  },
                  "kind": {
                    "type": "string",
                    "enum": [
                      "persona-ios",
                      "ifacialmocap",
                      "vts-ios",
                      "vmc",
                      "mocopi",
                      "mediapipe",
                      "vts-ios-native"
                    ],
                    "description": "Tracking protocol. The retired vts-ios-native spelling migrates to vts-ios."
                  },
                  "name": {
                    "type": "string",
                    "description": "User label; an empty string displays the source kind label."
                  },
                  "enabled": {
                    "type": "boolean",
                    "description": "Enable this tracking source."
                  },
                  "phoneIp": {
                    "description": "Pinned face sender IP, or null to accept any unclaimed sender.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "port": {
                    "anyOf": [
                      {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 65535,
                        "description": "Network port, from 1 through 65535."
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "UDP receive port, or null for protocols with a fixed port."
                  },
                  "mediapipe": {
                    "description": "Webcam device and inference tasks; omitted fields use webcam defaults.",
                    "type": "object",
                    "properties": {
                      "deviceId": {
                        "type": "string",
                        "description": "Camera device identifier; an empty string selects the system default."
                      },
                      "mirror": {
                        "type": "boolean",
                        "description": "Mirror the webcam tracking input."
                      },
                      "face": {
                        "type": "boolean",
                        "description": "Enable webcam face tracking."
                      },
                      "hands": {
                        "type": "boolean",
                        "description": "Enable webcam hand tracking."
                      },
                      "body": {
                        "type": "boolean",
                        "description": "Enable webcam body tracking."
                      },
                      "delegate": {
                        "type": "string",
                        "enum": [
                          "CPU",
                          "GPU"
                        ],
                        "description": "Processor used for webcam inference."
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "kind"
                ],
                "additionalProperties": false,
                "description": "Configured tracking source; omitted fields are restored when settings load."
              },
              "description": "Configured face, body, and webcam sources."
            }
          },
          "additionalProperties": false,
          "description": "Network face-tracking master switch and all configured tracking sources."
        },
        "pose": {
          "type": "object",
          "properties": {
            "enabled": {
              "type": "boolean",
              "description": "Enable network body tracking; webcam tasks use their own switches."
            }
          },
          "additionalProperties": false,
          "description": "Network body-tracking master switch."
        },
        "controller": {
          "type": "object",
          "properties": {
            "enabled": {
              "type": "boolean",
              "description": "Enable controller input."
            },
            "profiles": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "slot": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "description": "Positive safe-integer profile identifier, independent of browser index."
                  },
                  "deviceId": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Controller product identifier."
                  },
                  "name": {
                    "description": "User-assigned controller label.",
                    "type": "string"
                  },
                  "deadZone": {
                    "description": "Radial stick dead zone; absent until tuned.",
                    "type": "number",
                    "minimum": 0,
                    "maximum": 0.5
                  },
                  "hardwareId": {
                    "description": "Stable device identity hash; never sent through the plugin API.",
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "slot",
                  "deviceId"
                ],
                "additionalProperties": false
              },
              "description": "Persistent numbered controller identities and tuning."
            },
            "lastProfileSlot": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991,
              "description": "Highest controller profile number allocated, including deleted profiles; prevents slot reuse."
            }
          },
          "additionalProperties": false,
          "description": "Native controller enablement and persistent device identities."
        },
        "lipSync": {
          "type": "object",
          "properties": {
            "enabled": {
              "type": "boolean",
              "description": "Enable microphone lip sync."
            },
            "deviceId": {
              "type": "string",
              "description": "Microphone device identifier; an empty string selects the system default."
            },
            "gain": {
              "type": "number",
              "minimum": 0,
              "maximum": 30,
              "description": "Microphone input gain in dB."
            },
            "noiseGate": {
              "type": "number",
              "minimum": -60,
              "maximum": 0,
              "description": "Silence threshold in dBFS."
            },
            "smoothing": {
              "type": "number",
              "minimum": 0,
              "maximum": 0.3,
              "description": "Volume and vowel smoothing in seconds."
            }
          },
          "additionalProperties": false,
          "description": "Microphone input and lip-sync analysis settings."
        },
        "lipSyncProfiles": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "deviceId": {
                "type": "string",
                "minLength": 1,
                "description": "Identifier of the calibrated microphone."
              },
              "deviceLabel": {
                "type": "string",
                "description": "Microphone label captured when calibrating."
              },
              "updatedAt": {
                "type": "number",
                "minimum": 0,
                "description": "Calibration timestamp in milliseconds since the Unix epoch."
              },
              "samples": {
                "type": "object",
                "propertyNames": {
                  "type": "string",
                  "enum": [
                    "A",
                    "I",
                    "U",
                    "E",
                    "O",
                    "S"
                  ]
                },
                "additionalProperties": {
                  "minItems": 12,
                  "maxItems": 40,
                  "type": "array",
                  "items": {
                    "minItems": 12,
                    "maxItems": 12,
                    "type": "array",
                    "items": {
                      "type": "number",
                      "description": "Finite MFCC coefficient."
                    }
                  }
                },
                "required": [
                  "A",
                  "I",
                  "U",
                  "E",
                  "O",
                  "S"
                ],
                "description": "Twelve to forty MFCC samples per phoneme, each containing twelve finite coefficients."
              }
            },
            "required": [
              "deviceId",
              "deviceLabel",
              "updatedAt",
              "samples"
            ]
          },
          "description": "Per-microphone phoneme calibration samples."
        },
        "audio": {
          "type": "object",
          "properties": {
            "outputDeviceId": {
              "type": "string",
              "description": "Audio output device ID; empty follows the system default. Applies to inventory and Live2D audio."
            }
          },
          "additionalProperties": false,
          "description": "Speaker routing for inventory playback and Live2D sounds."
        },
        "update": {
          "type": "object",
          "properties": {
            "skippedVersion": {
              "description": "Release version dismissed by the user, or null.",
              "type": [
                "string",
                "null"
              ]
            }
          },
          "additionalProperties": false,
          "description": "Application update preferences."
        },
        "telemetry": {
          "type": "object",
          "properties": {
            "errorReporting": {
              "type": "boolean",
              "description": "Allow error reports; this value is read before the settings store starts."
            }
          },
          "additionalProperties": false,
          "description": "Error-reporting preference."
        },
        "performance": {
          "type": "object",
          "properties": {
            "showFps": {
              "type": "boolean",
              "description": "Show the frame-rate overlay."
            },
            "fpsLimit": {
              "type": "number",
              "enum": [
                0,
                15,
                30,
                60,
                90
              ],
              "description": "Frame-rate limit in frames per second; 0 is unlimited."
            },
            "effectsQuality": {
              "type": "string",
              "enum": [
                "low",
                "medium",
                "high"
              ],
              "description": "Scene and layer effects quality tier."
            },
            "renderScale": {
              "type": "number",
              "enum": [
                1,
                0.85,
                0.75,
                0.66,
                0.5
              ],
              "description": "Stage render-resolution multiplier."
            }
          },
          "additionalProperties": false,
          "description": "Stage rendering quality, frame-rate limits, and performance overlays."
        },
        "api": {
          "type": "object",
          "properties": {
            "enabled": {
              "type": "boolean",
              "description": "Run the authenticated plugin WebSocket server."
            },
            "port": {
              "type": "integer",
              "minimum": 1,
              "maximum": 65535,
              "description": "TCP listening port for the plugin API."
            },
            "lan": {
              "type": "boolean",
              "description": "Listen on all network interfaces instead of loopback only."
            }
          },
          "additionalProperties": false,
          "description": "Plugin server settings. Credentials are stored in a separate file."
        },
        "hands": {
          "description": "Legacy hand settings, used only when no webcam tracking source exists.",
          "type": "object",
          "properties": {
            "enabled": {
              "description": "Legacy hand-tracking switch, migrated into a webcam source.",
              "type": "boolean"
            },
            "deviceId": {
              "description": "Legacy webcam device identifier.",
              "type": "string"
            },
            "swapHands": {
              "description": "Legacy handedness switch, migrated into the webcam mirror setting.",
              "type": "boolean"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false,
      "description": "Desktop settings. Missing fields receive defaults when the application reads the file."
    },
    "assets": {
      "description": "Desktop-only asset allowlist, separate from generic settings patches.",
      "type": "array",
      "items": {
        "type": "string",
        "description": "Absolute path to an asset approved by the desktop."
      }
    },
    "pluginFolders": {
      "description": "Desktop-only plugin search folders approved through the native directory picker.",
      "type": "array",
      "items": {
        "type": "string",
        "description": "Absolute directory approved for local plugin discovery."
      }
    }
  },
  "additionalProperties": {},
  "$id": "https://schemas.laplace.live/settings.schema.json",
  "title": "LAPLACE Persona Settings",
  "description": "Desktop settings, local asset permissions, and plugin directories. Scene data and credentials live separately."
}
