{
  "type": "object",
  "properties": {
    "audio": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "version": {
            "const": "ridley.audio/1",
            "type": "string"
          },
          "assetId": {
            "type": "string"
          },
          "displayName": {
            "type": "string"
          },
          "sha256": {
            "type": "string"
          },
          "uri": {
            "type": "string"
          },
          "byteLength": {
            "type": "number"
          },
          "mediaType": {
            "anyOf": [
              {
                "const": "audio/wav",
                "type": "string"
              },
              {
                "const": "audio/mpeg",
                "type": "string"
              }
            ]
          },
          "durationSeconds": {
            "type": "number"
          },
          "sampleRate": {
            "type": "number"
          },
          "channels": {
            "anyOf": [
              {
                "const": 1,
                "type": "number"
              },
              {
                "const": 2,
                "type": "number"
              }
            ]
          }
        },
        "required": [
          "version",
          "assetId",
          "displayName",
          "sha256",
          "uri",
          "byteLength",
          "mediaType",
          "durationSeconds",
          "sampleRate",
          "channels"
        ],
        "additionalProperties": false
      }
    },
    "schema": {
      "const": "quay.cinematic",
      "type": "string"
    },
    "version": {
      "const": "1.0.0",
      "type": "string"
    },
    "compiler": {
      "const": "ridley.compiler/1",
      "type": "string"
    },
    "worldSceneId": {
      "type": "string"
    },
    "worldSourceHash": {
      "type": "string"
    },
    "sourceHash": {
      "type": "string"
    },
    "bindings": {
      "type": "object",
      "properties": {},
      "required": [],
      "additionalProperties": {
        "type": "string"
      }
    },
    "direction": {
      "type": "object",
      "properties": {
        "schema": {
          "const": "quay.room-direction",
          "type": "string"
        },
        "version": {
          "const": "1.0.0",
          "type": "string"
        },
        "compiler": {
          "const": "ridley.direction/1",
          "type": "string"
        },
        "manual": {
          "const": "ridley.direction-manual/1",
          "type": "string"
        },
        "styleProfile": {
          "type": "object",
          "properties": {
            "styles": {
              "type": "array",
              "items": {
                "anyOf": [
                  {
                    "const": "cinematic",
                    "type": "string"
                  },
                  {
                    "const": "restrained",
                    "type": "string"
                  },
                  {
                    "const": "surreal",
                    "type": "string"
                  },
                  {
                    "const": "documentary",
                    "type": "string"
                  },
                  {
                    "const": "elegant",
                    "type": "string"
                  },
                  {
                    "const": "playful",
                    "type": "string"
                  },
                  {
                    "const": "monumental",
                    "type": "string"
                  },
                  {
                    "const": "warm",
                    "type": "string"
                  },
                  {
                    "const": "cold",
                    "type": "string"
                  },
                  {
                    "const": "technological",
                    "type": "string"
                  },
                  {
                    "const": "natural",
                    "type": "string"
                  },
                  {
                    "const": "intimate",
                    "type": "string"
                  },
                  {
                    "const": "theatrical",
                    "type": "string"
                  },
                  {
                    "const": "high-contrast",
                    "type": "string"
                  },
                  {
                    "const": "soft-contrast",
                    "type": "string"
                  }
                ]
              }
            },
            "rooms": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "room": {
                    "type": "string"
                  },
                  "intensity": {
                    "anyOf": [
                      {
                        "const": 0,
                        "type": "number"
                      },
                      {
                        "const": 1,
                        "type": "number"
                      },
                      {
                        "const": 2,
                        "type": "number"
                      },
                      {
                        "const": 3,
                        "type": "number"
                      },
                      {
                        "const": 4,
                        "type": "number"
                      }
                    ]
                  },
                  "mood": {
                    "anyOf": [
                      {
                        "const": "monumental",
                        "type": "string"
                      },
                      {
                        "const": "warm",
                        "type": "string"
                      },
                      {
                        "const": "intimate",
                        "type": "string"
                      },
                      {
                        "const": "neutral",
                        "type": "string"
                      },
                      {
                        "const": "cool",
                        "type": "string"
                      },
                      {
                        "const": "dramatic",
                        "type": "string"
                      },
                      {
                        "const": "clinical",
                        "type": "string"
                      },
                      {
                        "const": "mysterious",
                        "type": "string"
                      },
                      {
                        "const": "energetic",
                        "type": "string"
                      },
                      {
                        "const": "contemplative",
                        "type": "string"
                      }
                    ]
                  },
                  "hero": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "motion": {
                    "anyOf": [
                      {
                        "const": "restrained",
                        "type": "string"
                      },
                      {
                        "const": "none",
                        "type": "string"
                      },
                      {
                        "const": "active",
                        "type": "string"
                      }
                    ]
                  },
                  "contrast": {
                    "anyOf": [
                      {
                        "const": "natural",
                        "type": "string"
                      },
                      {
                        "const": "dramatic",
                        "type": "string"
                      },
                      {
                        "const": "soft",
                        "type": "string"
                      }
                    ]
                  }
                },
                "required": [
                  "room"
                ],
                "additionalProperties": false
              }
            }
          },
          "required": [
            "styles"
          ],
          "additionalProperties": false
        },
        "rooms": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "room": {
                "type": "string"
              },
              "intent": {
                "type": "object",
                "properties": {
                  "intensity": {
                    "anyOf": [
                      {
                        "const": 0,
                        "type": "number"
                      },
                      {
                        "const": 1,
                        "type": "number"
                      },
                      {
                        "const": 2,
                        "type": "number"
                      },
                      {
                        "const": 3,
                        "type": "number"
                      },
                      {
                        "const": 4,
                        "type": "number"
                      }
                    ]
                  },
                  "mood": {
                    "anyOf": [
                      {
                        "const": "monumental",
                        "type": "string"
                      },
                      {
                        "const": "warm",
                        "type": "string"
                      },
                      {
                        "const": "intimate",
                        "type": "string"
                      },
                      {
                        "const": "neutral",
                        "type": "string"
                      },
                      {
                        "const": "cool",
                        "type": "string"
                      },
                      {
                        "const": "dramatic",
                        "type": "string"
                      },
                      {
                        "const": "clinical",
                        "type": "string"
                      },
                      {
                        "const": "mysterious",
                        "type": "string"
                      },
                      {
                        "const": "energetic",
                        "type": "string"
                      },
                      {
                        "const": "contemplative",
                        "type": "string"
                      }
                    ]
                  },
                  "hero": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "motion": {
                    "anyOf": [
                      {
                        "const": "restrained",
                        "type": "string"
                      },
                      {
                        "const": "none",
                        "type": "string"
                      },
                      {
                        "const": "active",
                        "type": "string"
                      }
                    ]
                  },
                  "contrast": {
                    "anyOf": [
                      {
                        "const": "natural",
                        "type": "string"
                      },
                      {
                        "const": "dramatic",
                        "type": "string"
                      },
                      {
                        "const": "soft",
                        "type": "string"
                      }
                    ]
                  }
                },
                "required": [
                  "intensity",
                  "mood",
                  "hero",
                  "motion",
                  "contrast"
                ],
                "additionalProperties": false
              },
              "resolved": {
                "type": "object",
                "properties": {
                  "lightingPreset": {
                    "anyOf": [
                      {
                        "const": "monumental",
                        "type": "string"
                      },
                      {
                        "const": "warm",
                        "type": "string"
                      },
                      {
                        "const": "intimate",
                        "type": "string"
                      },
                      {
                        "const": "neutral",
                        "type": "string"
                      },
                      {
                        "const": "cool",
                        "type": "string"
                      },
                      {
                        "const": "clinical",
                        "type": "string"
                      },
                      {
                        "const": "dramatic-hero",
                        "type": "string"
                      }
                    ]
                  },
                  "atmospherePreset": {
                    "anyOf": [
                      {
                        "const": "none",
                        "type": "string"
                      },
                      {
                        "const": "subtle-depth",
                        "type": "string"
                      },
                      {
                        "const": "haze",
                        "type": "string"
                      }
                    ]
                  },
                  "postProcessingPreset": {
                    "anyOf": [
                      {
                        "const": "cinematic",
                        "type": "string"
                      },
                      {
                        "const": "minimal",
                        "type": "string"
                      },
                      {
                        "const": "balanced",
                        "type": "string"
                      },
                      {
                        "const": "hero",
                        "type": "string"
                      }
                    ]
                  },
                  "cameraEntryPreset": {
                    "anyOf": [
                      {
                        "const": "none",
                        "type": "string"
                      },
                      {
                        "const": "settle",
                        "type": "string"
                      },
                      {
                        "const": "slow-reveal",
                        "type": "string"
                      },
                      {
                        "const": "hero-reveal",
                        "type": "string"
                      }
                    ]
                  },
                  "explorationPreset": {
                    "const": "free-stable",
                    "type": "string"
                  },
                  "ambientMotion": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "performance": {
                    "type": "object",
                    "properties": {
                      "cinematicHigh": {
                        "anyOf": [
                          {
                            "const": "minimal",
                            "type": "string"
                          },
                          {
                            "const": "balanced",
                            "type": "string"
                          },
                          {
                            "const": "high",
                            "type": "string"
                          }
                        ]
                      },
                      "balanced": {
                        "anyOf": [
                          {
                            "const": "minimal",
                            "type": "string"
                          },
                          {
                            "const": "balanced",
                            "type": "string"
                          },
                          {
                            "const": "high",
                            "type": "string"
                          }
                        ]
                      },
                      "performance": {
                        "anyOf": [
                          {
                            "const": "minimal",
                            "type": "string"
                          },
                          {
                            "const": "balanced",
                            "type": "string"
                          },
                          {
                            "const": "high",
                            "type": "string"
                          }
                        ]
                      }
                    },
                    "required": [
                      "cinematicHigh",
                      "balanced",
                      "performance"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "lightingPreset",
                  "atmospherePreset",
                  "postProcessingPreset",
                  "cameraEntryPreset",
                  "explorationPreset",
                  "ambientMotion",
                  "performance"
                ],
                "additionalProperties": false
              },
              "rules": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "event": {
                      "anyOf": [
                        {
                          "const": "wright.room.enter",
                          "type": "string"
                        },
                        {
                          "const": "wright.room.leave",
                          "type": "string"
                        },
                        {
                          "const": "qway.object.near",
                          "type": "string"
                        },
                        {
                          "const": "ridley.dialogue.start",
                          "type": "string"
                        },
                        {
                          "const": "ridley.dialogue.end",
                          "type": "string"
                        }
                      ]
                    },
                    "target": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "string"
                        }
                      ]
                    },
                    "preset": {
                      "anyOf": [
                        {
                          "const": "hero",
                          "type": "string"
                        },
                        {
                          "const": "entry",
                          "type": "string"
                        },
                        {
                          "const": "exploration",
                          "type": "string"
                        },
                        {
                          "const": "dialogue",
                          "type": "string"
                        },
                        {
                          "const": "exit",
                          "type": "string"
                        }
                      ]
                    },
                    "once": {
                      "anyOf": [
                        {
                          "const": false,
                          "type": "boolean"
                        },
                        {
                          "const": true,
                          "type": "boolean"
                        }
                      ]
                    }
                  },
                  "required": [
                    "id",
                    "event",
                    "target",
                    "preset",
                    "once"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "required": [
              "room",
              "intent",
              "resolved",
              "rules"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "schema",
        "version",
        "compiler",
        "manual",
        "styleProfile",
        "rooms"
      ],
      "additionalProperties": false
    },
    "sequences": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "duration": {
            "type": "number"
          },
          "cues": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "start": {
                      "type": "number"
                    },
                    "duration": {
                      "type": "number"
                    },
                    "span": {
                      "type": "object",
                      "properties": {
                        "start": {
                          "type": "number"
                        },
                        "end": {
                          "type": "number"
                        },
                        "line": {
                          "type": "number"
                        },
                        "column": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "start",
                        "end",
                        "line",
                        "column"
                      ],
                      "additionalProperties": false
                    },
                    "kind": {
                      "const": "shot",
                      "type": "string"
                    },
                    "type": {
                      "anyOf": [
                        {
                          "const": "extreme-closeup",
                          "type": "string"
                        },
                        {
                          "const": "closeup",
                          "type": "string"
                        },
                        {
                          "const": "medium-closeup",
                          "type": "string"
                        },
                        {
                          "const": "medium",
                          "type": "string"
                        },
                        {
                          "const": "american",
                          "type": "string"
                        },
                        {
                          "const": "full",
                          "type": "string"
                        },
                        {
                          "const": "long",
                          "type": "string"
                        },
                        {
                          "const": "extreme-long",
                          "type": "string"
                        },
                        {
                          "const": "two-shot",
                          "type": "string"
                        },
                        {
                          "const": "over-the-shoulder",
                          "type": "string"
                        },
                        {
                          "const": "pov",
                          "type": "string"
                        },
                        {
                          "const": "establishing",
                          "type": "string"
                        },
                        {
                          "const": "insert",
                          "type": "string"
                        }
                      ]
                    },
                    "subjects": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "shoulder": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "string"
                        }
                      ]
                    },
                    "movement": {
                      "anyOf": [
                        {
                          "const": "static",
                          "type": "string"
                        },
                        {
                          "const": "pan",
                          "type": "string"
                        },
                        {
                          "const": "tilt",
                          "type": "string"
                        },
                        {
                          "const": "dolly",
                          "type": "string"
                        },
                        {
                          "const": "truck",
                          "type": "string"
                        },
                        {
                          "const": "pedestal",
                          "type": "string"
                        },
                        {
                          "const": "orbit",
                          "type": "string"
                        },
                        {
                          "const": "zoom",
                          "type": "string"
                        },
                        {
                          "const": "follow",
                          "type": "string"
                        },
                        {
                          "const": "crane",
                          "type": "string"
                        }
                      ]
                    },
                    "amount": {
                      "type": "number"
                    },
                    "transition": {
                      "anyOf": [
                        {
                          "const": "cut",
                          "type": "string"
                        },
                        {
                          "const": "smooth",
                          "type": "string"
                        }
                      ]
                    }
                  },
                  "required": [
                    "id",
                    "start",
                    "duration",
                    "span",
                    "kind",
                    "type",
                    "subjects",
                    "shoulder",
                    "movement",
                    "amount",
                    "transition"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "start": {
                      "type": "number"
                    },
                    "duration": {
                      "type": "number"
                    },
                    "span": {
                      "type": "object",
                      "properties": {
                        "start": {
                          "type": "number"
                        },
                        "end": {
                          "type": "number"
                        },
                        "line": {
                          "type": "number"
                        },
                        "column": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "start",
                        "end",
                        "line",
                        "column"
                      ],
                      "additionalProperties": false
                    },
                    "kind": {
                      "anyOf": [
                        {
                          "const": "dialogue",
                          "type": "string"
                        },
                        {
                          "const": "subtitle",
                          "type": "string"
                        },
                        {
                          "const": "narration",
                          "type": "string"
                        }
                      ]
                    },
                    "actor": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "string"
                        }
                      ]
                    },
                    "text": {
                      "type": "string"
                    },
                    "speech": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "model",
                        "voice",
                        "language",
                        "instructions",
                        "speed"
                      ],
                      "properties": {
                        "model": {
                          "const": "gpt-4o-mini-tts-2025-12-15",
                          "type": "string"
                        },
                        "voice": {
                          "enum": [
                            "alloy",
                            "ash",
                            "ballad",
                            "coral",
                            "echo",
                            "fable",
                            "nova",
                            "onyx",
                            "sage",
                            "shimmer",
                            "verse",
                            "marin",
                            "cedar"
                          ],
                          "type": "string"
                        },
                        "language": {
                          "type": "string",
                          "pattern": "^[a-z]{2,3}(-[A-Za-z]{2,8})?$"
                        },
                        "instructions": {
                          "type": "string",
                          "maxLength": 2000
                        },
                        "speed": {
                          "type": "number",
                          "minimum": 0.25,
                          "maximum": 4
                        }
                      }
                    },
                    "speechAudio": {
                      "type": "string",
                      "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[1-8][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$"
                    }
                  },
                  "required": [
                    "id",
                    "start",
                    "duration",
                    "span",
                    "kind",
                    "actor",
                    "text"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "start": {
                      "type": "number"
                    },
                    "duration": {
                      "type": "number"
                    },
                    "span": {
                      "type": "object",
                      "properties": {
                        "start": {
                          "type": "number"
                        },
                        "end": {
                          "type": "number"
                        },
                        "line": {
                          "type": "number"
                        },
                        "column": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "start",
                        "end",
                        "line",
                        "column"
                      ],
                      "additionalProperties": false
                    },
                    "kind": {
                      "const": "action",
                      "type": "string"
                    },
                    "actor": {
                      "type": "string"
                    },
                    "action": {
                      "anyOf": [
                        {
                          "const": "look-at",
                          "type": "string"
                        },
                        {
                          "const": "move-to",
                          "type": "string"
                        },
                        {
                          "const": "animate",
                          "type": "string"
                        }
                      ]
                    },
                    "target": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "string"
                        }
                      ]
                    },
                    "clip": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "number"
                        }
                      ]
                    },
                    "persistence": {
                      "anyOf": [
                        {
                          "const": "temporary",
                          "type": "string"
                        },
                        {
                          "const": "runtime",
                          "type": "string"
                        }
                      ]
                    }
                  },
                  "required": [
                    "id",
                    "start",
                    "duration",
                    "span",
                    "kind",
                    "actor",
                    "action",
                    "target",
                    "clip",
                    "persistence"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "start": {
                      "type": "number"
                    },
                    "duration": {
                      "type": "number"
                    },
                    "span": {
                      "type": "object",
                      "properties": {
                        "start": {
                          "type": "number"
                        },
                        "end": {
                          "type": "number"
                        },
                        "line": {
                          "type": "number"
                        },
                        "column": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "start",
                        "end",
                        "line",
                        "column"
                      ],
                      "additionalProperties": false
                    },
                    "kind": {
                      "const": "emit",
                      "type": "string"
                    },
                    "event": {
                      "type": "string"
                    },
                    "target": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "string"
                        }
                      ]
                    }
                  },
                  "required": [
                    "id",
                    "start",
                    "duration",
                    "span",
                    "kind",
                    "event",
                    "target"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "start": {
                      "type": "number"
                    },
                    "duration": {
                      "type": "number"
                    },
                    "span": {
                      "type": "object",
                      "properties": {
                        "start": {
                          "type": "number"
                        },
                        "end": {
                          "type": "number"
                        },
                        "line": {
                          "type": "number"
                        },
                        "column": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "start",
                        "end",
                        "line",
                        "column"
                      ],
                      "additionalProperties": false
                    },
                    "kind": {
                      "const": "music",
                      "type": "string"
                    },
                    "command": {
                      "type": "object",
                      "properties": {
                        "action": {
                          "anyOf": [
                            {
                              "const": "play",
                              "type": "string"
                            },
                            {
                              "const": "stop",
                              "type": "string"
                            },
                            {
                              "const": "crossfade",
                              "type": "string"
                            }
                          ]
                        },
                        "assetId": {
                          "type": "string"
                        },
                        "from": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "type": "string"
                            }
                          ]
                        },
                        "volume": {
                          "type": "number"
                        },
                        "fade": {
                          "type": "number"
                        },
                        "loop": {
                          "anyOf": [
                            {
                              "const": false,
                              "type": "boolean"
                            },
                            {
                              "const": true,
                              "type": "boolean"
                            }
                          ]
                        }
                      },
                      "required": [
                        "action",
                        "assetId",
                        "from",
                        "volume",
                        "fade",
                        "loop"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "id",
                    "start",
                    "duration",
                    "span",
                    "kind",
                    "command"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "start": {
                      "type": "number"
                    },
                    "duration": {
                      "type": "number"
                    },
                    "span": {
                      "type": "object",
                      "properties": {
                        "start": {
                          "type": "number"
                        },
                        "end": {
                          "type": "number"
                        },
                        "line": {
                          "type": "number"
                        },
                        "column": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "start",
                        "end",
                        "line",
                        "column"
                      ],
                      "additionalProperties": false
                    },
                    "kind": {
                      "const": "sfx",
                      "type": "string"
                    },
                    "assetId": {
                      "type": "string"
                    },
                    "spatial": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "string"
                        }
                      ]
                    },
                    "volume": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "id",
                    "start",
                    "duration",
                    "span",
                    "kind",
                    "assetId",
                    "spatial",
                    "volume"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "start": {
                      "type": "number"
                    },
                    "duration": {
                      "type": "number"
                    },
                    "span": {
                      "type": "object",
                      "properties": {
                        "start": {
                          "type": "number"
                        },
                        "end": {
                          "type": "number"
                        },
                        "line": {
                          "type": "number"
                        },
                        "column": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "start",
                        "end",
                        "line",
                        "column"
                      ],
                      "additionalProperties": false
                    },
                    "kind": {
                      "const": "return",
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "start",
                    "duration",
                    "span",
                    "kind"
                  ],
                  "additionalProperties": false
                }
              ]
            }
          }
        },
        "required": [
          "id",
          "duration",
          "cues"
        ],
        "additionalProperties": false
      }
    },
    "triggers": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "subject": {
            "type": "string"
          },
          "target": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "event": {
            "anyOf": [
              {
                "const": "near",
                "type": "string"
              },
              {
                "const": "qway.object.enter",
                "type": "string"
              },
              {
                "const": "qway.object.leave",
                "type": "string"
              },
              {
                "const": "qway.relation.changed",
                "type": "string"
              },
              {
                "const": "qway.interaction",
                "type": "string"
              },
              {
                "const": "qway.trigger",
                "type": "string"
              },
              {
                "const": "ridley.complete",
                "type": "string"
              }
            ]
          },
          "distance": {
            "type": "number"
          },
          "cinematic": {
            "type": "string"
          },
          "once": {
            "anyOf": [
              {
                "const": false,
                "type": "boolean"
              },
              {
                "const": true,
                "type": "boolean"
              }
            ]
          }
        },
        "required": [
          "id",
          "subject",
          "target",
          "event",
          "distance",
          "cinematic",
          "once"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "schema",
    "version",
    "compiler",
    "worldSceneId",
    "worldSourceHash",
    "sourceHash",
    "bindings",
    "sequences",
    "triggers"
  ],
  "additionalProperties": false
}