❓ QWAY Studio HelpQWAY · WRIGHT · RIDLEY · RAMS

Data contracts and versions

Contract boundaries

The authoring project envelope is not a runtime scene. SceneDocumentV2 contains semantic state and a static projection. The nested projection retains its existing schema format; this is not a second editor or supported v1 authoring workflow. Validators at API and browser boundaries check structure and cross-reference rules. JSON Schema alone does not prove geometry or licensing.

Each complete schema below is copied from the repository. Required properties, enums, units, maximums and immutable version constants are normative for this build. Use the runtime validators as well as these structural schemas.

archetype.schema.json

Download archetype.schema.json

Root propertyRequiredConstraint
schemayes{"const":"quay.archetype","type":"string"}
schemaVersionyes{"const":"1.0.0","type":"string"}
profileIdyes{"type":"string"}
revisionyes{"type":"number"}
parentIdyes{"anyOf":[{"type":"null"},{"type":"string"}]}
semanticClassyes{"type":"string"}
statusyes{"anyOf":[{"const":"suggested","type":"string"},{"const":"accepted","type":"string"},{"const":"rejected","type":"string"},{"const":"user-corrected","type":"string"}]}
dimensionsyes{"type":"object","properties":{"width":{"anyOf":[{"type":"null"},{"type":"object","properties":{"minM":{"type":"number"},"typicalM":{"type":"number"},"maxM":{"type":"number"},"reference":{"anyOf":[{"const":"whole-bounds","type":"string"},{"const":"withers","type":"string"},{"const":"seat","type":"string"},{"const":"worktop","type":"string"},{"const":"opening","type":"string"}]}},"required":["minM","typicalM","maxM","reference"],"additionalProperties":false}]},"height":{"anyOf":[{"type":"null"},{"type":"object","properties":{"minM":{"type":"number"},"typicalM":{"type":"number"},"maxM":{"type":"number"},"reference":{"anyOf":[{"const":"whole-bounds","type":"string"},{"const":"withers","type":"string"},{"const":"seat","type":"string"},{"const":"worktop","type":"string"},{"const":"opening","type":"string"}]}},"required":["minM","typicalM","maxM","reference"],"additionalProperties":false}]},"depth":{"anyOf":[{"type":"null"},{"type":"object","properties":{"minM":{"type":"number"},"typicalM":{"type":"number"},"maxM":{"type":"number"},"reference":{"anyOf":[{"const":"whole-bounds","type":"string"},{"const":"withers","type":"string"},{"const":"seat","type":"string"},{"const":"worktop","type":"string"},{"const":"opening","type":"string"}]}},"required":["minM","typicalM","maxM","reference"],"additionalProperties":false}]}},"required":["width","height","depth"],"additionalProperties":false}
preferredDimensionyes{"anyOf":[{"type":"null"},{"const":"width","type":"string"},{"const":"height","type":"string"},{"const":"depth","type":"string"}]}
groundingyes{"anyOf":[{"const":"floor","type":"string"},{"const":"support","type":"string"},{"const":"architectural","type":"string"},{"const":"unknown","type":"string"}]}
orientationyes{"type":"object","properties":{"up":{"anyOf":[{"type":"null"},{"const":"+Y","type":"string"},{"const":"+Z","type":"string"},{"const":"+X","type":"string"},{"const":"-Y","type":"string"},{"const":"-Z","type":"string"},{"const":"-X","type":"string"}]},"forward":{"anyOf":[{"type":"null"},{"const":"+Z","type":"string"},{"const":"+X","type":"string"},{"const":"-Z","type":"string"},{"const":"-X","type":"string"}]}},"required":["up","forward"],"additionalProperties":false}
affordancesyes{"type":"array","items":{"type":"string"}}
clearancesyes{"type":"object","properties":{"usableSideM":{"anyOf":[{"type":"null"},{"type":"number"}]},"circulationM":{"anyOf":[{"type":"null"},{"type":"number"}]}},"required":["usableSideM","circulationM"],"additionalProperties":false}
relationHintsyes{"type":"array","items":{"type":"string"}}
provenanceyes{"type":"object","properties":{"source":{"anyOf":[{"const":"curated","type":"string"},{"const":"standard","type":"string"},{"const":"ai_inferred","type":"string"},{"const":"user_confirmed","type":"string"},{"const":"project_specific","type":"string"}]},"producer":{"type":"string"},"model":{"anyOf":[{"type":"null"},{"type":"string"}]},"inferenceVersion":{"type":"string"},"requestedClass":{"anyOf":[{"type":"null"},{"type":"string"}]},"confidence":{"type":"number"},"createdAt":{"type":"string"},"evidence":{"type":"array","items":{"type":"string"}}},"required":["source","producer","model","inferenceVersion","requestedClass","confidence","createdAt","evidence"],"additionalProperties":false}
Complete schema including nested definitions
JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "schema": {
      "const": "quay.archetype",
      "type": "string"
    },
    "schemaVersion": {
      "const": "1.0.0",
      "type": "string"
    },
    "profileId": {
      "type": "string"
    },
    "revision": {
      "type": "number"
    },
    "parentId": {
      "anyOf": [
        {
          "type": "null"
        },
        {
          "type": "string"
        }
      ]
    },
    "semanticClass": {
      "type": "string"
    },
    "status": {
      "anyOf": [
        {
          "const": "suggested",
          "type": "string"
        },
        {
          "const": "accepted",
          "type": "string"
        },
        {
          "const": "rejected",
          "type": "string"
        },
        {
          "const": "user-corrected",
          "type": "string"
        }
      ]
    },
    "dimensions": {
      "type": "object",
      "properties": {
        "width": {
          "anyOf": [
            {
              "type": "null"
            },
            {
              "type": "object",
              "properties": {
                "minM": {
                  "type": "number"
                },
                "typicalM": {
                  "type": "number"
                },
                "maxM": {
                  "type": "number"
                },
                "reference": {
                  "anyOf": [
                    {
                      "const": "whole-bounds",
                      "type": "string"
                    },
                    {
                      "const": "withers",
                      "type": "string"
                    },
                    {
                      "const": "seat",
                      "type": "string"
                    },
                    {
                      "const": "worktop",
                      "type": "string"
                    },
                    {
                      "const": "opening",
                      "type": "string"
                    }
                  ]
                }
              },
              "required": [
                "minM",
                "typicalM",
                "maxM",
                "reference"
              ],
              "additionalProperties": false
            }
          ]
        },
        "height": {
          "anyOf": [
            {
              "type": "null"
            },
            {
              "type": "object",
              "properties": {
                "minM": {
                  "type": "number"
                },
                "typicalM": {
                  "type": "number"
                },
                "maxM": {
                  "type": "number"
                },
                "reference": {
                  "anyOf": [
                    {
                      "const": "whole-bounds",
                      "type": "string"
                    },
                    {
                      "const": "withers",
                      "type": "string"
                    },
                    {
                      "const": "seat",
                      "type": "string"
                    },
                    {
                      "const": "worktop",
                      "type": "string"
                    },
                    {
                      "const": "opening",
                      "type": "string"
                    }
                  ]
                }
              },
              "required": [
                "minM",
                "typicalM",
                "maxM",
                "reference"
              ],
              "additionalProperties": false
            }
          ]
        },
        "depth": {
          "anyOf": [
            {
              "type": "null"
            },
            {
              "type": "object",
              "properties": {
                "minM": {
                  "type": "number"
                },
                "typicalM": {
                  "type": "number"
                },
                "maxM": {
                  "type": "number"
                },
                "reference": {
                  "anyOf": [
                    {
                      "const": "whole-bounds",
                      "type": "string"
                    },
                    {
                      "const": "withers",
                      "type": "string"
                    },
                    {
                      "const": "seat",
                      "type": "string"
                    },
                    {
                      "const": "worktop",
                      "type": "string"
                    },
                    {
                      "const": "opening",
                      "type": "string"
                    }
                  ]
                }
              },
              "required": [
                "minM",
                "typicalM",
                "maxM",
                "reference"
              ],
              "additionalProperties": false
            }
          ]
        }
      },
      "required": [
        "width",
        "height",
        "depth"
      ],
      "additionalProperties": false
    },
    "preferredDimension": {
      "anyOf": [
        {
          "type": "null"
        },
        {
          "const": "width",
          "type": "string"
        },
        {
          "const": "height",
          "type": "string"
        },
        {
          "const": "depth",
          "type": "string"
        }
      ]
    },
    "grounding": {
      "anyOf": [
        {
          "const": "floor",
          "type": "string"
        },
        {
          "const": "support",
          "type": "string"
        },
        {
          "const": "architectural",
          "type": "string"
        },
        {
          "const": "unknown",
          "type": "string"
        }
      ]
    },
    "orientation": {
      "type": "object",
      "properties": {
        "up": {
          "anyOf": [
            {
              "type": "null"
            },
            {
              "const": "+Y",
              "type": "string"
            },
            {
              "const": "+Z",
              "type": "string"
            },
            {
              "const": "+X",
              "type": "string"
            },
            {
              "const": "-Y",
              "type": "string"
            },
            {
              "const": "-Z",
              "type": "string"
            },
            {
              "const": "-X",
              "type": "string"
            }
          ]
        },
        "forward": {
          "anyOf": [
            {
              "type": "null"
            },
            {
              "const": "+Z",
              "type": "string"
            },
            {
              "const": "+X",
              "type": "string"
            },
            {
              "const": "-Z",
              "type": "string"
            },
            {
              "const": "-X",
              "type": "string"
            }
          ]
        }
      },
      "required": [
        "up",
        "forward"
      ],
      "additionalProperties": false
    },
    "affordances": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "clearances": {
      "type": "object",
      "properties": {
        "usableSideM": {
          "anyOf": [
            {
              "type": "null"
            },
            {
              "type": "number"
            }
          ]
        },
        "circulationM": {
          "anyOf": [
            {
              "type": "null"
            },
            {
              "type": "number"
            }
          ]
        }
      },
      "required": [
        "usableSideM",
        "circulationM"
      ],
      "additionalProperties": false
    },
    "relationHints": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "provenance": {
      "type": "object",
      "properties": {
        "source": {
          "anyOf": [
            {
              "const": "curated",
              "type": "string"
            },
            {
              "const": "standard",
              "type": "string"
            },
            {
              "const": "ai_inferred",
              "type": "string"
            },
            {
              "const": "user_confirmed",
              "type": "string"
            },
            {
              "const": "project_specific",
              "type": "string"
            }
          ]
        },
        "producer": {
          "type": "string"
        },
        "model": {
          "anyOf": [
            {
              "type": "null"
            },
            {
              "type": "string"
            }
          ]
        },
        "inferenceVersion": {
          "type": "string"
        },
        "requestedClass": {
          "anyOf": [
            {
              "type": "null"
            },
            {
              "type": "string"
            }
          ]
        },
        "confidence": {
          "type": "number"
        },
        "createdAt": {
          "type": "string"
        },
        "evidence": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "source",
        "producer",
        "model",
        "inferenceVersion",
        "requestedClass",
        "confidence",
        "createdAt",
        "evidence"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "schema",
    "schemaVersion",
    "profileId",
    "revision",
    "parentId",
    "semanticClass",
    "status",
    "dimensions",
    "preferredDimension",
    "grounding",
    "orientation",
    "affordances",
    "clearances",
    "relationHints",
    "provenance"
  ],
  "additionalProperties": false
}

asset-analysis.schema.json

Download asset-analysis.schema.json

Root propertyRequiredConstraint
schemayes{"const":"quay.asset-analysis","type":"string"}
schemaVersionyes{"const":"2.0.0-draft.2","type":"string"}
revisionyes{"type":"string"}
contentyes{"type":"object","properties":{"sha256":{"type":"string"},"byteLength":{"type":"number"}},"required":["sha256","byteLength"],"additionalProperties":false}
analyzeryes{"type":"object","properties":{"version":{"type":"string"},"threeVersion":{"type":"string"},"policy":{"type":"string"}},"required":["version","threeVersion","policy"],"additionalProperties":false}
coordinatesyes{"type":"object","properties":{"units":{"const":"metres","type":"string"},"up":{"const":"+Y","type":"string"},"authoredForward":{"const":"unknown","type":"string"}},"required":["units","up","authoredForward"],"additionalProperties":false}
validationyes{"type":"object","properties":{"container":{"const":"passed","type":"string"},"loader":{"const":"passed","type":"string"},"khronosValidator":{"anyOf":[{"const":"not-run","type":"string"},{"type":"object","properties":{"producer":{"const":"Khronos glTF Validator","type":"string"},"version":{"type":"string"},"maxIssues":{"type":"number"},"errors":{"type":"number"},"warnings":{"type":"number"},"infos":{"type":"number"},"hints":{"type":"number"},"truncated":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"messages":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"pointer":{"type":"string"},"severity":{"type":"number"}},"required":["code","pointer","severity"],"additionalProperties":false}}},"required":["producer","version","maxIssues","errors","warnings","infos","hints","truncated","messages"],"additionalProperties":false}]}},"required":["container","loader","khronosValidator"],"additionalProperties":false}
inventoryyes{"type":"object","properties":{"scenes":{"type":"number"},"nodes":{"type":"number"},"meshes":{"type":"number"},"primitives":{"type":"number"},"materials":{"type":"number"},"textures":{"type":"number"},"skins":{"type":"number"},"morphTargets":{"type":"number"},"animations":{"type":"array","items":{"type":"object","properties":{"name":{"anyOf":[{"type":"null"},{"type":"string"}]},"channels":{"type":"number"}},"required":["name","channels"],"additionalProperties":false}}},"required":["scenes","nodes","meshes","primitives","materials","textures","skins","morphTargets","animations"],"additionalProperties":false}
geometryyes{"type":"object","properties":{"bounds":{"anyOf":[{"type":"null"},{"type":"object","properties":{"min":{"type":"array","items":{"type":"number"}},"max":{"type":"array","items":{"type":"number"}}},"required":["min","max"],"additionalProperties":false}]},"nodes":{"type":"array","items":{"type":"object","properties":{"nodeIndex":{"anyOf":[{"type":"null"},{"type":"number"}]},"name":{"anyOf":[{"type":"null"},{"type":"string"}]},"localMatrix":{"type":"array","items":{"type":"number"}},"worldMatrix":{"type":"array","items":{"type":"number"}},"bounds":{"anyOf":[{"type":"null"},{"type":"object","properties":{"min":{"type":"array","items":{"type":"number"}},"max":{"type":"array","items":{"type":"number"}}},"required":["min","max"],"additionalProperties":false}]},"localBounds":{"anyOf":[{"type":"null"},{"type":"object","properties":{"min":{"type":"array","items":{"type":"number"}},"max":{"type":"array","items":{"type":"number"}}},"required":["min","max"],"additionalProperties":false}]},"aggregateBounds":{"anyOf":[{"type":"null"},{"type":"object","properties":{"min":{"type":"array","items":{"type":"number"}},"max":{"type":"array","items":{"type":"number"}}},"required":["min","max"],"additionalProperties":false}]}},"required":["nodeIndex","name","localMatrix","worldMatrix","bounds","localBounds","aggregateBounds"],"additionalProperties":false}},"meshes":{"type":"array","items":{"type":"object","properties":{"gltfMeshIndex":{"anyOf":[{"type":"null"},{"type":"number"}]},"primitiveIndex":{"anyOf":[{"type":"null"},{"type":"number"}]},"name":{"anyOf":[{"type":"null"},{"type":"string"}]},"vertices":{"type":"number"},"triangles":{"type":"number"},"skinned":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"morphTargets":{"type":"number"},"bounds":{"anyOf":[{"type":"null"},{"type":"object","properties":{"min":{"type":"array","items":{"type":"number"}},"max":{"type":"array","items":{"type":"number"}}},"required":["min","max"],"additionalProperties":false}]}},"required":["gltfMeshIndex","primitiveIndex","name","vertices","triangles","skinned","morphTargets","bounds"],"additionalProperties":false}}},"required":["bounds","nodes","meshes"],"additionalProperties":false}
featureAvailabilityyes{"type":"object","properties":{"supportSurfaces":{"anyOf":[{"const":"not-analyzed","type":"string"},{"const":"analyzed","type":"string"},{"const":"partial","type":"string"},{"const":"unsupported","type":"string"}]},"contactRegions":{"anyOf":[{"const":"not-analyzed","type":"string"},{"const":"analyzed","type":"string"},{"const":"partial","type":"string"},{"const":"unsupported","type":"string"}]},"components":{"anyOf":[{"const":"not-analyzed","type":"string"},{"const":"analyzed","type":"string"},{"const":"partial","type":"string"},{"const":"unsupported","type":"string"}]},"cavities":{"anyOf":[{"const":"not-analyzed","type":"string"},{"const":"analyzed","type":"string"},{"const":"partial","type":"string"},{"const":"unsupported","type":"string"}]},"openings":{"anyOf":[{"const":"not-analyzed","type":"string"},{"const":"analyzed","type":"string"},{"const":"partial","type":"string"},{"const":"unsupported","type":"string"}]},"handles":{"anyOf":[{"const":"not-analyzed","type":"string"},{"const":"analyzed","type":"string"},{"const":"partial","type":"string"},{"const":"unsupported","type":"string"}]},"orientation":{"anyOf":[{"const":"not-analyzed","type":"string"},{"const":"analyzed","type":"string"},{"const":"partial","type":"string"},{"const":"unsupported","type":"string"}]},"colliders":{"anyOf":[{"const":"not-analyzed","type":"string"},{"const":"analyzed","type":"string"},{"const":"partial","type":"string"},{"const":"unsupported","type":"string"}]}},"required":["supportSurfaces","contactRegions","components","cavities","openings","handles","orientation","colliders"],"additionalProperties":false}
planarPatchesyes{"type":"array","items":{"type":"object","properties":{"featureId":{"type":"string"},"meshIndex":{"type":"number"},"faceIndices":{"type":"array","items":{"type":"number"}},"faceIndicesComplete":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"normal":{"type":"array","items":{"type":"number"}},"bounds":{"type":"object","properties":{"min":{"type":"array","items":{"type":"number"}},"max":{"type":"array","items":{"type":"number"}}},"required":["min","max"],"additionalProperties":false},"areaM2":{"type":"number"},"purposeCandidate":{"anyOf":[{"const":"support","type":"string"},{"const":"contact","type":"string"},{"const":"other","type":"string"}]},"evidence":{"const":"measured-coplanar-edge-connected-triangles","type":"string"},"weldToleranceM":{"type":"number"},"planeToleranceM":{"type":"number"},"surfaceFrame":{"type":"object","properties":{"version":{"const":"orthonormal-v1","type":"string"},"localToAsset":{"type":"array","items":{"type":"number"}}},"required":["version","localToAsset"],"additionalProperties":false}},"required":["featureId","meshIndex","faceIndices","faceIndicesComplete","normal","bounds","areaM2","purposeCandidate","evidence","weldToleranceM","planeToleranceM"],"additionalProperties":false}}
componentsyes{"type":"array","items":{"type":"object","properties":{"featureId":{"type":"string"},"meshIndex":{"type":"number"},"triangleCount":{"type":"number"},"areaM2":{"type":"number"},"bounds":{"type":"object","properties":{"min":{"type":"array","items":{"type":"number"}},"max":{"type":"array","items":{"type":"number"}}},"required":["min","max"],"additionalProperties":false},"topology":{"anyOf":[{"const":"closed-oriented-at-weld-tolerance","type":"string"},{"const":"open-or-nonmanifold","type":"string"}]},"weldToleranceM":{"type":"number"}},"required":["featureId","meshIndex","triangleCount","areaM2","bounds","topology","weldToleranceM"],"additionalProperties":false}}
interpretationyes{"type":"object","properties":{"status":{"const":"unknown","type":"string"},"producer":{"const":"none","type":"string"}},"required":["status","producer"],"additionalProperties":false}
authoredyes{"type":"object","properties":{"defaultScene":{"type":"number"},"scenes":{"type":"array","items":{"type":"object","properties":{"sceneIndex":{"type":"number"},"name":{"anyOf":[{"type":"null"},{"type":"string"}]},"roots":{"type":"array","items":{"type":"number"}}},"required":["sceneIndex","name","roots"],"additionalProperties":false}},"nodes":{"type":"array","items":{"type":"object","properties":{"nodeIndex":{"type":"number"},"name":{"anyOf":[{"type":"null"},{"type":"string"}]},"children":{"type":"array","items":{"type":"number"}},"mesh":{"anyOf":[{"type":"null"},{"type":"number"}]},"skin":{"anyOf":[{"type":"null"},{"type":"number"}]},"matrix":{"anyOf":[{"type":"null"},{"type":"array","items":{"type":"number"}}]},"translation":{"anyOf":[{"type":"null"},{"type":"array","items":{"type":"number"}}]},"rotation":{"anyOf":[{"type":"null"},{"type":"array","items":{"type":"number"}}]},"scale":{"anyOf":[{"type":"null"},{"type":"array","items":{"type":"number"}}]},"weights":{"anyOf":[{"type":"null"},{"type":"array","items":{"type":"number"}}]}},"required":["nodeIndex","name","children","mesh","skin","matrix","translation","rotation","scale","weights"],"additionalProperties":false}},"meshes":{"type":"array","items":{"type":"object","properties":{"meshIndex":{"type":"number"},"name":{"anyOf":[{"type":"null"},{"type":"string"}]},"weights":{"anyOf":[{"type":"null"},{"type":"array","items":{"type":"number"}}]},"primitives":{"type":"array","items":{"type":"object","properties":{"primitiveIndex":{"type":"number"},"mode":{"type":"number"},"indices":{"anyOf":[{"type":"null"},{"type":"number"}]},"material":{"anyOf":[{"type":"null"},{"type":"number"}]},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":{"anyOf":[{"type":"null"},{"type":"number"}]}},"morphTargets":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":{"anyOf":[{"type":"null"},{"type":"number"}]}}}},"required":["primitiveIndex","mode","indices","material","attributes","morphTargets"],"additionalProperties":false}}},"required":["meshIndex","name","weights","primitives"],"additionalProperties":false}},"accessors":{"type":"array","items":{"type":"object","properties":{"accessorIndex":{"type":"number"},"bufferView":{"anyOf":[{"type":"null"},{"type":"number"}]},"byteOffset":{"type":"number"},"componentType":{"anyOf":[{"type":"null"},{"type":"number"}]},"count":{"anyOf":[{"type":"null"},{"type":"number"}]},"type":{"anyOf":[{"type":"null"},{"type":"string"}]},"normalized":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"min":{"anyOf":[{"type":"null"},{"type":"array","items":{"type":"number"}}]},"max":{"anyOf":[{"type":"null"},{"type":"array","items":{"type":"number"}}]},"sparseCount":{"anyOf":[{"type":"null"},{"type":"number"}]}},"required":["accessorIndex","bufferView","byteOffset","componentType","count","type","normalized","min","max","sparseCount"],"additionalProperties":false}},"materials":{"type":"array","items":{"type":"object","properties":{"materialIndex":{"type":"number"},"name":{"anyOf":[{"type":"null"},{"type":"string"}]},"doubleSided":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"alphaMode":{"type":"string"},"baseColorFactor":{"anyOf":[{"type":"null"},{"type":"array","items":{"type":"number"}}]},"metallicFactor":{"type":"number"},"roughnessFactor":{"type":"number"},"baseColorTexture":{"anyOf":[{"type":"null"},{"type":"number"}]},"normalTexture":{"anyOf":[{"type":"null"},{"type":"number"}]},"emissiveFactor":{"anyOf":[{"type":"null"},{"type":"array","items":{"type":"number"}}]}},"required":["materialIndex","name","doubleSided","alphaMode","baseColorFactor","metallicFactor","roughnessFactor","baseColorTexture","normalTexture","emissiveFactor"],"additionalProperties":false}},"textures":{"type":"array","items":{"type":"object","properties":{"textureIndex":{"type":"number"},"source":{"anyOf":[{"type":"null"},{"type":"number"}]},"sampler":{"anyOf":[{"type":"null"},{"type":"number"}]}},"required":["textureIndex","source","sampler"],"additionalProperties":false}},"images":{"type":"array","items":{"type":"object","properties":{"imageIndex":{"type":"number"},"name":{"anyOf":[{"type":"null"},{"type":"string"}]},"mimeType":{"anyOf":[{"type":"null"},{"type":"string"}]},"bufferView":{"anyOf":[{"type":"null"},{"type":"number"}]}},"required":["imageIndex","name","mimeType","bufferView"],"additionalProperties":false}},"skins":{"type":"array","items":{"type":"object","properties":{"skinIndex":{"type":"number"},"name":{"anyOf":[{"type":"null"},{"type":"string"}]},"joints":{"type":"array","items":{"type":"number"}},"skeleton":{"anyOf":[{"type":"null"},{"type":"number"}]},"inverseBindMatrices":{"anyOf":[{"type":"null"},{"type":"number"}]}},"required":["skinIndex","name","joints","skeleton","inverseBindMatrices"],"additionalProperties":false}},"animations":{"type":"array","items":{"type":"object","properties":{"animationIndex":{"type":"number"},"name":{"anyOf":[{"type":"null"},{"type":"string"}]},"channels":{"type":"array","items":{"type":"object","properties":{"sampler":{"anyOf":[{"type":"null"},{"type":"number"}]},"node":{"anyOf":[{"type":"null"},{"type":"number"}]},"path":{"anyOf":[{"type":"null"},{"type":"string"}]}},"required":["sampler","node","path"],"additionalProperties":false}},"samplers":{"type":"array","items":{"type":"object","properties":{"input":{"anyOf":[{"type":"null"},{"type":"number"}]},"output":{"anyOf":[{"type":"null"},{"type":"number"}]},"interpolation":{"type":"string"}},"required":["input","output","interpolation"],"additionalProperties":false}}},"required":["animationIndex","name","channels","samplers"],"additionalProperties":false}}},"required":["defaultScene","scenes","nodes","meshes","accessors","materials","textures","images","skins","animations"],"additionalProperties":false}
recommendationsno{"type":"object","properties":{"policy":{"const":"authored-frame-conservative-v1","type":"string"},"normalization":{"anyOf":[{"type":"null"},{"type":"object","properties":{"status":{"const":"suggested","type":"string"},"translation":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"quaternion":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":4,"maxItems":4,"items":false},"scale":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"evidence":{"const":"measured-bounds-center-and-ground","type":"string"}},"required":["status","translation","quaternion","scale","evidence"],"additionalProperties":false}]},"orientation":{"type":"object","properties":{"up":{"const":"+Y","type":"string"},"upEvidence":{"const":"gltf-coordinate-convention","type":"string"},"front":{"const":"unknown","type":"string"},"horizontalLongAxis":{"anyOf":[{"const":"X","type":"string"},{"const":"Z","type":"string"},{"const":"ambiguous","type":"string"}]},"evidence":{"const":"measured-axis-aligned-extents","type":"string"}},"required":["up","upEvidence","front","horizontalLongAxis","evidence"],"additionalProperties":false},"colliderCandidates":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"shape":{"const":"box","type":"string"},"center":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"halfExtents":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"evidence":{"const":"conservative-rest-pose-bound-envelope","type":"string"},"approximation":{"const":"may-fill-openings-and-empty-space","type":"string"},"requiresAcceptance":{"const":true,"type":"boolean"}},"required":["id","shape","center","halfExtents","evidence","approximation","requiresAcceptance"],"additionalProperties":false}},"physics":{"type":"object","properties":{"motion":{"const":"static","type":"string"},"collision":{"anyOf":[{"const":"none","type":"string"},{"const":"solid","type":"string"}]},"controller":{"const":"none","type":"string"},"role":{"const":"unknown","type":"string"},"evidence":{"const":"conservative-fallback-not-material-inference","type":"string"},"accepted":{"const":false,"type":"boolean"}},"required":["motion","collision","controller","role","evidence","accepted"],"additionalProperties":false}},"required":["policy","normalization","orientation","colliderCandidates","physics"],"additionalProperties":false}
staticCollidersno{"type":"object","properties":{"status":{"anyOf":[{"const":"partial","type":"string"},{"const":"unsupported","type":"string"},{"const":"complete","type":"string"}]},"candidates":{"type":"array","items":{"type":"object","properties":{"meshIndex":{"type":"number"},"geometry":{"type":"object","properties":{"shape":{"const":"triangle-mesh","type":"string"},"motion":{"const":"static-only","type":"string"},"coordinateFrame":{"const":"authored-scene","type":"string"},"vertices":{"type":"array","items":{"type":"number"}},"indices":{"type":"array","items":{"type":"number"}},"sourceFaces":{"type":"array","items":{"type":"number"}},"evidence":{"const":"measured-triangles-no-simplification","type":"string"},"requiresAcceptance":{"const":true,"type":"boolean"}},"required":["shape","motion","coordinateFrame","vertices","indices","evidence","requiresAcceptance"],"additionalProperties":false}},"required":["meshIndex","geometry"],"additionalProperties":false}}},"required":["status","candidates"],"additionalProperties":false}
fittedPrimitivesno{"type":"array","items":{"type":"object","properties":{"meshIndex":{"type":"number"},"geometry":{"type":"object","properties":{"shape":{"const":"box","type":"string"},"center":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"halfExtents":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"evidence":{"const":"six-face-triangle-union-coverage","type":"string"},"toleranceM":{"type":"number"},"requiresAcceptance":{"const":true,"type":"boolean"}},"required":["shape","center","halfExtents","evidence","toleranceM","requiresAcceptance"],"additionalProperties":false}},"required":["meshIndex","geometry"],"additionalProperties":false}}
orientedBoundsno{"type":"array","items":{"type":"object","properties":{"meshIndex":{"type":"number"},"bounds":{"type":"object","properties":{"center":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"halfExtents":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"quaternion":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":4,"maxItems":4,"items":false},"evidence":{"const":"authored-orthogonal-axis-envelope","type":"string"},"occupancy":{"const":"unknown","type":"string"}},"required":["center","halfExtents","quaternion","evidence","occupancy"],"additionalProperties":false}},"required":["meshIndex","bounds"],"additionalProperties":false}}
clearanceProbesno{"type":"array","items":{"type":"object","properties":{"featureId":{"type":"string"},"origin":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"direction":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"rangeM":{"type":"number"},"hitDistanceM":{"anyOf":[{"type":"null"},{"type":"number"}]},"status":{"anyOf":[{"const":"unknown","type":"string"},{"const":"observed-hit","type":"string"},{"const":"no-hit-within-range","type":"string"}]},"scope":{"const":"single-ray-not-volume-clearance","type":"string"},"geometryComplete":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]}},"required":["featureId","origin","direction","rangeM","hitDistanceM","status","scope","geometryComplete"],"additionalProperties":false}}
rectangularCavitiesno{"type":"array","items":{"type":"object","properties":{"bounds":{"type":"object","properties":{"min":{"type":"array","items":{"type":"number"}},"max":{"type":"array","items":{"type":"number"}}},"required":["min","max"],"additionalProperties":false},"opening":{"const":"+Y","type":"string"},"evidence":{"const":"five-covered-inward-planes-empty-interior","type":"string"},"toleranceM":{"type":"number"}},"required":["bounds","opening","evidence","toleranceM"],"additionalProperties":false}}
Complete schema including nested definitions
JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "schema": {
      "const": "quay.asset-analysis",
      "type": "string"
    },
    "schemaVersion": {
      "const": "2.0.0-draft.2",
      "type": "string"
    },
    "revision": {
      "type": "string"
    },
    "content": {
      "type": "object",
      "properties": {
        "sha256": {
          "type": "string"
        },
        "byteLength": {
          "type": "number"
        }
      },
      "required": [
        "sha256",
        "byteLength"
      ],
      "additionalProperties": false
    },
    "analyzer": {
      "type": "object",
      "properties": {
        "version": {
          "type": "string"
        },
        "threeVersion": {
          "type": "string"
        },
        "policy": {
          "type": "string"
        }
      },
      "required": [
        "version",
        "threeVersion",
        "policy"
      ],
      "additionalProperties": false
    },
    "coordinates": {
      "type": "object",
      "properties": {
        "units": {
          "const": "metres",
          "type": "string"
        },
        "up": {
          "const": "+Y",
          "type": "string"
        },
        "authoredForward": {
          "const": "unknown",
          "type": "string"
        }
      },
      "required": [
        "units",
        "up",
        "authoredForward"
      ],
      "additionalProperties": false
    },
    "validation": {
      "type": "object",
      "properties": {
        "container": {
          "const": "passed",
          "type": "string"
        },
        "loader": {
          "const": "passed",
          "type": "string"
        },
        "khronosValidator": {
          "anyOf": [
            {
              "const": "not-run",
              "type": "string"
            },
            {
              "type": "object",
              "properties": {
                "producer": {
                  "const": "Khronos glTF Validator",
                  "type": "string"
                },
                "version": {
                  "type": "string"
                },
                "maxIssues": {
                  "type": "number"
                },
                "errors": {
                  "type": "number"
                },
                "warnings": {
                  "type": "number"
                },
                "infos": {
                  "type": "number"
                },
                "hints": {
                  "type": "number"
                },
                "truncated": {
                  "anyOf": [
                    {
                      "const": false,
                      "type": "boolean"
                    },
                    {
                      "const": true,
                      "type": "boolean"
                    }
                  ]
                },
                "messages": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "code": {
                        "type": "string"
                      },
                      "pointer": {
                        "type": "string"
                      },
                      "severity": {
                        "type": "number"
                      }
                    },
                    "required": [
                      "code",
                      "pointer",
                      "severity"
                    ],
                    "additionalProperties": false
                  }
                }
              },
              "required": [
                "producer",
                "version",
                "maxIssues",
                "errors",
                "warnings",
                "infos",
                "hints",
                "truncated",
                "messages"
              ],
              "additionalProperties": false
            }
          ]
        }
      },
      "required": [
        "container",
        "loader",
        "khronosValidator"
      ],
      "additionalProperties": false
    },
    "inventory": {
      "type": "object",
      "properties": {
        "scenes": {
          "type": "number"
        },
        "nodes": {
          "type": "number"
        },
        "meshes": {
          "type": "number"
        },
        "primitives": {
          "type": "number"
        },
        "materials": {
          "type": "number"
        },
        "textures": {
          "type": "number"
        },
        "skins": {
          "type": "number"
        },
        "morphTargets": {
          "type": "number"
        },
        "animations": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "channels": {
                "type": "number"
              }
            },
            "required": [
              "name",
              "channels"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "scenes",
        "nodes",
        "meshes",
        "primitives",
        "materials",
        "textures",
        "skins",
        "morphTargets",
        "animations"
      ],
      "additionalProperties": false
    },
    "geometry": {
      "type": "object",
      "properties": {
        "bounds": {
          "anyOf": [
            {
              "type": "null"
            },
            {
              "type": "object",
              "properties": {
                "min": {
                  "type": "array",
                  "items": {
                    "type": "number"
                  }
                },
                "max": {
                  "type": "array",
                  "items": {
                    "type": "number"
                  }
                }
              },
              "required": [
                "min",
                "max"
              ],
              "additionalProperties": false
            }
          ]
        },
        "nodes": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "nodeIndex": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              "name": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "localMatrix": {
                "type": "array",
                "items": {
                  "type": "number"
                }
              },
              "worldMatrix": {
                "type": "array",
                "items": {
                  "type": "number"
                }
              },
              "bounds": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "min": {
                        "type": "array",
                        "items": {
                          "type": "number"
                        }
                      },
                      "max": {
                        "type": "array",
                        "items": {
                          "type": "number"
                        }
                      }
                    },
                    "required": [
                      "min",
                      "max"
                    ],
                    "additionalProperties": false
                  }
                ]
              },
              "localBounds": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "min": {
                        "type": "array",
                        "items": {
                          "type": "number"
                        }
                      },
                      "max": {
                        "type": "array",
                        "items": {
                          "type": "number"
                        }
                      }
                    },
                    "required": [
                      "min",
                      "max"
                    ],
                    "additionalProperties": false
                  }
                ]
              },
              "aggregateBounds": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "min": {
                        "type": "array",
                        "items": {
                          "type": "number"
                        }
                      },
                      "max": {
                        "type": "array",
                        "items": {
                          "type": "number"
                        }
                      }
                    },
                    "required": [
                      "min",
                      "max"
                    ],
                    "additionalProperties": false
                  }
                ]
              }
            },
            "required": [
              "nodeIndex",
              "name",
              "localMatrix",
              "worldMatrix",
              "bounds",
              "localBounds",
              "aggregateBounds"
            ],
            "additionalProperties": false
          }
        },
        "meshes": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "gltfMeshIndex": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              "primitiveIndex": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              "name": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "vertices": {
                "type": "number"
              },
              "triangles": {
                "type": "number"
              },
              "skinned": {
                "anyOf": [
                  {
                    "const": false,
                    "type": "boolean"
                  },
                  {
                    "const": true,
                    "type": "boolean"
                  }
                ]
              },
              "morphTargets": {
                "type": "number"
              },
              "bounds": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "min": {
                        "type": "array",
                        "items": {
                          "type": "number"
                        }
                      },
                      "max": {
                        "type": "array",
                        "items": {
                          "type": "number"
                        }
                      }
                    },
                    "required": [
                      "min",
                      "max"
                    ],
                    "additionalProperties": false
                  }
                ]
              }
            },
            "required": [
              "gltfMeshIndex",
              "primitiveIndex",
              "name",
              "vertices",
              "triangles",
              "skinned",
              "morphTargets",
              "bounds"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "bounds",
        "nodes",
        "meshes"
      ],
      "additionalProperties": false
    },
    "featureAvailability": {
      "type": "object",
      "properties": {
        "supportSurfaces": {
          "anyOf": [
            {
              "const": "not-analyzed",
              "type": "string"
            },
            {
              "const": "analyzed",
              "type": "string"
            },
            {
              "const": "partial",
              "type": "string"
            },
            {
              "const": "unsupported",
              "type": "string"
            }
          ]
        },
        "contactRegions": {
          "anyOf": [
            {
              "const": "not-analyzed",
              "type": "string"
            },
            {
              "const": "analyzed",
              "type": "string"
            },
            {
              "const": "partial",
              "type": "string"
            },
            {
              "const": "unsupported",
              "type": "string"
            }
          ]
        },
        "components": {
          "anyOf": [
            {
              "const": "not-analyzed",
              "type": "string"
            },
            {
              "const": "analyzed",
              "type": "string"
            },
            {
              "const": "partial",
              "type": "string"
            },
            {
              "const": "unsupported",
              "type": "string"
            }
          ]
        },
        "cavities": {
          "anyOf": [
            {
              "const": "not-analyzed",
              "type": "string"
            },
            {
              "const": "analyzed",
              "type": "string"
            },
            {
              "const": "partial",
              "type": "string"
            },
            {
              "const": "unsupported",
              "type": "string"
            }
          ]
        },
        "openings": {
          "anyOf": [
            {
              "const": "not-analyzed",
              "type": "string"
            },
            {
              "const": "analyzed",
              "type": "string"
            },
            {
              "const": "partial",
              "type": "string"
            },
            {
              "const": "unsupported",
              "type": "string"
            }
          ]
        },
        "handles": {
          "anyOf": [
            {
              "const": "not-analyzed",
              "type": "string"
            },
            {
              "const": "analyzed",
              "type": "string"
            },
            {
              "const": "partial",
              "type": "string"
            },
            {
              "const": "unsupported",
              "type": "string"
            }
          ]
        },
        "orientation": {
          "anyOf": [
            {
              "const": "not-analyzed",
              "type": "string"
            },
            {
              "const": "analyzed",
              "type": "string"
            },
            {
              "const": "partial",
              "type": "string"
            },
            {
              "const": "unsupported",
              "type": "string"
            }
          ]
        },
        "colliders": {
          "anyOf": [
            {
              "const": "not-analyzed",
              "type": "string"
            },
            {
              "const": "analyzed",
              "type": "string"
            },
            {
              "const": "partial",
              "type": "string"
            },
            {
              "const": "unsupported",
              "type": "string"
            }
          ]
        }
      },
      "required": [
        "supportSurfaces",
        "contactRegions",
        "components",
        "cavities",
        "openings",
        "handles",
        "orientation",
        "colliders"
      ],
      "additionalProperties": false
    },
    "planarPatches": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "featureId": {
            "type": "string"
          },
          "meshIndex": {
            "type": "number"
          },
          "faceIndices": {
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "faceIndicesComplete": {
            "anyOf": [
              {
                "const": false,
                "type": "boolean"
              },
              {
                "const": true,
                "type": "boolean"
              }
            ]
          },
          "normal": {
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "bounds": {
            "type": "object",
            "properties": {
              "min": {
                "type": "array",
                "items": {
                  "type": "number"
                }
              },
              "max": {
                "type": "array",
                "items": {
                  "type": "number"
                }
              }
            },
            "required": [
              "min",
              "max"
            ],
            "additionalProperties": false
          },
          "areaM2": {
            "type": "number"
          },
          "purposeCandidate": {
            "anyOf": [
              {
                "const": "support",
                "type": "string"
              },
              {
                "const": "contact",
                "type": "string"
              },
              {
                "const": "other",
                "type": "string"
              }
            ]
          },
          "evidence": {
            "const": "measured-coplanar-edge-connected-triangles",
            "type": "string"
          },
          "weldToleranceM": {
            "type": "number"
          },
          "planeToleranceM": {
            "type": "number"
          },
          "surfaceFrame": {
            "type": "object",
            "properties": {
              "version": {
                "const": "orthonormal-v1",
                "type": "string"
              },
              "localToAsset": {
                "type": "array",
                "items": {
                  "type": "number"
                }
              }
            },
            "required": [
              "version",
              "localToAsset"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "featureId",
          "meshIndex",
          "faceIndices",
          "faceIndicesComplete",
          "normal",
          "bounds",
          "areaM2",
          "purposeCandidate",
          "evidence",
          "weldToleranceM",
          "planeToleranceM"
        ],
        "additionalProperties": false
      }
    },
    "components": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "featureId": {
            "type": "string"
          },
          "meshIndex": {
            "type": "number"
          },
          "triangleCount": {
            "type": "number"
          },
          "areaM2": {
            "type": "number"
          },
          "bounds": {
            "type": "object",
            "properties": {
              "min": {
                "type": "array",
                "items": {
                  "type": "number"
                }
              },
              "max": {
                "type": "array",
                "items": {
                  "type": "number"
                }
              }
            },
            "required": [
              "min",
              "max"
            ],
            "additionalProperties": false
          },
          "topology": {
            "anyOf": [
              {
                "const": "closed-oriented-at-weld-tolerance",
                "type": "string"
              },
              {
                "const": "open-or-nonmanifold",
                "type": "string"
              }
            ]
          },
          "weldToleranceM": {
            "type": "number"
          }
        },
        "required": [
          "featureId",
          "meshIndex",
          "triangleCount",
          "areaM2",
          "bounds",
          "topology",
          "weldToleranceM"
        ],
        "additionalProperties": false
      }
    },
    "interpretation": {
      "type": "object",
      "properties": {
        "status": {
          "const": "unknown",
          "type": "string"
        },
        "producer": {
          "const": "none",
          "type": "string"
        }
      },
      "required": [
        "status",
        "producer"
      ],
      "additionalProperties": false
    },
    "authored": {
      "type": "object",
      "properties": {
        "defaultScene": {
          "type": "number"
        },
        "scenes": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "sceneIndex": {
                "type": "number"
              },
              "name": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "roots": {
                "type": "array",
                "items": {
                  "type": "number"
                }
              }
            },
            "required": [
              "sceneIndex",
              "name",
              "roots"
            ],
            "additionalProperties": false
          }
        },
        "nodes": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "nodeIndex": {
                "type": "number"
              },
              "name": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "children": {
                "type": "array",
                "items": {
                  "type": "number"
                }
              },
              "mesh": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              "skin": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              "matrix": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  }
                ]
              },
              "translation": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  }
                ]
              },
              "rotation": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  }
                ]
              },
              "scale": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  }
                ]
              },
              "weights": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  }
                ]
              }
            },
            "required": [
              "nodeIndex",
              "name",
              "children",
              "mesh",
              "skin",
              "matrix",
              "translation",
              "rotation",
              "scale",
              "weights"
            ],
            "additionalProperties": false
          }
        },
        "meshes": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "meshIndex": {
                "type": "number"
              },
              "name": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "weights": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  }
                ]
              },
              "primitives": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "primitiveIndex": {
                      "type": "number"
                    },
                    "mode": {
                      "type": "number"
                    },
                    "indices": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "number"
                        }
                      ]
                    },
                    "material": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "number"
                        }
                      ]
                    },
                    "attributes": {
                      "type": "object",
                      "properties": {},
                      "required": [],
                      "additionalProperties": {
                        "anyOf": [
                          {
                            "type": "null"
                          },
                          {
                            "type": "number"
                          }
                        ]
                      }
                    },
                    "morphTargets": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {},
                        "required": [],
                        "additionalProperties": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "type": "number"
                            }
                          ]
                        }
                      }
                    }
                  },
                  "required": [
                    "primitiveIndex",
                    "mode",
                    "indices",
                    "material",
                    "attributes",
                    "morphTargets"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "required": [
              "meshIndex",
              "name",
              "weights",
              "primitives"
            ],
            "additionalProperties": false
          }
        },
        "accessors": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "accessorIndex": {
                "type": "number"
              },
              "bufferView": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              "byteOffset": {
                "type": "number"
              },
              "componentType": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              "count": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              "type": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "normalized": {
                "anyOf": [
                  {
                    "const": false,
                    "type": "boolean"
                  },
                  {
                    "const": true,
                    "type": "boolean"
                  }
                ]
              },
              "min": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  }
                ]
              },
              "max": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  }
                ]
              },
              "sparseCount": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "number"
                  }
                ]
              }
            },
            "required": [
              "accessorIndex",
              "bufferView",
              "byteOffset",
              "componentType",
              "count",
              "type",
              "normalized",
              "min",
              "max",
              "sparseCount"
            ],
            "additionalProperties": false
          }
        },
        "materials": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "materialIndex": {
                "type": "number"
              },
              "name": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "doubleSided": {
                "anyOf": [
                  {
                    "const": false,
                    "type": "boolean"
                  },
                  {
                    "const": true,
                    "type": "boolean"
                  }
                ]
              },
              "alphaMode": {
                "type": "string"
              },
              "baseColorFactor": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  }
                ]
              },
              "metallicFactor": {
                "type": "number"
              },
              "roughnessFactor": {
                "type": "number"
              },
              "baseColorTexture": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              "normalTexture": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              "emissiveFactor": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  }
                ]
              }
            },
            "required": [
              "materialIndex",
              "name",
              "doubleSided",
              "alphaMode",
              "baseColorFactor",
              "metallicFactor",
              "roughnessFactor",
              "baseColorTexture",
              "normalTexture",
              "emissiveFactor"
            ],
            "additionalProperties": false
          }
        },
        "textures": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "textureIndex": {
                "type": "number"
              },
              "source": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              "sampler": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "number"
                  }
                ]
              }
            },
            "required": [
              "textureIndex",
              "source",
              "sampler"
            ],
            "additionalProperties": false
          }
        },
        "images": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "imageIndex": {
                "type": "number"
              },
              "name": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "mimeType": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "bufferView": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "number"
                  }
                ]
              }
            },
            "required": [
              "imageIndex",
              "name",
              "mimeType",
              "bufferView"
            ],
            "additionalProperties": false
          }
        },
        "skins": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "skinIndex": {
                "type": "number"
              },
              "name": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "joints": {
                "type": "array",
                "items": {
                  "type": "number"
                }
              },
              "skeleton": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              "inverseBindMatrices": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "number"
                  }
                ]
              }
            },
            "required": [
              "skinIndex",
              "name",
              "joints",
              "skeleton",
              "inverseBindMatrices"
            ],
            "additionalProperties": false
          }
        },
        "animations": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "animationIndex": {
                "type": "number"
              },
              "name": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "channels": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "sampler": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "number"
                        }
                      ]
                    },
                    "node": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "number"
                        }
                      ]
                    },
                    "path": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "string"
                        }
                      ]
                    }
                  },
                  "required": [
                    "sampler",
                    "node",
                    "path"
                  ],
                  "additionalProperties": false
                }
              },
              "samplers": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "input": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "number"
                        }
                      ]
                    },
                    "output": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "number"
                        }
                      ]
                    },
                    "interpolation": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "input",
                    "output",
                    "interpolation"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "required": [
              "animationIndex",
              "name",
              "channels",
              "samplers"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "defaultScene",
        "scenes",
        "nodes",
        "meshes",
        "accessors",
        "materials",
        "textures",
        "images",
        "skins",
        "animations"
      ],
      "additionalProperties": false
    },
    "recommendations": {
      "type": "object",
      "properties": {
        "policy": {
          "const": "authored-frame-conservative-v1",
          "type": "string"
        },
        "normalization": {
          "anyOf": [
            {
              "type": "null"
            },
            {
              "type": "object",
              "properties": {
                "status": {
                  "const": "suggested",
                  "type": "string"
                },
                "translation": {
                  "type": "array",
                  "prefixItems": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "number"
                    },
                    {
                      "type": "number"
                    }
                  ],
                  "minItems": 3,
                  "maxItems": 3,
                  "items": false
                },
                "quaternion": {
                  "type": "array",
                  "prefixItems": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "number"
                    },
                    {
                      "type": "number"
                    },
                    {
                      "type": "number"
                    }
                  ],
                  "minItems": 4,
                  "maxItems": 4,
                  "items": false
                },
                "scale": {
                  "type": "array",
                  "prefixItems": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "number"
                    },
                    {
                      "type": "number"
                    }
                  ],
                  "minItems": 3,
                  "maxItems": 3,
                  "items": false
                },
                "evidence": {
                  "const": "measured-bounds-center-and-ground",
                  "type": "string"
                }
              },
              "required": [
                "status",
                "translation",
                "quaternion",
                "scale",
                "evidence"
              ],
              "additionalProperties": false
            }
          ]
        },
        "orientation": {
          "type": "object",
          "properties": {
            "up": {
              "const": "+Y",
              "type": "string"
            },
            "upEvidence": {
              "const": "gltf-coordinate-convention",
              "type": "string"
            },
            "front": {
              "const": "unknown",
              "type": "string"
            },
            "horizontalLongAxis": {
              "anyOf": [
                {
                  "const": "X",
                  "type": "string"
                },
                {
                  "const": "Z",
                  "type": "string"
                },
                {
                  "const": "ambiguous",
                  "type": "string"
                }
              ]
            },
            "evidence": {
              "const": "measured-axis-aligned-extents",
              "type": "string"
            }
          },
          "required": [
            "up",
            "upEvidence",
            "front",
            "horizontalLongAxis",
            "evidence"
          ],
          "additionalProperties": false
        },
        "colliderCandidates": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "shape": {
                "const": "box",
                "type": "string"
              },
              "center": {
                "type": "array",
                "prefixItems": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ],
                "minItems": 3,
                "maxItems": 3,
                "items": false
              },
              "halfExtents": {
                "type": "array",
                "prefixItems": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ],
                "minItems": 3,
                "maxItems": 3,
                "items": false
              },
              "evidence": {
                "const": "conservative-rest-pose-bound-envelope",
                "type": "string"
              },
              "approximation": {
                "const": "may-fill-openings-and-empty-space",
                "type": "string"
              },
              "requiresAcceptance": {
                "const": true,
                "type": "boolean"
              }
            },
            "required": [
              "id",
              "shape",
              "center",
              "halfExtents",
              "evidence",
              "approximation",
              "requiresAcceptance"
            ],
            "additionalProperties": false
          }
        },
        "physics": {
          "type": "object",
          "properties": {
            "motion": {
              "const": "static",
              "type": "string"
            },
            "collision": {
              "anyOf": [
                {
                  "const": "none",
                  "type": "string"
                },
                {
                  "const": "solid",
                  "type": "string"
                }
              ]
            },
            "controller": {
              "const": "none",
              "type": "string"
            },
            "role": {
              "const": "unknown",
              "type": "string"
            },
            "evidence": {
              "const": "conservative-fallback-not-material-inference",
              "type": "string"
            },
            "accepted": {
              "const": false,
              "type": "boolean"
            }
          },
          "required": [
            "motion",
            "collision",
            "controller",
            "role",
            "evidence",
            "accepted"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "policy",
        "normalization",
        "orientation",
        "colliderCandidates",
        "physics"
      ],
      "additionalProperties": false
    },
    "staticColliders": {
      "type": "object",
      "properties": {
        "status": {
          "anyOf": [
            {
              "const": "partial",
              "type": "string"
            },
            {
              "const": "unsupported",
              "type": "string"
            },
            {
              "const": "complete",
              "type": "string"
            }
          ]
        },
        "candidates": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "meshIndex": {
                "type": "number"
              },
              "geometry": {
                "type": "object",
                "properties": {
                  "shape": {
                    "const": "triangle-mesh",
                    "type": "string"
                  },
                  "motion": {
                    "const": "static-only",
                    "type": "string"
                  },
                  "coordinateFrame": {
                    "const": "authored-scene",
                    "type": "string"
                  },
                  "vertices": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  },
                  "indices": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  },
                  "sourceFaces": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  },
                  "evidence": {
                    "const": "measured-triangles-no-simplification",
                    "type": "string"
                  },
                  "requiresAcceptance": {
                    "const": true,
                    "type": "boolean"
                  }
                },
                "required": [
                  "shape",
                  "motion",
                  "coordinateFrame",
                  "vertices",
                  "indices",
                  "evidence",
                  "requiresAcceptance"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "meshIndex",
              "geometry"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "status",
        "candidates"
      ],
      "additionalProperties": false
    },
    "fittedPrimitives": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "meshIndex": {
            "type": "number"
          },
          "geometry": {
            "type": "object",
            "properties": {
              "shape": {
                "const": "box",
                "type": "string"
              },
              "center": {
                "type": "array",
                "prefixItems": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ],
                "minItems": 3,
                "maxItems": 3,
                "items": false
              },
              "halfExtents": {
                "type": "array",
                "prefixItems": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ],
                "minItems": 3,
                "maxItems": 3,
                "items": false
              },
              "evidence": {
                "const": "six-face-triangle-union-coverage",
                "type": "string"
              },
              "toleranceM": {
                "type": "number"
              },
              "requiresAcceptance": {
                "const": true,
                "type": "boolean"
              }
            },
            "required": [
              "shape",
              "center",
              "halfExtents",
              "evidence",
              "toleranceM",
              "requiresAcceptance"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "meshIndex",
          "geometry"
        ],
        "additionalProperties": false
      }
    },
    "orientedBounds": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "meshIndex": {
            "type": "number"
          },
          "bounds": {
            "type": "object",
            "properties": {
              "center": {
                "type": "array",
                "prefixItems": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ],
                "minItems": 3,
                "maxItems": 3,
                "items": false
              },
              "halfExtents": {
                "type": "array",
                "prefixItems": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ],
                "minItems": 3,
                "maxItems": 3,
                "items": false
              },
              "quaternion": {
                "type": "array",
                "prefixItems": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ],
                "minItems": 4,
                "maxItems": 4,
                "items": false
              },
              "evidence": {
                "const": "authored-orthogonal-axis-envelope",
                "type": "string"
              },
              "occupancy": {
                "const": "unknown",
                "type": "string"
              }
            },
            "required": [
              "center",
              "halfExtents",
              "quaternion",
              "evidence",
              "occupancy"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "meshIndex",
          "bounds"
        ],
        "additionalProperties": false
      }
    },
    "clearanceProbes": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "featureId": {
            "type": "string"
          },
          "origin": {
            "type": "array",
            "prefixItems": [
              {
                "type": "number"
              },
              {
                "type": "number"
              },
              {
                "type": "number"
              }
            ],
            "minItems": 3,
            "maxItems": 3,
            "items": false
          },
          "direction": {
            "type": "array",
            "prefixItems": [
              {
                "type": "number"
              },
              {
                "type": "number"
              },
              {
                "type": "number"
              }
            ],
            "minItems": 3,
            "maxItems": 3,
            "items": false
          },
          "rangeM": {
            "type": "number"
          },
          "hitDistanceM": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "number"
              }
            ]
          },
          "status": {
            "anyOf": [
              {
                "const": "unknown",
                "type": "string"
              },
              {
                "const": "observed-hit",
                "type": "string"
              },
              {
                "const": "no-hit-within-range",
                "type": "string"
              }
            ]
          },
          "scope": {
            "const": "single-ray-not-volume-clearance",
            "type": "string"
          },
          "geometryComplete": {
            "anyOf": [
              {
                "const": false,
                "type": "boolean"
              },
              {
                "const": true,
                "type": "boolean"
              }
            ]
          }
        },
        "required": [
          "featureId",
          "origin",
          "direction",
          "rangeM",
          "hitDistanceM",
          "status",
          "scope",
          "geometryComplete"
        ],
        "additionalProperties": false
      }
    },
    "rectangularCavities": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "bounds": {
            "type": "object",
            "properties": {
              "min": {
                "type": "array",
                "items": {
                  "type": "number"
                }
              },
              "max": {
                "type": "array",
                "items": {
                  "type": "number"
                }
              }
            },
            "required": [
              "min",
              "max"
            ],
            "additionalProperties": false
          },
          "opening": {
            "const": "+Y",
            "type": "string"
          },
          "evidence": {
            "const": "five-covered-inward-planes-empty-interior",
            "type": "string"
          },
          "toleranceM": {
            "type": "number"
          }
        },
        "required": [
          "bounds",
          "opening",
          "evidence",
          "toleranceM"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "schema",
    "schemaVersion",
    "revision",
    "content",
    "analyzer",
    "coordinates",
    "validation",
    "inventory",
    "geometry",
    "featureAvailability",
    "planarPatches",
    "components",
    "interpretation",
    "authored"
  ],
  "additionalProperties": false
}

asset-manifest.schema.json

Download asset-manifest.schema.json

Root propertyRequiredConstraint
schemayes{"const":"quay.asset-manifest","type":"string"}
schemaVersionyes{"const":"2.0.0-draft.1","type":"string"}
manifestIdyes{"type":"string","format":"uuid"}
assetIdyes{"type":"string","format":"uuid"}
createdAtyes{"type":"string","format":"date-time"}
analysisyes{"type":"object","properties":{"schema":{"const":"quay.asset-analysis","type":"string"},"schemaVersion":{"const":"2.0.0-draft.2","type":"string"},"revision":{"type":"string"},"content":{"type":"object","properties":{"sha256":{"type":"string"},"byteLength":{"type":"number"}},"required":["sha256","byteLength"],"additionalProperties":false},"analyzer":{"type":"object","properties":{"version":{"type":"string"},"threeVersion":{"type":"string"},"policy":{"type":"string"}},"required":["version","threeVersion","policy"],"additionalProperties":false},"coordinates":{"type":"object","properties":{"units":{"const":"metres","type":"string"},"up":{"const":"+Y","type":"string"},"authoredForward":{"const":"unknown","type":"string"}},"required":["units","up","authoredForward"],"additionalProperties":false},"validation":{"type":"object","properties":{"container":{"const":"passed","type":"string"},"loader":{"const":"passed","type":"string"},"khronosValidator":{"anyOf":[{"const":"not-run","type":"string"},{"type":"object","properties":{"producer":{"const":"Khronos glTF Validator","type":"string"},"version":{"type":"string"},"maxIssues":{"type":"number"},"errors":{"type":"number"},"warnings":{"type":"number"},"infos":{"type":"number"},"hints":{"type":"number"},"truncated":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"messages":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"pointer":{"type":"string"},"severity":{"type":"number"}},"required":["code","pointer","severity"],"additionalProperties":false}}},"required":["producer","version","maxIssues","errors","warnings","infos","hints","truncated","messages"],"additionalProperties":false}]}},"required":["container","loader","khronosValidator"],"additionalProperties":false},"inventory":{"type":"object","properties":{"scenes":{"type":"number"},"nodes":{"type":"number"},"meshes":{"type":"number"},"primitives":{"type":"number"},"materials":{"type":"number"},"textures":{"type":"number"},"skins":{"type":"number"},"morphTargets":{"type":"number"},"animations":{"type":"array","items":{"type":"object","properties":{"name":{"anyOf":[{"type":"null"},{"type":"string"}]},"channels":{"type":"number"}},"required":["name","channels"],"additionalProperties":false}}},"required":["scenes","nodes","meshes","primitives","materials","textures","skins","morphTargets","animations"],"additionalProperties":false},"geometry":{"type":"object","properties":{"bounds":{"anyOf":[{"type":"null"},{"type":"object","properties":{"min":{"type":"array","items":{"type":"number"}},"max":{"type":"array","items":{"type":"number"}}},"required":["min","max"],"additionalProperties":false}]},"nodes":{"type":"array","items":{"type":"object","properties":{"nodeIndex":{"anyOf":[{"type":"null"},{"type":"number"}]},"name":{"anyOf":[{"type":"null"},{"type":"string"}]},"localMatrix":{"type":"array","items":{"type":"number"}},"worldMatrix":{"type":"array","items":{"type":"number"}},"bounds":{"anyOf":[{"type":"null"},{"type":"object","properties":{"min":{"type":"array","items":{"type":"number"}},"max":{"type":"array","items":{"type":"number"}}},"required":["min","max"],"additionalProperties":false}]},"localBounds":{"anyOf":[{"type":"null"},{"type":"object","properties":{"min":{"type":"array","items":{"type":"number"}},"max":{"type":"array","items":{"type":"number"}}},"required":["min","max"],"additionalProperties":false}]},"aggregateBounds":{"anyOf":[{"type":"null"},{"type":"object","properties":{"min":{"type":"array","items":{"type":"number"}},"max":{"type":"array","items":{"type":"number"}}},"required":["min","max"],"additionalProperties":false}]}},"required":["nodeIndex","name","localMatrix","worldMatrix","bounds","localBounds","aggregateBounds"],"additionalProperties":false}},"meshes":{"type":"array","items":{"type":"object","properties":{"gltfMeshIndex":{"anyOf":[{"type":"null"},{"type":"number"}]},"primitiveIndex":{"anyOf":[{"type":"null"},{"type":"number"}]},"name":{"anyOf":[{"type":"null"},{"type":"string"}]},"vertices":{"type":"number"},"triangles":{"type":"number"},"skinned":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"morphTargets":{"type":"number"},"bounds":{"anyOf":[{"type":"null"},{"type":"object","properties":{"min":{"type":"array","items":{"type":"number"}},"max":{"type":"array","items":{"type":"number"}}},"required":["min","max"],"additionalProperties":false}]}},"required":["gltfMeshIndex","primitiveIndex","name","vertices","triangles","skinned","morphTargets","bounds"],"additionalProperties":false}}},"required":["bounds","nodes","meshes"],"additionalProperties":false},"featureAvailability":{"type":"object","properties":{"supportSurfaces":{"anyOf":[{"const":"not-analyzed","type":"string"},{"const":"analyzed","type":"string"},{"const":"partial","type":"string"},{"const":"unsupported","type":"string"}]},"contactRegions":{"anyOf":[{"const":"not-analyzed","type":"string"},{"const":"analyzed","type":"string"},{"const":"partial","type":"string"},{"const":"unsupported","type":"string"}]},"components":{"anyOf":[{"const":"not-analyzed","type":"string"},{"const":"analyzed","type":"string"},{"const":"partial","type":"string"},{"const":"unsupported","type":"string"}]},"cavities":{"anyOf":[{"const":"not-analyzed","type":"string"},{"const":"analyzed","type":"string"},{"const":"partial","type":"string"},{"const":"unsupported","type":"string"}]},"openings":{"anyOf":[{"const":"not-analyzed","type":"string"},{"const":"analyzed","type":"string"},{"const":"partial","type":"string"},{"const":"unsupported","type":"string"}]},"handles":{"anyOf":[{"const":"not-analyzed","type":"string"},{"const":"analyzed","type":"string"},{"const":"partial","type":"string"},{"const":"unsupported","type":"string"}]},"orientation":{"anyOf":[{"const":"not-analyzed","type":"string"},{"const":"analyzed","type":"string"},{"const":"partial","type":"string"},{"const":"unsupported","type":"string"}]},"colliders":{"anyOf":[{"const":"not-analyzed","type":"string"},{"const":"analyzed","type":"string"},{"const":"partial","type":"string"},{"const":"unsupported","type":"string"}]}},"required":["supportSurfaces","contactRegions","components","cavities","openings","handles","orientation","colliders"],"additionalProperties":false},"planarPatches":{"type":"array","items":{"type":"object","properties":{"featureId":{"type":"string"},"meshIndex":{"type":"number"},"faceIndices":{"type":"array","items":{"type":"number"}},"faceIndicesComplete":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"normal":{"type":"array","items":{"type":"number"}},"bounds":{"type":"object","properties":{"min":{"type":"array","items":{"type":"number"}},"max":{"type":"array","items":{"type":"number"}}},"required":["min","max"],"additionalProperties":false},"areaM2":{"type":"number"},"purposeCandidate":{"anyOf":[{"const":"support","type":"string"},{"const":"contact","type":"string"},{"const":"other","type":"string"}]},"evidence":{"const":"measured-coplanar-edge-connected-triangles","type":"string"},"weldToleranceM":{"type":"number"},"planeToleranceM":{"type":"number"},"surfaceFrame":{"type":"object","properties":{"version":{"const":"orthonormal-v1","type":"string"},"localToAsset":{"type":"array","items":{"type":"number"}}},"required":["version","localToAsset"],"additionalProperties":false}},"required":["featureId","meshIndex","faceIndices","faceIndicesComplete","normal","bounds","areaM2","purposeCandidate","evidence","weldToleranceM","planeToleranceM"],"additionalProperties":false}},"components":{"type":"array","items":{"type":"object","properties":{"featureId":{"type":"string"},"meshIndex":{"type":"number"},"triangleCount":{"type":"number"},"areaM2":{"type":"number"},"bounds":{"type":"object","properties":{"min":{"type":"array","items":{"type":"number"}},"max":{"type":"array","items":{"type":"number"}}},"required":["min","max"],"additionalProperties":false},"topology":{"anyOf":[{"const":"closed-oriented-at-weld-tolerance","type":"string"},{"const":"open-or-nonmanifold","type":"string"}]},"weldToleranceM":{"type":"number"}},"required":["featureId","meshIndex","triangleCount","areaM2","bounds","topology","weldToleranceM"],"additionalProperties":false}},"interpretation":{"type":"object","properties":{"status":{"const":"unknown","type":"string"},"producer":{"const":"none","type":"string"}},"required":["status","producer"],"additionalProperties":false},"authored":{"type":"object","properties":{"defaultScene":{"type":"number"},"scenes":{"type":"array","items":{"type":"object","properties":{"sceneIndex":{"type":"number"},"name":{"anyOf":[{"type":"null"},{"type":"string"}]},"roots":{"type":"array","items":{"type":"number"}}},"required":["sceneIndex","name","roots"],"additionalProperties":false}},"nodes":{"type":"array","items":{"type":"object","properties":{"nodeIndex":{"type":"number"},"name":{"anyOf":[{"type":"null"},{"type":"string"}]},"children":{"type":"array","items":{"type":"number"}},"mesh":{"anyOf":[{"type":"null"},{"type":"number"}]},"skin":{"anyOf":[{"type":"null"},{"type":"number"}]},"matrix":{"anyOf":[{"type":"null"},{"type":"array","items":{"type":"number"}}]},"translation":{"anyOf":[{"type":"null"},{"type":"array","items":{"type":"number"}}]},"rotation":{"anyOf":[{"type":"null"},{"type":"array","items":{"type":"number"}}]},"scale":{"anyOf":[{"type":"null"},{"type":"array","items":{"type":"number"}}]},"weights":{"anyOf":[{"type":"null"},{"type":"array","items":{"type":"number"}}]}},"required":["nodeIndex","name","children","mesh","skin","matrix","translation","rotation","scale","weights"],"additionalProperties":false}},"meshes":{"type":"array","items":{"type":"object","properties":{"meshIndex":{"type":"number"},"name":{"anyOf":[{"type":"null"},{"type":"string"}]},"weights":{"anyOf":[{"type":"null"},{"type":"array","items":{"type":"number"}}]},"primitives":{"type":"array","items":{"type":"object","properties":{"primitiveIndex":{"type":"number"},"mode":{"type":"number"},"indices":{"anyOf":[{"type":"null"},{"type":"number"}]},"material":{"anyOf":[{"type":"null"},{"type":"number"}]},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":{"anyOf":[{"type":"null"},{"type":"number"}]}},"morphTargets":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":{"anyOf":[{"type":"null"},{"type":"number"}]}}}},"required":["primitiveIndex","mode","indices","material","attributes","morphTargets"],"additionalProperties":false}}},"required":["meshIndex","name","weights","primitives"],"additionalProperties":false}},"accessors":{"type":"array","items":{"type":"object","properties":{"accessorIndex":{"type":"number"},"bufferView":{"anyOf":[{"type":"null"},{"type":"number"}]},"byteOffset":{"type":"number"},"componentType":{"anyOf":[{"type":"null"},{"type":"number"}]},"count":{"anyOf":[{"type":"null"},{"type":"number"}]},"type":{"anyOf":[{"type":"null"},{"type":"string"}]},"normalized":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"min":{"anyOf":[{"type":"null"},{"type":"array","items":{"type":"number"}}]},"max":{"anyOf":[{"type":"null"},{"type":"array","items":{"type":"number"}}]},"sparseCount":{"anyOf":[{"type":"null"},{"type":"number"}]}},"required":["accessorIndex","bufferView","byteOffset","componentType","count","type","normalized","min","max","sparseCount"],"additionalProperties":false}},"materials":{"type":"array","items":{"type":"object","properties":{"materialIndex":{"type":"number"},"name":{"anyOf":[{"type":"null"},{"type":"string"}]},"doubleSided":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"alphaMode":{"type":"string"},"baseColorFactor":{"anyOf":[{"type":"null"},{"type":"array","items":{"type":"number"}}]},"metallicFactor":{"type":"number"},"roughnessFactor":{"type":"number"},"baseColorTexture":{"anyOf":[{"type":"null"},{"type":"number"}]},"normalTexture":{"anyOf":[{"type":"null"},{"type":"number"}]},"emissiveFactor":{"anyOf":[{"type":"null"},{"type":"array","items":{"type":"number"}}]}},"required":["materialIndex","name","doubleSided","alphaMode","baseColorFactor","metallicFactor","roughnessFactor","baseColorTexture","normalTexture","emissiveFactor"],"additionalProperties":false}},"textures":{"type":"array","items":{"type":"object","properties":{"textureIndex":{"type":"number"},"source":{"anyOf":[{"type":"null"},{"type":"number"}]},"sampler":{"anyOf":[{"type":"null"},{"type":"number"}]}},"required":["textureIndex","source","sampler"],"additionalProperties":false}},"images":{"type":"array","items":{"type":"object","properties":{"imageIndex":{"type":"number"},"name":{"anyOf":[{"type":"null"},{"type":"string"}]},"mimeType":{"anyOf":[{"type":"null"},{"type":"string"}]},"bufferView":{"anyOf":[{"type":"null"},{"type":"number"}]}},"required":["imageIndex","name","mimeType","bufferView"],"additionalProperties":false}},"skins":{"type":"array","items":{"type":"object","properties":{"skinIndex":{"type":"number"},"name":{"anyOf":[{"type":"null"},{"type":"string"}]},"joints":{"type":"array","items":{"type":"number"}},"skeleton":{"anyOf":[{"type":"null"},{"type":"number"}]},"inverseBindMatrices":{"anyOf":[{"type":"null"},{"type":"number"}]}},"required":["skinIndex","name","joints","skeleton","inverseBindMatrices"],"additionalProperties":false}},"animations":{"type":"array","items":{"type":"object","properties":{"animationIndex":{"type":"number"},"name":{"anyOf":[{"type":"null"},{"type":"string"}]},"channels":{"type":"array","items":{"type":"object","properties":{"sampler":{"anyOf":[{"type":"null"},{"type":"number"}]},"node":{"anyOf":[{"type":"null"},{"type":"number"}]},"path":{"anyOf":[{"type":"null"},{"type":"string"}]}},"required":["sampler","node","path"],"additionalProperties":false}},"samplers":{"type":"array","items":{"type":"object","properties":{"input":{"anyOf":[{"type":"null"},{"type":"number"}]},"output":{"anyOf":[{"type":"null"},{"type":"number"}]},"interpolation":{"type":"string"}},"required":["input","output","interpolation"],"additionalProperties":false}}},"required":["animationIndex","name","channels","samplers"],"additionalProperties":false}}},"required":["defaultScene","scenes","nodes","meshes","accessors","materials","textures","images","skins","animations"],"additionalProperties":false},"recommendations":{"type":"object","properties":{"policy":{"const":"authored-frame-conservative-v1","type":"string"},"normalization":{"anyOf":[{"type":"null"},{"type":"object","properties":{"status":{"const":"suggested","type":"string"},"translation":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"quaternion":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":4,"maxItems":4,"items":false},"scale":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"evidence":{"const":"measured-bounds-center-and-ground","type":"string"}},"required":["status","translation","quaternion","scale","evidence"],"additionalProperties":false}]},"orientation":{"type":"object","properties":{"up":{"const":"+Y","type":"string"},"upEvidence":{"const":"gltf-coordinate-convention","type":"string"},"front":{"const":"unknown","type":"string"},"horizontalLongAxis":{"anyOf":[{"const":"X","type":"string"},{"const":"Z","type":"string"},{"const":"ambiguous","type":"string"}]},"evidence":{"const":"measured-axis-aligned-extents","type":"string"}},"required":["up","upEvidence","front","horizontalLongAxis","evidence"],"additionalProperties":false},"colliderCandidates":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"shape":{"const":"box","type":"string"},"center":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"halfExtents":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"evidence":{"const":"conservative-rest-pose-bound-envelope","type":"string"},"approximation":{"const":"may-fill-openings-and-empty-space","type":"string"},"requiresAcceptance":{"const":true,"type":"boolean"}},"required":["id","shape","center","halfExtents","evidence","approximation","requiresAcceptance"],"additionalProperties":false}},"physics":{"type":"object","properties":{"motion":{"const":"static","type":"string"},"collision":{"anyOf":[{"const":"none","type":"string"},{"const":"solid","type":"string"}]},"controller":{"const":"none","type":"string"},"role":{"const":"unknown","type":"string"},"evidence":{"const":"conservative-fallback-not-material-inference","type":"string"},"accepted":{"const":false,"type":"boolean"}},"required":["motion","collision","controller","role","evidence","accepted"],"additionalProperties":false}},"required":["policy","normalization","orientation","colliderCandidates","physics"],"additionalProperties":false},"staticColliders":{"type":"object","properties":{"status":{"anyOf":[{"const":"partial","type":"string"},{"const":"unsupported","type":"string"},{"const":"complete","type":"string"}]},"candidates":{"type":"array","items":{"type":"object","properties":{"meshIndex":{"type":"number"},"geometry":{"type":"object","properties":{"shape":{"const":"triangle-mesh","type":"string"},"motion":{"const":"static-only","type":"string"},"coordinateFrame":{"const":"authored-scene","type":"string"},"vertices":{"type":"array","items":{"type":"number"}},"indices":{"type":"array","items":{"type":"number"}},"sourceFaces":{"type":"array","items":{"type":"number"}},"evidence":{"const":"measured-triangles-no-simplification","type":"string"},"requiresAcceptance":{"const":true,"type":"boolean"}},"required":["shape","motion","coordinateFrame","vertices","indices","evidence","requiresAcceptance"],"additionalProperties":false}},"required":["meshIndex","geometry"],"additionalProperties":false}}},"required":["status","candidates"],"additionalProperties":false},"fittedPrimitives":{"type":"array","items":{"type":"object","properties":{"meshIndex":{"type":"number"},"geometry":{"type":"object","properties":{"shape":{"const":"box","type":"string"},"center":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"halfExtents":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"evidence":{"const":"six-face-triangle-union-coverage","type":"string"},"toleranceM":{"type":"number"},"requiresAcceptance":{"const":true,"type":"boolean"}},"required":["shape","center","halfExtents","evidence","toleranceM","requiresAcceptance"],"additionalProperties":false}},"required":["meshIndex","geometry"],"additionalProperties":false}},"orientedBounds":{"type":"array","items":{"type":"object","properties":{"meshIndex":{"type":"number"},"bounds":{"type":"object","properties":{"center":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"halfExtents":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"quaternion":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":4,"maxItems":4,"items":false},"evidence":{"const":"authored-orthogonal-axis-envelope","type":"string"},"occupancy":{"const":"unknown","type":"string"}},"required":["center","halfExtents","quaternion","evidence","occupancy"],"additionalProperties":false}},"required":["meshIndex","bounds"],"additionalProperties":false}},"clearanceProbes":{"type":"array","items":{"type":"object","properties":{"featureId":{"type":"string"},"origin":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"direction":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"rangeM":{"type":"number"},"hitDistanceM":{"anyOf":[{"type":"null"},{"type":"number"}]},"status":{"anyOf":[{"const":"unknown","type":"string"},{"const":"observed-hit","type":"string"},{"const":"no-hit-within-range","type":"string"}]},"scope":{"const":"single-ray-not-volume-clearance","type":"string"},"geometryComplete":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]}},"required":["featureId","origin","direction","rangeM","hitDistanceM","status","scope","geometryComplete"],"additionalProperties":false}},"rectangularCavities":{"type":"array","items":{"type":"object","properties":{"bounds":{"type":"object","properties":{"min":{"type":"array","items":{"type":"number"}},"max":{"type":"array","items":{"type":"number"}}},"required":["min","max"],"additionalProperties":false},"opening":{"const":"+Y","type":"string"},"evidence":{"const":"five-covered-inward-planes-empty-interior","type":"string"},"toleranceM":{"type":"number"}},"required":["bounds","opening","evidence","toleranceM"],"additionalProperties":false}}},"required":["schema","schemaVersion","revision","content","analyzer","coordinates","validation","inventory","geometry","featureAvailability","planarPatches","components","interpretation","authored"],"additionalProperties":false}
acceptedOverridesno{"type":"object","properties":{"producer":{"const":"user","type":"string"},"state":{"const":"accepted","type":"string"},"baseManifestId":{"type":"string","format":"uuid"},"analysisRevision":{"type":"string"},"values":{"type":"object","properties":{"role":{"anyOf":[{"type":"null"},{"type":"string"}]},"front":{"anyOf":[{"type":"null"},{"const":"+X","type":"string"},{"const":"-X","type":"string"},{"const":"+Z","type":"string"},{"const":"-Z","type":"string"}]},"featureLabels":{"type":"object","properties":{},"required":[],"additionalProperties":{"type":"string"}},"physics":{"anyOf":[{"type":"null"},{"type":"object","properties":{"motion":{"anyOf":[{"const":"static","type":"string"},{"const":"dynamic","type":"string"},{"const":"kinematic","type":"string"}]},"collision":{"anyOf":[{"const":"none","type":"string"},{"const":"solid","type":"string"},{"const":"sensor","type":"string"}]},"controller":{"const":"none","type":"string"},"massKg":{"type":"number"},"friction":{"type":"number"},"restitution":{"type":"number"},"shape":{"anyOf":[{"const":"box","type":"string"},{"const":"triangle-mesh","type":"string"},{"const":"auto","type":"string"},{"const":"convex-hull","type":"string"},{"const":"decomposition","type":"string"}]}},"required":["motion","collision","controller"],"additionalProperties":false}]}},"required":["role","front","featureLabels","physics"],"additionalProperties":false}},"required":["producer","state","baseManifestId","analysisRevision","values"],"additionalProperties":false}
semanticInterpretationno{"type":"object","properties":{"version":{"const":"quay.asset-interpretation/1","type":"string"},"producer":{"anyOf":[{"const":"none","type":"string"},{"const":"openai","type":"string"}]},"model":{"anyOf":[{"type":"null"},{"type":"string"}]},"createdAt":{"type":"string","format":"date-time"},"baseManifestId":{"type":"string","format":"uuid"},"analysisRevision":{"type":"string"},"state":{"anyOf":[{"const":"unknown","type":"string"},{"const":"suggested","type":"string"},{"const":"accepted","type":"string"},{"const":"disputed","type":"string"}]},"reviewedBy":{"anyOf":[{"type":"null"},{"const":"user","type":"string"}]},"diagnostic":{"anyOf":[{"type":"null"},{"type":"string"}]},"suggestion":{"anyOf":[{"type":"null"},{"type":"object","properties":{"role":{"anyOf":[{"type":"null"},{"type":"string"}]},"physicalArchetype":{"anyOf":[{"type":"null"},{"const":"furniture","type":"string"},{"const":"prop","type":"string"},{"const":"architecture","type":"string"},{"const":"actor","type":"string"},{"const":"decorative","type":"string"}]},"affordances":{"type":"array","items":{"anyOf":[{"const":"supports","type":"string"},{"const":"contains","type":"string"},{"const":"graspable","type":"string"},{"const":"sit-on","type":"string"},{"const":"stand-on","type":"string"}]}},"features":{"type":"array","items":{"type":"object","properties":{"featureId":{"type":"string"},"label":{"type":"string"},"evidence":{"type":"array","items":{"type":"string"}},"confidence":{"type":"number"}},"required":["featureId","label","evidence","confidence"],"additionalProperties":false}},"evidence":{"type":"array","items":{"type":"string"}},"confidence":{"type":"number"}},"required":["role","physicalArchetype","affordances","features","evidence","confidence"],"additionalProperties":false}]}},"required":["version","producer","model","createdAt","baseManifestId","analysisRevision","state","reviewedBy","diagnostic","suggestion"],"additionalProperties":false}
Complete schema including nested definitions
JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "schema": {
      "const": "quay.asset-manifest",
      "type": "string"
    },
    "schemaVersion": {
      "const": "2.0.0-draft.1",
      "type": "string"
    },
    "manifestId": {
      "type": "string",
      "format": "uuid"
    },
    "assetId": {
      "type": "string",
      "format": "uuid"
    },
    "createdAt": {
      "type": "string",
      "format": "date-time"
    },
    "analysis": {
      "type": "object",
      "properties": {
        "schema": {
          "const": "quay.asset-analysis",
          "type": "string"
        },
        "schemaVersion": {
          "const": "2.0.0-draft.2",
          "type": "string"
        },
        "revision": {
          "type": "string"
        },
        "content": {
          "type": "object",
          "properties": {
            "sha256": {
              "type": "string"
            },
            "byteLength": {
              "type": "number"
            }
          },
          "required": [
            "sha256",
            "byteLength"
          ],
          "additionalProperties": false
        },
        "analyzer": {
          "type": "object",
          "properties": {
            "version": {
              "type": "string"
            },
            "threeVersion": {
              "type": "string"
            },
            "policy": {
              "type": "string"
            }
          },
          "required": [
            "version",
            "threeVersion",
            "policy"
          ],
          "additionalProperties": false
        },
        "coordinates": {
          "type": "object",
          "properties": {
            "units": {
              "const": "metres",
              "type": "string"
            },
            "up": {
              "const": "+Y",
              "type": "string"
            },
            "authoredForward": {
              "const": "unknown",
              "type": "string"
            }
          },
          "required": [
            "units",
            "up",
            "authoredForward"
          ],
          "additionalProperties": false
        },
        "validation": {
          "type": "object",
          "properties": {
            "container": {
              "const": "passed",
              "type": "string"
            },
            "loader": {
              "const": "passed",
              "type": "string"
            },
            "khronosValidator": {
              "anyOf": [
                {
                  "const": "not-run",
                  "type": "string"
                },
                {
                  "type": "object",
                  "properties": {
                    "producer": {
                      "const": "Khronos glTF Validator",
                      "type": "string"
                    },
                    "version": {
                      "type": "string"
                    },
                    "maxIssues": {
                      "type": "number"
                    },
                    "errors": {
                      "type": "number"
                    },
                    "warnings": {
                      "type": "number"
                    },
                    "infos": {
                      "type": "number"
                    },
                    "hints": {
                      "type": "number"
                    },
                    "truncated": {
                      "anyOf": [
                        {
                          "const": false,
                          "type": "boolean"
                        },
                        {
                          "const": true,
                          "type": "boolean"
                        }
                      ]
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "code": {
                            "type": "string"
                          },
                          "pointer": {
                            "type": "string"
                          },
                          "severity": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "code",
                          "pointer",
                          "severity"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "producer",
                    "version",
                    "maxIssues",
                    "errors",
                    "warnings",
                    "infos",
                    "hints",
                    "truncated",
                    "messages"
                  ],
                  "additionalProperties": false
                }
              ]
            }
          },
          "required": [
            "container",
            "loader",
            "khronosValidator"
          ],
          "additionalProperties": false
        },
        "inventory": {
          "type": "object",
          "properties": {
            "scenes": {
              "type": "number"
            },
            "nodes": {
              "type": "number"
            },
            "meshes": {
              "type": "number"
            },
            "primitives": {
              "type": "number"
            },
            "materials": {
              "type": "number"
            },
            "textures": {
              "type": "number"
            },
            "skins": {
              "type": "number"
            },
            "morphTargets": {
              "type": "number"
            },
            "animations": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "channels": {
                    "type": "number"
                  }
                },
                "required": [
                  "name",
                  "channels"
                ],
                "additionalProperties": false
              }
            }
          },
          "required": [
            "scenes",
            "nodes",
            "meshes",
            "primitives",
            "materials",
            "textures",
            "skins",
            "morphTargets",
            "animations"
          ],
          "additionalProperties": false
        },
        "geometry": {
          "type": "object",
          "properties": {
            "bounds": {
              "anyOf": [
                {
                  "type": "null"
                },
                {
                  "type": "object",
                  "properties": {
                    "min": {
                      "type": "array",
                      "items": {
                        "type": "number"
                      }
                    },
                    "max": {
                      "type": "array",
                      "items": {
                        "type": "number"
                      }
                    }
                  },
                  "required": [
                    "min",
                    "max"
                  ],
                  "additionalProperties": false
                }
              ]
            },
            "nodes": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "nodeIndex": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "number"
                      }
                    ]
                  },
                  "name": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "localMatrix": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  },
                  "worldMatrix": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  },
                  "bounds": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "object",
                        "properties": {
                          "min": {
                            "type": "array",
                            "items": {
                              "type": "number"
                            }
                          },
                          "max": {
                            "type": "array",
                            "items": {
                              "type": "number"
                            }
                          }
                        },
                        "required": [
                          "min",
                          "max"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  },
                  "localBounds": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "object",
                        "properties": {
                          "min": {
                            "type": "array",
                            "items": {
                              "type": "number"
                            }
                          },
                          "max": {
                            "type": "array",
                            "items": {
                              "type": "number"
                            }
                          }
                        },
                        "required": [
                          "min",
                          "max"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  },
                  "aggregateBounds": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "object",
                        "properties": {
                          "min": {
                            "type": "array",
                            "items": {
                              "type": "number"
                            }
                          },
                          "max": {
                            "type": "array",
                            "items": {
                              "type": "number"
                            }
                          }
                        },
                        "required": [
                          "min",
                          "max"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  }
                },
                "required": [
                  "nodeIndex",
                  "name",
                  "localMatrix",
                  "worldMatrix",
                  "bounds",
                  "localBounds",
                  "aggregateBounds"
                ],
                "additionalProperties": false
              }
            },
            "meshes": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "gltfMeshIndex": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "number"
                      }
                    ]
                  },
                  "primitiveIndex": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "number"
                      }
                    ]
                  },
                  "name": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "vertices": {
                    "type": "number"
                  },
                  "triangles": {
                    "type": "number"
                  },
                  "skinned": {
                    "anyOf": [
                      {
                        "const": false,
                        "type": "boolean"
                      },
                      {
                        "const": true,
                        "type": "boolean"
                      }
                    ]
                  },
                  "morphTargets": {
                    "type": "number"
                  },
                  "bounds": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "object",
                        "properties": {
                          "min": {
                            "type": "array",
                            "items": {
                              "type": "number"
                            }
                          },
                          "max": {
                            "type": "array",
                            "items": {
                              "type": "number"
                            }
                          }
                        },
                        "required": [
                          "min",
                          "max"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  }
                },
                "required": [
                  "gltfMeshIndex",
                  "primitiveIndex",
                  "name",
                  "vertices",
                  "triangles",
                  "skinned",
                  "morphTargets",
                  "bounds"
                ],
                "additionalProperties": false
              }
            }
          },
          "required": [
            "bounds",
            "nodes",
            "meshes"
          ],
          "additionalProperties": false
        },
        "featureAvailability": {
          "type": "object",
          "properties": {
            "supportSurfaces": {
              "anyOf": [
                {
                  "const": "not-analyzed",
                  "type": "string"
                },
                {
                  "const": "analyzed",
                  "type": "string"
                },
                {
                  "const": "partial",
                  "type": "string"
                },
                {
                  "const": "unsupported",
                  "type": "string"
                }
              ]
            },
            "contactRegions": {
              "anyOf": [
                {
                  "const": "not-analyzed",
                  "type": "string"
                },
                {
                  "const": "analyzed",
                  "type": "string"
                },
                {
                  "const": "partial",
                  "type": "string"
                },
                {
                  "const": "unsupported",
                  "type": "string"
                }
              ]
            },
            "components": {
              "anyOf": [
                {
                  "const": "not-analyzed",
                  "type": "string"
                },
                {
                  "const": "analyzed",
                  "type": "string"
                },
                {
                  "const": "partial",
                  "type": "string"
                },
                {
                  "const": "unsupported",
                  "type": "string"
                }
              ]
            },
            "cavities": {
              "anyOf": [
                {
                  "const": "not-analyzed",
                  "type": "string"
                },
                {
                  "const": "analyzed",
                  "type": "string"
                },
                {
                  "const": "partial",
                  "type": "string"
                },
                {
                  "const": "unsupported",
                  "type": "string"
                }
              ]
            },
            "openings": {
              "anyOf": [
                {
                  "const": "not-analyzed",
                  "type": "string"
                },
                {
                  "const": "analyzed",
                  "type": "string"
                },
                {
                  "const": "partial",
                  "type": "string"
                },
                {
                  "const": "unsupported",
                  "type": "string"
                }
              ]
            },
            "handles": {
              "anyOf": [
                {
                  "const": "not-analyzed",
                  "type": "string"
                },
                {
                  "const": "analyzed",
                  "type": "string"
                },
                {
                  "const": "partial",
                  "type": "string"
                },
                {
                  "const": "unsupported",
                  "type": "string"
                }
              ]
            },
            "orientation": {
              "anyOf": [
                {
                  "const": "not-analyzed",
                  "type": "string"
                },
                {
                  "const": "analyzed",
                  "type": "string"
                },
                {
                  "const": "partial",
                  "type": "string"
                },
                {
                  "const": "unsupported",
                  "type": "string"
                }
              ]
            },
            "colliders": {
              "anyOf": [
                {
                  "const": "not-analyzed",
                  "type": "string"
                },
                {
                  "const": "analyzed",
                  "type": "string"
                },
                {
                  "const": "partial",
                  "type": "string"
                },
                {
                  "const": "unsupported",
                  "type": "string"
                }
              ]
            }
          },
          "required": [
            "supportSurfaces",
            "contactRegions",
            "components",
            "cavities",
            "openings",
            "handles",
            "orientation",
            "colliders"
          ],
          "additionalProperties": false
        },
        "planarPatches": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "featureId": {
                "type": "string"
              },
              "meshIndex": {
                "type": "number"
              },
              "faceIndices": {
                "type": "array",
                "items": {
                  "type": "number"
                }
              },
              "faceIndicesComplete": {
                "anyOf": [
                  {
                    "const": false,
                    "type": "boolean"
                  },
                  {
                    "const": true,
                    "type": "boolean"
                  }
                ]
              },
              "normal": {
                "type": "array",
                "items": {
                  "type": "number"
                }
              },
              "bounds": {
                "type": "object",
                "properties": {
                  "min": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  },
                  "max": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  }
                },
                "required": [
                  "min",
                  "max"
                ],
                "additionalProperties": false
              },
              "areaM2": {
                "type": "number"
              },
              "purposeCandidate": {
                "anyOf": [
                  {
                    "const": "support",
                    "type": "string"
                  },
                  {
                    "const": "contact",
                    "type": "string"
                  },
                  {
                    "const": "other",
                    "type": "string"
                  }
                ]
              },
              "evidence": {
                "const": "measured-coplanar-edge-connected-triangles",
                "type": "string"
              },
              "weldToleranceM": {
                "type": "number"
              },
              "planeToleranceM": {
                "type": "number"
              },
              "surfaceFrame": {
                "type": "object",
                "properties": {
                  "version": {
                    "const": "orthonormal-v1",
                    "type": "string"
                  },
                  "localToAsset": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  }
                },
                "required": [
                  "version",
                  "localToAsset"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "featureId",
              "meshIndex",
              "faceIndices",
              "faceIndicesComplete",
              "normal",
              "bounds",
              "areaM2",
              "purposeCandidate",
              "evidence",
              "weldToleranceM",
              "planeToleranceM"
            ],
            "additionalProperties": false
          }
        },
        "components": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "featureId": {
                "type": "string"
              },
              "meshIndex": {
                "type": "number"
              },
              "triangleCount": {
                "type": "number"
              },
              "areaM2": {
                "type": "number"
              },
              "bounds": {
                "type": "object",
                "properties": {
                  "min": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  },
                  "max": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  }
                },
                "required": [
                  "min",
                  "max"
                ],
                "additionalProperties": false
              },
              "topology": {
                "anyOf": [
                  {
                    "const": "closed-oriented-at-weld-tolerance",
                    "type": "string"
                  },
                  {
                    "const": "open-or-nonmanifold",
                    "type": "string"
                  }
                ]
              },
              "weldToleranceM": {
                "type": "number"
              }
            },
            "required": [
              "featureId",
              "meshIndex",
              "triangleCount",
              "areaM2",
              "bounds",
              "topology",
              "weldToleranceM"
            ],
            "additionalProperties": false
          }
        },
        "interpretation": {
          "type": "object",
          "properties": {
            "status": {
              "const": "unknown",
              "type": "string"
            },
            "producer": {
              "const": "none",
              "type": "string"
            }
          },
          "required": [
            "status",
            "producer"
          ],
          "additionalProperties": false
        },
        "authored": {
          "type": "object",
          "properties": {
            "defaultScene": {
              "type": "number"
            },
            "scenes": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "sceneIndex": {
                    "type": "number"
                  },
                  "name": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "roots": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  }
                },
                "required": [
                  "sceneIndex",
                  "name",
                  "roots"
                ],
                "additionalProperties": false
              }
            },
            "nodes": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "nodeIndex": {
                    "type": "number"
                  },
                  "name": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "children": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  },
                  "mesh": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "number"
                      }
                    ]
                  },
                  "skin": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "number"
                      }
                    ]
                  },
                  "matrix": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "array",
                        "items": {
                          "type": "number"
                        }
                      }
                    ]
                  },
                  "translation": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "array",
                        "items": {
                          "type": "number"
                        }
                      }
                    ]
                  },
                  "rotation": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "array",
                        "items": {
                          "type": "number"
                        }
                      }
                    ]
                  },
                  "scale": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "array",
                        "items": {
                          "type": "number"
                        }
                      }
                    ]
                  },
                  "weights": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "array",
                        "items": {
                          "type": "number"
                        }
                      }
                    ]
                  }
                },
                "required": [
                  "nodeIndex",
                  "name",
                  "children",
                  "mesh",
                  "skin",
                  "matrix",
                  "translation",
                  "rotation",
                  "scale",
                  "weights"
                ],
                "additionalProperties": false
              }
            },
            "meshes": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "meshIndex": {
                    "type": "number"
                  },
                  "name": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "weights": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "array",
                        "items": {
                          "type": "number"
                        }
                      }
                    ]
                  },
                  "primitives": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "primitiveIndex": {
                          "type": "number"
                        },
                        "mode": {
                          "type": "number"
                        },
                        "indices": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "type": "number"
                            }
                          ]
                        },
                        "material": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "type": "number"
                            }
                          ]
                        },
                        "attributes": {
                          "type": "object",
                          "properties": {},
                          "required": [],
                          "additionalProperties": {
                            "anyOf": [
                              {
                                "type": "null"
                              },
                              {
                                "type": "number"
                              }
                            ]
                          }
                        },
                        "morphTargets": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {},
                            "required": [],
                            "additionalProperties": {
                              "anyOf": [
                                {
                                  "type": "null"
                                },
                                {
                                  "type": "number"
                                }
                              ]
                            }
                          }
                        }
                      },
                      "required": [
                        "primitiveIndex",
                        "mode",
                        "indices",
                        "material",
                        "attributes",
                        "morphTargets"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "meshIndex",
                  "name",
                  "weights",
                  "primitives"
                ],
                "additionalProperties": false
              }
            },
            "accessors": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "accessorIndex": {
                    "type": "number"
                  },
                  "bufferView": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "number"
                      }
                    ]
                  },
                  "byteOffset": {
                    "type": "number"
                  },
                  "componentType": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "number"
                      }
                    ]
                  },
                  "count": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "number"
                      }
                    ]
                  },
                  "type": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "normalized": {
                    "anyOf": [
                      {
                        "const": false,
                        "type": "boolean"
                      },
                      {
                        "const": true,
                        "type": "boolean"
                      }
                    ]
                  },
                  "min": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "array",
                        "items": {
                          "type": "number"
                        }
                      }
                    ]
                  },
                  "max": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "array",
                        "items": {
                          "type": "number"
                        }
                      }
                    ]
                  },
                  "sparseCount": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "number"
                      }
                    ]
                  }
                },
                "required": [
                  "accessorIndex",
                  "bufferView",
                  "byteOffset",
                  "componentType",
                  "count",
                  "type",
                  "normalized",
                  "min",
                  "max",
                  "sparseCount"
                ],
                "additionalProperties": false
              }
            },
            "materials": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "materialIndex": {
                    "type": "number"
                  },
                  "name": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "doubleSided": {
                    "anyOf": [
                      {
                        "const": false,
                        "type": "boolean"
                      },
                      {
                        "const": true,
                        "type": "boolean"
                      }
                    ]
                  },
                  "alphaMode": {
                    "type": "string"
                  },
                  "baseColorFactor": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "array",
                        "items": {
                          "type": "number"
                        }
                      }
                    ]
                  },
                  "metallicFactor": {
                    "type": "number"
                  },
                  "roughnessFactor": {
                    "type": "number"
                  },
                  "baseColorTexture": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "number"
                      }
                    ]
                  },
                  "normalTexture": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "number"
                      }
                    ]
                  },
                  "emissiveFactor": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "array",
                        "items": {
                          "type": "number"
                        }
                      }
                    ]
                  }
                },
                "required": [
                  "materialIndex",
                  "name",
                  "doubleSided",
                  "alphaMode",
                  "baseColorFactor",
                  "metallicFactor",
                  "roughnessFactor",
                  "baseColorTexture",
                  "normalTexture",
                  "emissiveFactor"
                ],
                "additionalProperties": false
              }
            },
            "textures": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "textureIndex": {
                    "type": "number"
                  },
                  "source": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "number"
                      }
                    ]
                  },
                  "sampler": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "number"
                      }
                    ]
                  }
                },
                "required": [
                  "textureIndex",
                  "source",
                  "sampler"
                ],
                "additionalProperties": false
              }
            },
            "images": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "imageIndex": {
                    "type": "number"
                  },
                  "name": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "mimeType": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "bufferView": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "number"
                      }
                    ]
                  }
                },
                "required": [
                  "imageIndex",
                  "name",
                  "mimeType",
                  "bufferView"
                ],
                "additionalProperties": false
              }
            },
            "skins": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "skinIndex": {
                    "type": "number"
                  },
                  "name": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "joints": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  },
                  "skeleton": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "number"
                      }
                    ]
                  },
                  "inverseBindMatrices": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "number"
                      }
                    ]
                  }
                },
                "required": [
                  "skinIndex",
                  "name",
                  "joints",
                  "skeleton",
                  "inverseBindMatrices"
                ],
                "additionalProperties": false
              }
            },
            "animations": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "animationIndex": {
                    "type": "number"
                  },
                  "name": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "channels": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "sampler": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "type": "number"
                            }
                          ]
                        },
                        "node": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "type": "number"
                            }
                          ]
                        },
                        "path": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "type": "string"
                            }
                          ]
                        }
                      },
                      "required": [
                        "sampler",
                        "node",
                        "path"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "samplers": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "input": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "type": "number"
                            }
                          ]
                        },
                        "output": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "type": "number"
                            }
                          ]
                        },
                        "interpolation": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "input",
                        "output",
                        "interpolation"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "animationIndex",
                  "name",
                  "channels",
                  "samplers"
                ],
                "additionalProperties": false
              }
            }
          },
          "required": [
            "defaultScene",
            "scenes",
            "nodes",
            "meshes",
            "accessors",
            "materials",
            "textures",
            "images",
            "skins",
            "animations"
          ],
          "additionalProperties": false
        },
        "recommendations": {
          "type": "object",
          "properties": {
            "policy": {
              "const": "authored-frame-conservative-v1",
              "type": "string"
            },
            "normalization": {
              "anyOf": [
                {
                  "type": "null"
                },
                {
                  "type": "object",
                  "properties": {
                    "status": {
                      "const": "suggested",
                      "type": "string"
                    },
                    "translation": {
                      "type": "array",
                      "prefixItems": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "number"
                        }
                      ],
                      "minItems": 3,
                      "maxItems": 3,
                      "items": false
                    },
                    "quaternion": {
                      "type": "array",
                      "prefixItems": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "number"
                        }
                      ],
                      "minItems": 4,
                      "maxItems": 4,
                      "items": false
                    },
                    "scale": {
                      "type": "array",
                      "prefixItems": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "number"
                        }
                      ],
                      "minItems": 3,
                      "maxItems": 3,
                      "items": false
                    },
                    "evidence": {
                      "const": "measured-bounds-center-and-ground",
                      "type": "string"
                    }
                  },
                  "required": [
                    "status",
                    "translation",
                    "quaternion",
                    "scale",
                    "evidence"
                  ],
                  "additionalProperties": false
                }
              ]
            },
            "orientation": {
              "type": "object",
              "properties": {
                "up": {
                  "const": "+Y",
                  "type": "string"
                },
                "upEvidence": {
                  "const": "gltf-coordinate-convention",
                  "type": "string"
                },
                "front": {
                  "const": "unknown",
                  "type": "string"
                },
                "horizontalLongAxis": {
                  "anyOf": [
                    {
                      "const": "X",
                      "type": "string"
                    },
                    {
                      "const": "Z",
                      "type": "string"
                    },
                    {
                      "const": "ambiguous",
                      "type": "string"
                    }
                  ]
                },
                "evidence": {
                  "const": "measured-axis-aligned-extents",
                  "type": "string"
                }
              },
              "required": [
                "up",
                "upEvidence",
                "front",
                "horizontalLongAxis",
                "evidence"
              ],
              "additionalProperties": false
            },
            "colliderCandidates": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "shape": {
                    "const": "box",
                    "type": "string"
                  },
                  "center": {
                    "type": "array",
                    "prefixItems": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      }
                    ],
                    "minItems": 3,
                    "maxItems": 3,
                    "items": false
                  },
                  "halfExtents": {
                    "type": "array",
                    "prefixItems": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      }
                    ],
                    "minItems": 3,
                    "maxItems": 3,
                    "items": false
                  },
                  "evidence": {
                    "const": "conservative-rest-pose-bound-envelope",
                    "type": "string"
                  },
                  "approximation": {
                    "const": "may-fill-openings-and-empty-space",
                    "type": "string"
                  },
                  "requiresAcceptance": {
                    "const": true,
                    "type": "boolean"
                  }
                },
                "required": [
                  "id",
                  "shape",
                  "center",
                  "halfExtents",
                  "evidence",
                  "approximation",
                  "requiresAcceptance"
                ],
                "additionalProperties": false
              }
            },
            "physics": {
              "type": "object",
              "properties": {
                "motion": {
                  "const": "static",
                  "type": "string"
                },
                "collision": {
                  "anyOf": [
                    {
                      "const": "none",
                      "type": "string"
                    },
                    {
                      "const": "solid",
                      "type": "string"
                    }
                  ]
                },
                "controller": {
                  "const": "none",
                  "type": "string"
                },
                "role": {
                  "const": "unknown",
                  "type": "string"
                },
                "evidence": {
                  "const": "conservative-fallback-not-material-inference",
                  "type": "string"
                },
                "accepted": {
                  "const": false,
                  "type": "boolean"
                }
              },
              "required": [
                "motion",
                "collision",
                "controller",
                "role",
                "evidence",
                "accepted"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "policy",
            "normalization",
            "orientation",
            "colliderCandidates",
            "physics"
          ],
          "additionalProperties": false
        },
        "staticColliders": {
          "type": "object",
          "properties": {
            "status": {
              "anyOf": [
                {
                  "const": "partial",
                  "type": "string"
                },
                {
                  "const": "unsupported",
                  "type": "string"
                },
                {
                  "const": "complete",
                  "type": "string"
                }
              ]
            },
            "candidates": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "meshIndex": {
                    "type": "number"
                  },
                  "geometry": {
                    "type": "object",
                    "properties": {
                      "shape": {
                        "const": "triangle-mesh",
                        "type": "string"
                      },
                      "motion": {
                        "const": "static-only",
                        "type": "string"
                      },
                      "coordinateFrame": {
                        "const": "authored-scene",
                        "type": "string"
                      },
                      "vertices": {
                        "type": "array",
                        "items": {
                          "type": "number"
                        }
                      },
                      "indices": {
                        "type": "array",
                        "items": {
                          "type": "number"
                        }
                      },
                      "sourceFaces": {
                        "type": "array",
                        "items": {
                          "type": "number"
                        }
                      },
                      "evidence": {
                        "const": "measured-triangles-no-simplification",
                        "type": "string"
                      },
                      "requiresAcceptance": {
                        "const": true,
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "shape",
                      "motion",
                      "coordinateFrame",
                      "vertices",
                      "indices",
                      "evidence",
                      "requiresAcceptance"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "meshIndex",
                  "geometry"
                ],
                "additionalProperties": false
              }
            }
          },
          "required": [
            "status",
            "candidates"
          ],
          "additionalProperties": false
        },
        "fittedPrimitives": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "meshIndex": {
                "type": "number"
              },
              "geometry": {
                "type": "object",
                "properties": {
                  "shape": {
                    "const": "box",
                    "type": "string"
                  },
                  "center": {
                    "type": "array",
                    "prefixItems": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      }
                    ],
                    "minItems": 3,
                    "maxItems": 3,
                    "items": false
                  },
                  "halfExtents": {
                    "type": "array",
                    "prefixItems": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      }
                    ],
                    "minItems": 3,
                    "maxItems": 3,
                    "items": false
                  },
                  "evidence": {
                    "const": "six-face-triangle-union-coverage",
                    "type": "string"
                  },
                  "toleranceM": {
                    "type": "number"
                  },
                  "requiresAcceptance": {
                    "const": true,
                    "type": "boolean"
                  }
                },
                "required": [
                  "shape",
                  "center",
                  "halfExtents",
                  "evidence",
                  "toleranceM",
                  "requiresAcceptance"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "meshIndex",
              "geometry"
            ],
            "additionalProperties": false
          }
        },
        "orientedBounds": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "meshIndex": {
                "type": "number"
              },
              "bounds": {
                "type": "object",
                "properties": {
                  "center": {
                    "type": "array",
                    "prefixItems": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      }
                    ],
                    "minItems": 3,
                    "maxItems": 3,
                    "items": false
                  },
                  "halfExtents": {
                    "type": "array",
                    "prefixItems": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      }
                    ],
                    "minItems": 3,
                    "maxItems": 3,
                    "items": false
                  },
                  "quaternion": {
                    "type": "array",
                    "prefixItems": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      }
                    ],
                    "minItems": 4,
                    "maxItems": 4,
                    "items": false
                  },
                  "evidence": {
                    "const": "authored-orthogonal-axis-envelope",
                    "type": "string"
                  },
                  "occupancy": {
                    "const": "unknown",
                    "type": "string"
                  }
                },
                "required": [
                  "center",
                  "halfExtents",
                  "quaternion",
                  "evidence",
                  "occupancy"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "meshIndex",
              "bounds"
            ],
            "additionalProperties": false
          }
        },
        "clearanceProbes": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "featureId": {
                "type": "string"
              },
              "origin": {
                "type": "array",
                "prefixItems": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ],
                "minItems": 3,
                "maxItems": 3,
                "items": false
              },
              "direction": {
                "type": "array",
                "prefixItems": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ],
                "minItems": 3,
                "maxItems": 3,
                "items": false
              },
              "rangeM": {
                "type": "number"
              },
              "hitDistanceM": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              "status": {
                "anyOf": [
                  {
                    "const": "unknown",
                    "type": "string"
                  },
                  {
                    "const": "observed-hit",
                    "type": "string"
                  },
                  {
                    "const": "no-hit-within-range",
                    "type": "string"
                  }
                ]
              },
              "scope": {
                "const": "single-ray-not-volume-clearance",
                "type": "string"
              },
              "geometryComplete": {
                "anyOf": [
                  {
                    "const": false,
                    "type": "boolean"
                  },
                  {
                    "const": true,
                    "type": "boolean"
                  }
                ]
              }
            },
            "required": [
              "featureId",
              "origin",
              "direction",
              "rangeM",
              "hitDistanceM",
              "status",
              "scope",
              "geometryComplete"
            ],
            "additionalProperties": false
          }
        },
        "rectangularCavities": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "bounds": {
                "type": "object",
                "properties": {
                  "min": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  },
                  "max": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  }
                },
                "required": [
                  "min",
                  "max"
                ],
                "additionalProperties": false
              },
              "opening": {
                "const": "+Y",
                "type": "string"
              },
              "evidence": {
                "const": "five-covered-inward-planes-empty-interior",
                "type": "string"
              },
              "toleranceM": {
                "type": "number"
              }
            },
            "required": [
              "bounds",
              "opening",
              "evidence",
              "toleranceM"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "schema",
        "schemaVersion",
        "revision",
        "content",
        "analyzer",
        "coordinates",
        "validation",
        "inventory",
        "geometry",
        "featureAvailability",
        "planarPatches",
        "components",
        "interpretation",
        "authored"
      ],
      "additionalProperties": false
    },
    "acceptedOverrides": {
      "type": "object",
      "properties": {
        "producer": {
          "const": "user",
          "type": "string"
        },
        "state": {
          "const": "accepted",
          "type": "string"
        },
        "baseManifestId": {
          "type": "string",
          "format": "uuid"
        },
        "analysisRevision": {
          "type": "string"
        },
        "values": {
          "type": "object",
          "properties": {
            "role": {
              "anyOf": [
                {
                  "type": "null"
                },
                {
                  "type": "string"
                }
              ]
            },
            "front": {
              "anyOf": [
                {
                  "type": "null"
                },
                {
                  "const": "+X",
                  "type": "string"
                },
                {
                  "const": "-X",
                  "type": "string"
                },
                {
                  "const": "+Z",
                  "type": "string"
                },
                {
                  "const": "-Z",
                  "type": "string"
                }
              ]
            },
            "featureLabels": {
              "type": "object",
              "properties": {},
              "required": [],
              "additionalProperties": {
                "type": "string"
              }
            },
            "physics": {
              "anyOf": [
                {
                  "type": "null"
                },
                {
                  "type": "object",
                  "properties": {
                    "motion": {
                      "anyOf": [
                        {
                          "const": "static",
                          "type": "string"
                        },
                        {
                          "const": "dynamic",
                          "type": "string"
                        },
                        {
                          "const": "kinematic",
                          "type": "string"
                        }
                      ]
                    },
                    "collision": {
                      "anyOf": [
                        {
                          "const": "none",
                          "type": "string"
                        },
                        {
                          "const": "solid",
                          "type": "string"
                        },
                        {
                          "const": "sensor",
                          "type": "string"
                        }
                      ]
                    },
                    "controller": {
                      "const": "none",
                      "type": "string"
                    },
                    "massKg": {
                      "type": "number"
                    },
                    "friction": {
                      "type": "number"
                    },
                    "restitution": {
                      "type": "number"
                    },
                    "shape": {
                      "anyOf": [
                        {
                          "const": "box",
                          "type": "string"
                        },
                        {
                          "const": "triangle-mesh",
                          "type": "string"
                        },
                        {
                          "const": "auto",
                          "type": "string"
                        },
                        {
                          "const": "convex-hull",
                          "type": "string"
                        },
                        {
                          "const": "decomposition",
                          "type": "string"
                        }
                      ]
                    }
                  },
                  "required": [
                    "motion",
                    "collision",
                    "controller"
                  ],
                  "additionalProperties": false
                }
              ]
            }
          },
          "required": [
            "role",
            "front",
            "featureLabels",
            "physics"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "producer",
        "state",
        "baseManifestId",
        "analysisRevision",
        "values"
      ],
      "additionalProperties": false
    },
    "semanticInterpretation": {
      "type": "object",
      "properties": {
        "version": {
          "const": "quay.asset-interpretation/1",
          "type": "string"
        },
        "producer": {
          "anyOf": [
            {
              "const": "none",
              "type": "string"
            },
            {
              "const": "openai",
              "type": "string"
            }
          ]
        },
        "model": {
          "anyOf": [
            {
              "type": "null"
            },
            {
              "type": "string"
            }
          ]
        },
        "createdAt": {
          "type": "string",
          "format": "date-time"
        },
        "baseManifestId": {
          "type": "string",
          "format": "uuid"
        },
        "analysisRevision": {
          "type": "string"
        },
        "state": {
          "anyOf": [
            {
              "const": "unknown",
              "type": "string"
            },
            {
              "const": "suggested",
              "type": "string"
            },
            {
              "const": "accepted",
              "type": "string"
            },
            {
              "const": "disputed",
              "type": "string"
            }
          ]
        },
        "reviewedBy": {
          "anyOf": [
            {
              "type": "null"
            },
            {
              "const": "user",
              "type": "string"
            }
          ]
        },
        "diagnostic": {
          "anyOf": [
            {
              "type": "null"
            },
            {
              "type": "string"
            }
          ]
        },
        "suggestion": {
          "anyOf": [
            {
              "type": "null"
            },
            {
              "type": "object",
              "properties": {
                "role": {
                  "anyOf": [
                    {
                      "type": "null"
                    },
                    {
                      "type": "string"
                    }
                  ]
                },
                "physicalArchetype": {
                  "anyOf": [
                    {
                      "type": "null"
                    },
                    {
                      "const": "furniture",
                      "type": "string"
                    },
                    {
                      "const": "prop",
                      "type": "string"
                    },
                    {
                      "const": "architecture",
                      "type": "string"
                    },
                    {
                      "const": "actor",
                      "type": "string"
                    },
                    {
                      "const": "decorative",
                      "type": "string"
                    }
                  ]
                },
                "affordances": {
                  "type": "array",
                  "items": {
                    "anyOf": [
                      {
                        "const": "supports",
                        "type": "string"
                      },
                      {
                        "const": "contains",
                        "type": "string"
                      },
                      {
                        "const": "graspable",
                        "type": "string"
                      },
                      {
                        "const": "sit-on",
                        "type": "string"
                      },
                      {
                        "const": "stand-on",
                        "type": "string"
                      }
                    ]
                  }
                },
                "features": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "featureId": {
                        "type": "string"
                      },
                      "label": {
                        "type": "string"
                      },
                      "evidence": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "confidence": {
                        "type": "number"
                      }
                    },
                    "required": [
                      "featureId",
                      "label",
                      "evidence",
                      "confidence"
                    ],
                    "additionalProperties": false
                  }
                },
                "evidence": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "confidence": {
                  "type": "number"
                }
              },
              "required": [
                "role",
                "physicalArchetype",
                "affordances",
                "features",
                "evidence",
                "confidence"
              ],
              "additionalProperties": false
            }
          ]
        }
      },
      "required": [
        "version",
        "producer",
        "model",
        "createdAt",
        "baseManifestId",
        "analysisRevision",
        "state",
        "reviewedBy",
        "diagnostic",
        "suggestion"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "schema",
    "schemaVersion",
    "manifestId",
    "assetId",
    "createdAt",
    "analysis"
  ],
  "additionalProperties": false
}

audio.schema.json

Download audio.schema.json

Root propertyRequiredConstraint
versionyes{"const":"ridley.audio/1","type":"string"}
assetIdyes{"type":"string"}
displayNameyes{"type":"string"}
sha256yes{"type":"string"}
uriyes{"type":"string"}
byteLengthyes{"type":"number"}
mediaTypeyes{"anyOf":[{"const":"audio/wav","type":"string"},{"const":"audio/mpeg","type":"string"}]}
durationSecondsyes{"type":"number"}
sampleRateyes{"type":"number"}
channelsyes{"anyOf":[{"const":1,"type":"number"},{"const":2,"type":"number"}]}
Complete schema including nested definitions
JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "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
}

cinematic.schema.json

Download cinematic.schema.json

Root propertyRequiredConstraint
audiono{"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}}
schemayes{"const":"quay.cinematic","type":"string"}
versionyes{"const":"1.0.0","type":"string"}
compileryes{"const":"ridley.compiler/1","type":"string"}
worldSceneIdyes{"type":"string"}
worldSourceHashyes{"type":"string"}
sourceHashyes{"type":"string"}
bindingsyes{"type":"object","properties":{},"required":[],"additionalProperties":{"type":"string"}}
directionno{"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}
sequencesyes{"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}}
triggersyes{"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}}
Complete schema including nested definitions
JSON
{
  "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
}

experience.schema.json

Download experience.schema.json

Root propertyRequiredConstraint
personasno{"type":"array","items":{"type":"object","properties":{"version":{"const":"ridley.persona/1","type":"string"},"personaId":{"type":"string"},"profileId":{"type":"string"},"parentId":{"anyOf":[{"type":"null"},{"type":"string"}]},"revision":{"type":"number"},"createdAt":{"type":"string"},"sha256":{"type":"string"},"description":{"type":"object","properties":{"name":{"type":"string"},"role":{"type":"string"},"instructions":{"type":"string"},"knowledge":{"type":"string"},"speakingStyle":{"type":"string"},"language":{"type":"string"},"allowedTopics":{"type":"array","items":{"type":"string"}},"forbiddenTopics":{"type":"array","items":{"type":"string"}},"emotionalBaseline":{"type":"string"},"memory":{"anyOf":[{"const":"none","type":"string"},{"const":"session","type":"string"}]},"maxTurns":{"type":"number"},"maxHistoryChars":{"type":"number"}},"required":["name","role","instructions","knowledge","speakingStyle","language","allowedTopics","forbiddenTopics","emotionalBaseline","memory","maxTurns","maxHistoryChars"],"additionalProperties":false}},"required":["version","personaId","profileId","parentId","revision","createdAt","sha256","description"],"additionalProperties":false}}
npcsno{"type":"array","items":{"type":"object","properties":{"actor":{"type":"string"},"profileId":{"type":"string"}},"required":["actor","profileId"],"additionalProperties":false}}
audiono{"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}}
schemayes{"const":"quay.experience","type":"string"}
versionyes{"const":"1.0.0","type":"string"}
compileryes{"const":"ridley.experience/1","type":"string"}
worldSceneIdyes{"type":"string"}
worldSourceHashyes{"type":"string"}
sourceHashyes{"type":"string"}
bindingsyes{"type":"object","properties":{},"required":[],"additionalProperties":{"type":"string"}}
initialyes{"type":"string"}
statesyes{"type":"array","items":{"type":"object","properties":{"audio":{"type":"array","items":{"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}},"id":{"type":"string"},"mode":{"anyOf":[{"const":"interactive","type":"string"},{"const":"cinematic","type":"string"},{"const":"conversation","type":"string"}]},"conversation":{"type":"object","properties":{"actor":{"type":"string"},"profileId":{"type":"string"}},"required":["actor","profileId"],"additionalProperties":false},"cinematic":{"anyOf":[{"type":"null"},{"type":"string"}]},"control":{"anyOf":[{"type":"null"},{"type":"string"}]},"camera":{"anyOf":[{"const":"third-person","type":"string"},{"const":"first-person","type":"string"},{"const":"overhead","type":"string"},{"const":"overview","type":"string"}]},"userCamera":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"followers":{"type":"array","items":{"type":"object","properties":{"actor":{"type":"string"},"target":{"type":"string"},"distance":{"type":"number"},"delay":{"type":"number"},"speed":{"type":"number"}},"required":["actor","target","distance","delay","speed"],"additionalProperties":false}}},"required":["id","mode","cinematic","control","camera","userCamera","followers"],"additionalProperties":false}}
transitionsyes{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"from":{"type":"string"},"to":{"type":"string"},"event":{"type":"string"},"subject":{"anyOf":[{"type":"null"},{"type":"string"}]},"target":{"anyOf":[{"type":"null"},{"type":"string"}]},"once":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]}},"required":["id","from","to","event","subject","target","once"],"additionalProperties":false}}
Complete schema including nested definitions
JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "personas": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "version": {
            "const": "ridley.persona/1",
            "type": "string"
          },
          "personaId": {
            "type": "string"
          },
          "profileId": {
            "type": "string"
          },
          "parentId": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "revision": {
            "type": "number"
          },
          "createdAt": {
            "type": "string"
          },
          "sha256": {
            "type": "string"
          },
          "description": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "role": {
                "type": "string"
              },
              "instructions": {
                "type": "string"
              },
              "knowledge": {
                "type": "string"
              },
              "speakingStyle": {
                "type": "string"
              },
              "language": {
                "type": "string"
              },
              "allowedTopics": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "forbiddenTopics": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "emotionalBaseline": {
                "type": "string"
              },
              "memory": {
                "anyOf": [
                  {
                    "const": "none",
                    "type": "string"
                  },
                  {
                    "const": "session",
                    "type": "string"
                  }
                ]
              },
              "maxTurns": {
                "type": "number"
              },
              "maxHistoryChars": {
                "type": "number"
              }
            },
            "required": [
              "name",
              "role",
              "instructions",
              "knowledge",
              "speakingStyle",
              "language",
              "allowedTopics",
              "forbiddenTopics",
              "emotionalBaseline",
              "memory",
              "maxTurns",
              "maxHistoryChars"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "version",
          "personaId",
          "profileId",
          "parentId",
          "revision",
          "createdAt",
          "sha256",
          "description"
        ],
        "additionalProperties": false
      }
    },
    "npcs": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "actor": {
            "type": "string"
          },
          "profileId": {
            "type": "string"
          }
        },
        "required": [
          "actor",
          "profileId"
        ],
        "additionalProperties": false
      }
    },
    "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.experience",
      "type": "string"
    },
    "version": {
      "const": "1.0.0",
      "type": "string"
    },
    "compiler": {
      "const": "ridley.experience/1",
      "type": "string"
    },
    "worldSceneId": {
      "type": "string"
    },
    "worldSourceHash": {
      "type": "string"
    },
    "sourceHash": {
      "type": "string"
    },
    "bindings": {
      "type": "object",
      "properties": {},
      "required": [],
      "additionalProperties": {
        "type": "string"
      }
    },
    "initial": {
      "type": "string"
    },
    "states": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "audio": {
            "type": "array",
            "items": {
              "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
            }
          },
          "id": {
            "type": "string"
          },
          "mode": {
            "anyOf": [
              {
                "const": "interactive",
                "type": "string"
              },
              {
                "const": "cinematic",
                "type": "string"
              },
              {
                "const": "conversation",
                "type": "string"
              }
            ]
          },
          "conversation": {
            "type": "object",
            "properties": {
              "actor": {
                "type": "string"
              },
              "profileId": {
                "type": "string"
              }
            },
            "required": [
              "actor",
              "profileId"
            ],
            "additionalProperties": false
          },
          "cinematic": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "control": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "camera": {
            "anyOf": [
              {
                "const": "third-person",
                "type": "string"
              },
              {
                "const": "first-person",
                "type": "string"
              },
              {
                "const": "overhead",
                "type": "string"
              },
              {
                "const": "overview",
                "type": "string"
              }
            ]
          },
          "userCamera": {
            "anyOf": [
              {
                "const": false,
                "type": "boolean"
              },
              {
                "const": true,
                "type": "boolean"
              }
            ]
          },
          "followers": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "actor": {
                  "type": "string"
                },
                "target": {
                  "type": "string"
                },
                "distance": {
                  "type": "number"
                },
                "delay": {
                  "type": "number"
                },
                "speed": {
                  "type": "number"
                }
              },
              "required": [
                "actor",
                "target",
                "distance",
                "delay",
                "speed"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "id",
          "mode",
          "cinematic",
          "control",
          "camera",
          "userCamera",
          "followers"
        ],
        "additionalProperties": false
      }
    },
    "transitions": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "from": {
            "type": "string"
          },
          "to": {
            "type": "string"
          },
          "event": {
            "type": "string"
          },
          "subject": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "target": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "once": {
            "anyOf": [
              {
                "const": false,
                "type": "boolean"
              },
              {
                "const": true,
                "type": "boolean"
              }
            ]
          }
        },
        "required": [
          "id",
          "from",
          "to",
          "event",
          "subject",
          "target",
          "once"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "schema",
    "version",
    "compiler",
    "worldSceneId",
    "worldSourceHash",
    "sourceHash",
    "bindings",
    "initial",
    "states",
    "transitions"
  ],
  "additionalProperties": false
}

material.schema.json

Download material.schema.json

Root propertyRequiredConstraint
versionyes{"const":"quay.material/1","type":"string"}
identityyes{"type":"string"}
aliasyes{"type":"string"}
labelyes{"type":"string"}
descriptionyes{"type":"string"}
categoryyes{"anyOf":[{"const":"generic","type":"string"},{"const":"wood","type":"string"},{"const":"metal","type":"string"},{"const":"stone","type":"string"},{"const":"concrete","type":"string"},{"const":"ceramic","type":"string"},{"const":"fabric","type":"string"},{"const":"glass","type":"string"},{"const":"paper","type":"string"},{"const":"plastic","type":"string"},{"const":"paint","type":"string"}]}
shaderyes{"anyOf":[{"const":"standard","type":"string"},{"const":"unlit","type":"string"}]}
coloryes{"type":"string"}
roughnessyes{"type":"number"}
metalnessyes{"type":"number"}
emissiveyes{"type":"string"}
emissiveIntensityyes{"type":"number"}
opacityyes{"type":"number"}
alphaModeyes{"anyOf":[{"const":"opaque","type":"string"},{"const":"mask","type":"string"},{"const":"blend","type":"string"}]}
alphaCutoffyes{"type":"number"}
sideyes{"anyOf":[{"const":"front","type":"string"},{"const":"back","type":"string"},{"const":"double","type":"string"}]}
presetyes{"anyOf":[{"type":"null"},{"type":"string"}]}
mapsyes{"type":"array","items":{"type":"object","properties":{"slot":{"anyOf":[{"const":"color","type":"string"},{"const":"normal","type":"string"},{"const":"roughness","type":"string"},{"const":"metalness","type":"string"},{"const":"emissive","type":"string"},{"const":"occlusion","type":"string"},{"const":"alpha","type":"string"}]},"image":{"type":"object","properties":{"assetId":{"type":"string"},"uri":{"type":"string"},"sha256":{"type":"string"},"byteLength":{"type":"number"},"mediaType":{"anyOf":[{"const":"image/png","type":"string"},{"const":"image/jpeg","type":"string"},{"const":"image/webp","type":"string"}]},"displayName":{"type":"string"}},"required":["assetId","uri","sha256","byteLength","mediaType","displayName"],"additionalProperties":false},"repeat":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"minItems":2,"maxItems":2,"items":false},"offset":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"minItems":2,"maxItems":2,"items":false},"rotation":{"type":"number"},"wrap":{"anyOf":[{"const":"repeat","type":"string"},{"const":"clamp","type":"string"},{"const":"mirror","type":"string"}]}},"required":["slot","image","repeat","offset","rotation","wrap"],"additionalProperties":false}}
Complete schema including nested definitions
JSON
{
  "type": "object",
  "properties": {
    "version": {
      "const": "quay.material/1",
      "type": "string"
    },
    "identity": {
      "type": "string"
    },
    "alias": {
      "type": "string"
    },
    "label": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "category": {
      "anyOf": [
        {
          "const": "generic",
          "type": "string"
        },
        {
          "const": "wood",
          "type": "string"
        },
        {
          "const": "metal",
          "type": "string"
        },
        {
          "const": "stone",
          "type": "string"
        },
        {
          "const": "concrete",
          "type": "string"
        },
        {
          "const": "ceramic",
          "type": "string"
        },
        {
          "const": "fabric",
          "type": "string"
        },
        {
          "const": "glass",
          "type": "string"
        },
        {
          "const": "paper",
          "type": "string"
        },
        {
          "const": "plastic",
          "type": "string"
        },
        {
          "const": "paint",
          "type": "string"
        }
      ]
    },
    "shader": {
      "anyOf": [
        {
          "const": "standard",
          "type": "string"
        },
        {
          "const": "unlit",
          "type": "string"
        }
      ]
    },
    "color": {
      "type": "string"
    },
    "roughness": {
      "type": "number"
    },
    "metalness": {
      "type": "number"
    },
    "emissive": {
      "type": "string"
    },
    "emissiveIntensity": {
      "type": "number"
    },
    "opacity": {
      "type": "number"
    },
    "alphaMode": {
      "anyOf": [
        {
          "const": "opaque",
          "type": "string"
        },
        {
          "const": "mask",
          "type": "string"
        },
        {
          "const": "blend",
          "type": "string"
        }
      ]
    },
    "alphaCutoff": {
      "type": "number"
    },
    "side": {
      "anyOf": [
        {
          "const": "front",
          "type": "string"
        },
        {
          "const": "back",
          "type": "string"
        },
        {
          "const": "double",
          "type": "string"
        }
      ]
    },
    "preset": {
      "anyOf": [
        {
          "type": "null"
        },
        {
          "type": "string"
        }
      ]
    },
    "maps": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "slot": {
            "anyOf": [
              {
                "const": "color",
                "type": "string"
              },
              {
                "const": "normal",
                "type": "string"
              },
              {
                "const": "roughness",
                "type": "string"
              },
              {
                "const": "metalness",
                "type": "string"
              },
              {
                "const": "emissive",
                "type": "string"
              },
              {
                "const": "occlusion",
                "type": "string"
              },
              {
                "const": "alpha",
                "type": "string"
              }
            ]
          },
          "image": {
            "type": "object",
            "properties": {
              "assetId": {
                "type": "string"
              },
              "uri": {
                "type": "string"
              },
              "sha256": {
                "type": "string"
              },
              "byteLength": {
                "type": "number"
              },
              "mediaType": {
                "anyOf": [
                  {
                    "const": "image/png",
                    "type": "string"
                  },
                  {
                    "const": "image/jpeg",
                    "type": "string"
                  },
                  {
                    "const": "image/webp",
                    "type": "string"
                  }
                ]
              },
              "displayName": {
                "type": "string"
              }
            },
            "required": [
              "assetId",
              "uri",
              "sha256",
              "byteLength",
              "mediaType",
              "displayName"
            ],
            "additionalProperties": false
          },
          "repeat": {
            "type": "array",
            "prefixItems": [
              {
                "type": "number"
              },
              {
                "type": "number"
              }
            ],
            "minItems": 2,
            "maxItems": 2,
            "items": false
          },
          "offset": {
            "type": "array",
            "prefixItems": [
              {
                "type": "number"
              },
              {
                "type": "number"
              }
            ],
            "minItems": 2,
            "maxItems": 2,
            "items": false
          },
          "rotation": {
            "type": "number"
          },
          "wrap": {
            "anyOf": [
              {
                "const": "repeat",
                "type": "string"
              },
              {
                "const": "clamp",
                "type": "string"
              },
              {
                "const": "mirror",
                "type": "string"
              }
            ]
          }
        },
        "required": [
          "slot",
          "image",
          "repeat",
          "offset",
          "rotation",
          "wrap"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "version",
    "identity",
    "alias",
    "label",
    "description",
    "category",
    "shader",
    "color",
    "roughness",
    "metalness",
    "emissive",
    "emissiveIntensity",
    "opacity",
    "alphaMode",
    "alphaCutoff",
    "side",
    "preset",
    "maps"
  ],
  "additionalProperties": false
}

persona.schema.json

Download persona.schema.json

Root propertyRequiredConstraint
versionyes{"const":"ridley.persona/1","type":"string"}
personaIdyes{"type":"string"}
profileIdyes{"type":"string"}
parentIdyes{"anyOf":[{"type":"null"},{"type":"string"}]}
revisionyes{"type":"number"}
createdAtyes{"type":"string"}
sha256yes{"type":"string"}
descriptionyes{"type":"object","properties":{"name":{"type":"string"},"role":{"type":"string"},"instructions":{"type":"string"},"knowledge":{"type":"string"},"speakingStyle":{"type":"string"},"language":{"type":"string"},"allowedTopics":{"type":"array","items":{"type":"string"}},"forbiddenTopics":{"type":"array","items":{"type":"string"}},"emotionalBaseline":{"type":"string"},"memory":{"anyOf":[{"const":"none","type":"string"},{"const":"session","type":"string"}]},"maxTurns":{"type":"number"},"maxHistoryChars":{"type":"number"}},"required":["name","role","instructions","knowledge","speakingStyle","language","allowedTopics","forbiddenTopics","emotionalBaseline","memory","maxTurns","maxHistoryChars"],"additionalProperties":false}
Complete schema including nested definitions
JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "version": {
      "const": "ridley.persona/1",
      "type": "string"
    },
    "personaId": {
      "type": "string"
    },
    "profileId": {
      "type": "string"
    },
    "parentId": {
      "anyOf": [
        {
          "type": "null"
        },
        {
          "type": "string"
        }
      ]
    },
    "revision": {
      "type": "number"
    },
    "createdAt": {
      "type": "string"
    },
    "sha256": {
      "type": "string"
    },
    "description": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "role": {
          "type": "string"
        },
        "instructions": {
          "type": "string"
        },
        "knowledge": {
          "type": "string"
        },
        "speakingStyle": {
          "type": "string"
        },
        "language": {
          "type": "string"
        },
        "allowedTopics": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "forbiddenTopics": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "emotionalBaseline": {
          "type": "string"
        },
        "memory": {
          "anyOf": [
            {
              "const": "none",
              "type": "string"
            },
            {
              "const": "session",
              "type": "string"
            }
          ]
        },
        "maxTurns": {
          "type": "number"
        },
        "maxHistoryChars": {
          "type": "number"
        }
      },
      "required": [
        "name",
        "role",
        "instructions",
        "knowledge",
        "speakingStyle",
        "language",
        "allowedTopics",
        "forbiddenTopics",
        "emotionalBaseline",
        "memory",
        "maxTurns",
        "maxHistoryChars"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "version",
    "personaId",
    "profileId",
    "parentId",
    "revision",
    "createdAt",
    "sha256",
    "description"
  ],
  "additionalProperties": false
}

QUAY PlannerOutput

Download planner-output.schema.json

Root propertyRequiredConstraint
schemayes{"const":"quay.plan"}
schemaVersionyes{"const":"1.0.0"}
summaryyes{"type":"string","minLength":1,"maxLength":1000}
compositionyes{"$ref":"#/$defs/composition"}
placementsyes{"type":"array","maxItems":200,"items":{"$ref":"#/$defs/placement"}}
relationsyes{"type":"array","maxItems":500,"items":{"$ref":"#/$defs/relation"}}
groupsyes{"type":"array","maxItems":50,"items":{"$ref":"#/$defs/group"}}
excludedInstancesyes{"type":"array","maxItems":200,"items":{"$ref":"#/$defs/excluded"}}
warningsyes{"type":"array","maxItems":100,"items":{"$ref":"#/$defs/warning"}}
Complete schema including nested definitions
JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://quay.local/schemas/planner-output.schema.json",
  "title": "QUAY PlannerOutput",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "schema",
    "schemaVersion",
    "summary",
    "composition",
    "placements",
    "relations",
    "groups",
    "excludedInstances",
    "warnings"
  ],
  "properties": {
    "schema": {
      "const": "quay.plan"
    },
    "schemaVersion": {
      "const": "1.0.0"
    },
    "summary": {
      "type": "string",
      "minLength": 1,
      "maxLength": 1000
    },
    "composition": {
      "$ref": "#/$defs/composition"
    },
    "placements": {
      "type": "array",
      "maxItems": 200,
      "items": {
        "$ref": "#/$defs/placement"
      }
    },
    "relations": {
      "type": "array",
      "maxItems": 500,
      "items": {
        "$ref": "#/$defs/relation"
      }
    },
    "groups": {
      "type": "array",
      "maxItems": 50,
      "items": {
        "$ref": "#/$defs/group"
      }
    },
    "excludedInstances": {
      "type": "array",
      "maxItems": 200,
      "items": {
        "$ref": "#/$defs/excluded"
      }
    },
    "warnings": {
      "type": "array",
      "maxItems": 100,
      "items": {
        "$ref": "#/$defs/warning"
      }
    }
  },
  "$defs": {
    "composition": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "density",
        "asymmetry",
        "negativeSpace",
        "focalInstanceId",
        "styleNotes"
      ],
      "properties": {
        "density": {
          "type": "number",
          "minimum": 0,
          "maximum": 1
        },
        "asymmetry": {
          "type": "number",
          "minimum": 0,
          "maximum": 1
        },
        "negativeSpace": {
          "type": "number",
          "minimum": 0,
          "maximum": 1
        },
        "focalInstanceId": {
          "type": [
            "string",
            "null"
          ],
          "format": "uuid"
        },
        "styleNotes": {
          "type": "string",
          "maxLength": 1000
        }
      }
    },
    "placement": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "instanceId",
        "role",
        "importance",
        "preferredRegion",
        "facing",
        "facingTargetInstanceId",
        "allowFloorFallback",
        "notes"
      ],
      "properties": {
        "instanceId": {
          "type": "string",
          "format": "uuid"
        },
        "role": {
          "enum": [
            "architectural",
            "primary_furniture",
            "secondary_furniture",
            "functional_prop",
            "decorative_prop",
            "focal_prop"
          ]
        },
        "importance": {
          "type": "integer",
          "minimum": 0,
          "maximum": 100
        },
        "preferredRegion": {
          "enum": [
            "any",
            "center",
            "front",
            "back",
            "left",
            "right",
            "front_left",
            "front_right",
            "back_left",
            "back_right",
            "perimeter"
          ]
        },
        "facing": {
          "enum": [
            "free",
            "preserve",
            "toward_room_center",
            "away_from_wall",
            "toward_target"
          ]
        },
        "facingTargetInstanceId": {
          "type": [
            "string",
            "null"
          ],
          "format": "uuid"
        },
        "allowFloorFallback": {
          "type": "boolean"
        },
        "notes": {
          "type": "string",
          "maxLength": 500
        }
      }
    },
    "relation": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "relationId",
        "type",
        "subjectInstanceId",
        "targetInstanceId",
        "strength",
        "zone",
        "minimumM",
        "maximumM",
        "notes"
      ],
      "properties": {
        "relationId": {
          "type": "string",
          "format": "uuid"
        },
        "type": {
          "enum": [
            "ON",
            "NEAR",
            "LEFT_OF",
            "RIGHT_OF",
            "IN_FRONT_OF",
            "BEHIND",
            "FACING",
            "CENTERED_ON",
            "ALIGNED_WITH",
            "AGAINST_WALL",
            "KEEP_CLEAR_OF"
          ]
        },
        "subjectInstanceId": {
          "type": "string",
          "format": "uuid"
        },
        "targetInstanceId": {
          "type": [
            "string",
            "null"
          ],
          "format": "uuid"
        },
        "strength": {
          "enum": [
            "hard",
            "soft"
          ]
        },
        "zone": {
          "enum": [
            "any",
            "left",
            "right",
            "front",
            "back",
            "center"
          ]
        },
        "minimumM": {
          "type": [
            "number",
            "null"
          ],
          "minimum": 0
        },
        "maximumM": {
          "type": [
            "number",
            "null"
          ],
          "exclusiveMinimum": 0
        },
        "notes": {
          "type": "string",
          "maxLength": 500
        }
      }
    },
    "group": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "groupId",
        "label",
        "instanceIds",
        "cohesion"
      ],
      "properties": {
        "groupId": {
          "type": "string",
          "format": "uuid"
        },
        "label": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "instanceIds": {
          "type": "array",
          "minItems": 2,
          "maxItems": 100,
          "items": {
            "type": "string",
            "format": "uuid"
          }
        },
        "cohesion": {
          "type": "number",
          "minimum": 0,
          "maximum": 1
        }
      }
    },
    "excluded": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "instanceId",
        "reason"
      ],
      "properties": {
        "instanceId": {
          "type": "string",
          "format": "uuid"
        },
        "reason": {
          "type": "string",
          "minLength": 1,
          "maxLength": 500
        }
      }
    },
    "warning": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "code",
        "message",
        "instanceIds"
      ],
      "properties": {
        "code": {
          "type": "string",
          "pattern": "^[A-Z][A-Z0-9_]{1,63}$"
        },
        "message": {
          "type": "string",
          "minLength": 1,
          "maxLength": 500
        },
        "instanceIds": {
          "type": "array",
          "maxItems": 20,
          "items": {
            "type": "string",
            "format": "uuid"
          }
        }
      }
    }
  }
}

ProjectArchiveCheckpoint

Download project-archive.schema.json

Root propertyRequiredConstraint
versionyes{"const":"quay.project-archive/1","title":"Version","type":"string"}
editoryes{"$ref":"#/$defs/ArchiveEditor"}
workspaceyes{"additionalProperties":{"$ref":"#/$defs/JsonValue"},"title":"Workspace","type":"object"}
Complete schema including nested definitions
JSON
{
  "$defs": {
    "ArchitecturalNeed": {
      "additionalProperties": false,
      "properties": {
        "reference": {
          "pattern": "^[A-Za-z][A-Za-z0-9_-]{0,79}$",
          "title": "Reference",
          "type": "string"
        },
        "kind": {
          "enum": [
            "window",
            "portal",
            "wall-run",
            "open-center",
            "natural-light",
            "ceiling-light"
          ],
          "title": "Kind",
          "type": "string"
        },
        "quantity": {
          "maximum": 16,
          "minimum": 1,
          "title": "Quantity",
          "type": "integer"
        },
        "priority": {
          "enum": [
            "required",
            "recommended",
            "optional"
          ],
          "title": "Priority",
          "type": "string"
        },
        "evidence": {
          "$ref": "#/$defs/ProgramEvidence"
        }
      },
      "required": [
        "reference",
        "kind",
        "quantity",
        "priority",
        "evidence"
      ],
      "title": "ArchitecturalNeed",
      "type": "object"
    },
    "ArchiveAuthoring": {
      "additionalProperties": false,
      "properties": {
        "ramsSource": {
          "default": "",
          "maxLength": 2097152,
          "title": "Ramssource",
          "type": "string"
        },
        "source": {
          "maxLength": 262144,
          "title": "Source",
          "type": "string"
        },
        "snapshots": {
          "items": {
            "$ref": "#/$defs/asset"
          },
          "maxItems": 200,
          "title": "Snapshots",
          "type": "array"
        },
        "ridley": {
          "$ref": "#/$defs/RidleyInput"
        },
        "wright": {
          "anyOf": [
            {
              "$ref": "#/$defs/WrightInput"
            },
            {
              "type": "null"
            }
          ]
        },
        "layoutVersion": {
          "enum": [
            "quay.semantic-layout/1",
            "quay.semantic-layout/2",
            "quay.legacy-layout-adapter/1"
          ],
          "title": "Layoutversion",
          "type": "string"
        }
      },
      "required": [
        "source",
        "snapshots",
        "ridley",
        "wright",
        "layoutVersion"
      ],
      "title": "ArchiveAuthoring",
      "type": "object"
    },
    "ArchiveEditor": {
      "additionalProperties": false,
      "properties": {
        "ramsSource": {
          "default": "",
          "maxLength": 2097152,
          "title": "Ramssource",
          "type": "string"
        },
        "source": {
          "maxLength": 262144,
          "title": "Source",
          "type": "string"
        },
        "snapshots": {
          "items": {
            "$ref": "#/$defs/asset"
          },
          "maxItems": 200,
          "title": "Snapshots",
          "type": "array"
        },
        "ridley": {
          "$ref": "#/$defs/RidleyInput"
        },
        "wright": {
          "anyOf": [
            {
              "$ref": "#/$defs/WrightInput"
            },
            {
              "type": "null"
            }
          ]
        },
        "layoutVersion": {
          "enum": [
            "quay.semantic-layout/1",
            "quay.semantic-layout/2",
            "quay.legacy-layout-adapter/1"
          ],
          "title": "Layoutversion",
          "type": "string"
        },
        "project": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Project"
        },
        "undo": {
          "items": {
            "$ref": "#/$defs/ArchiveAuthoring"
          },
          "maxItems": 200,
          "title": "Undo",
          "type": "array"
        },
        "redo": {
          "items": {
            "$ref": "#/$defs/ArchiveAuthoring"
          },
          "maxItems": 200,
          "title": "Redo",
          "type": "array"
        },
        "activeRoom": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Activeroom"
        }
      },
      "required": [
        "source",
        "snapshots",
        "ridley",
        "wright",
        "layoutVersion",
        "project",
        "undo",
        "redo",
        "activeRoom"
      ],
      "title": "ArchiveEditor",
      "type": "object"
    },
    "AssetBackdropSource": {
      "additionalProperties": false,
      "properties": {
        "kind": {
          "const": "asset",
          "title": "Kind",
          "type": "string"
        },
        "uri": {
          "default": null,
          "title": "Uri",
          "type": "null"
        },
        "assetId": {
          "format": "uuid",
          "title": "Assetid",
          "type": "string"
        }
      },
      "required": [
        "kind",
        "assetId"
      ],
      "title": "AssetBackdropSource",
      "type": "object"
    },
    "AudioResource": {
      "additionalProperties": false,
      "properties": {
        "version": {
          "const": "ridley.audio/1",
          "default": "ridley.audio/1",
          "title": "Version",
          "type": "string"
        },
        "assetId": {
          "format": "uuid",
          "title": "Assetid",
          "type": "string"
        },
        "displayName": {
          "maxLength": 200,
          "minLength": 1,
          "title": "Displayname",
          "type": "string"
        },
        "sha256": {
          "pattern": "^[a-f0-9]{64}$",
          "title": "Sha256",
          "type": "string"
        },
        "uri": {
          "maxLength": 300,
          "title": "Uri",
          "type": "string"
        },
        "byteLength": {
          "exclusiveMinimum": 44,
          "maximum": 67108864,
          "title": "Bytelength",
          "type": "integer"
        },
        "mediaType": {
          "default": "audio/wav",
          "enum": [
            "audio/wav",
            "audio/mpeg"
          ],
          "title": "Mediatype",
          "type": "string"
        },
        "durationSeconds": {
          "exclusiveMinimum": 0,
          "maximum": 600,
          "title": "Durationseconds",
          "type": "number"
        },
        "sampleRate": {
          "maximum": 96000,
          "minimum": 8000,
          "title": "Samplerate",
          "type": "integer"
        },
        "channels": {
          "enum": [
            1,
            2
          ],
          "title": "Channels",
          "type": "integer"
        }
      },
      "required": [
        "assetId",
        "displayName",
        "sha256",
        "uri",
        "byteLength",
        "durationSeconds",
        "sampleRate",
        "channels"
      ],
      "title": "AudioResource",
      "type": "object"
    },
    "DirectionProfile": {
      "additionalProperties": false,
      "properties": {
        "styles": {
          "items": {
            "enum": [
              "cinematic",
              "restrained",
              "surreal",
              "documentary",
              "elegant",
              "playful",
              "monumental",
              "warm",
              "cold",
              "technological",
              "natural",
              "intimate",
              "theatrical",
              "high-contrast",
              "soft-contrast"
            ],
            "type": "string"
          },
          "maxItems": 16,
          "title": "Styles",
          "type": "array"
        },
        "rooms": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/RoomDirectionIntent"
              },
              "maxItems": 128,
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Rooms"
        }
      },
      "required": [
        "styles"
      ],
      "title": "DirectionProfile",
      "type": "object"
    },
    "Entrance": {
      "additionalProperties": false,
      "properties": {
        "identity": {
          "format": "uuid",
          "title": "Identity",
          "type": "string"
        },
        "alias": {
          "pattern": "^[A-Za-z_][\\w-]{0,99}$",
          "title": "Alias",
          "type": "string"
        },
        "room": {
          "format": "uuid",
          "title": "Room",
          "type": "string"
        },
        "frame": {
          "$ref": "#/$defs/Frame"
        },
        "width": {
          "exclusiveMinimum": 0,
          "maximum": 100,
          "title": "Width",
          "type": "number"
        },
        "height": {
          "exclusiveMinimum": 0,
          "maximum": 100,
          "title": "Height",
          "type": "number"
        },
        "traversable": {
          "title": "Traversable",
          "type": "boolean"
        },
        "door": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Door"
        }
      },
      "required": [
        "identity",
        "alias",
        "room",
        "frame",
        "width",
        "height",
        "traversable",
        "door"
      ],
      "title": "Entrance",
      "type": "object"
    },
    "ExplicitProgramEvidence": {
      "additionalProperties": false,
      "properties": {
        "origin": {
          "const": "explicit",
          "title": "Origin",
          "type": "string"
        },
        "confidence": {
          "maximum": 1,
          "minimum": 0,
          "title": "Confidence",
          "type": "number"
        },
        "explanation": {
          "maxLength": 500,
          "minLength": 1,
          "title": "Explanation",
          "type": "string"
        }
      },
      "required": [
        "origin",
        "confidence",
        "explanation"
      ],
      "title": "ExplicitProgramEvidence",
      "type": "object"
    },
    "Frame": {
      "additionalProperties": false,
      "properties": {
        "position": {
          "maxItems": 3,
          "minItems": 3,
          "prefixItems": [
            {
              "type": "number"
            },
            {
              "type": "number"
            },
            {
              "type": "number"
            }
          ],
          "title": "Position",
          "type": "array"
        },
        "quaternion": {
          "maxItems": 4,
          "minItems": 4,
          "prefixItems": [
            {
              "type": "number"
            },
            {
              "type": "number"
            },
            {
              "type": "number"
            },
            {
              "type": "number"
            }
          ],
          "title": "Quaternion",
          "type": "array"
        }
      },
      "required": [
        "position",
        "quaternion"
      ],
      "title": "Frame",
      "type": "object"
    },
    "FunctionalZone": {
      "additionalProperties": false,
      "properties": {
        "reference": {
          "pattern": "^[A-Za-z][A-Za-z0-9_-]{0,79}$",
          "title": "Reference",
          "type": "string"
        },
        "purpose": {
          "maxLength": 100,
          "minLength": 1,
          "title": "Purpose",
          "type": "string"
        },
        "priority": {
          "enum": [
            "required",
            "recommended",
            "optional"
          ],
          "title": "Priority",
          "type": "string"
        }
      },
      "required": [
        "reference",
        "purpose",
        "priority"
      ],
      "title": "FunctionalZone",
      "type": "object"
    },
    "FurnishingNeed": {
      "additionalProperties": false,
      "properties": {
        "identity": {
          "format": "uuid",
          "title": "Identity",
          "type": "string"
        },
        "category": {
          "pattern": "^[a-z][a-z0-9_.-]{0,99}$",
          "title": "Category",
          "type": "string"
        },
        "quantity": {
          "maximum": 64,
          "minimum": 1,
          "title": "Quantity",
          "type": "integer"
        },
        "capacity": {
          "anyOf": [
            {
              "maximum": 64,
              "minimum": 1,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Capacity"
        },
        "assetAlias": {
          "anyOf": [
            {
              "pattern": "^[a-z0-9][a-z0-9_.-]{0,99}$",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Assetalias"
        },
        "placement": {
          "enum": [
            "auto",
            "center",
            "perimeter"
          ],
          "title": "Placement",
          "type": "string"
        },
        "relation": {
          "anyOf": [
            {
              "enum": [
                "on",
                "seating",
                "near-window"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Relation"
        },
        "target": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Target"
        },
        "instances": {
          "items": {
            "items": {
              "format": "uuid",
              "type": "string"
            },
            "type": "array"
          },
          "maxItems": 64,
          "title": "Instances",
          "type": "array"
        }
      },
      "required": [
        "identity",
        "category",
        "quantity",
        "capacity",
        "assetAlias",
        "placement",
        "relation",
        "target",
        "instances"
      ],
      "title": "FurnishingNeed",
      "type": "object"
    },
    "ImageBackdropSource": {
      "additionalProperties": false,
      "properties": {
        "kind": {
          "const": "image",
          "title": "Kind",
          "type": "string"
        },
        "uri": {
          "maxLength": 300,
          "title": "Uri",
          "type": "string"
        },
        "assetId": {
          "format": "uuid",
          "title": "Assetid",
          "type": "string"
        },
        "mediaType": {
          "enum": [
            "image/png",
            "image/jpeg",
            "image/webp"
          ],
          "title": "Mediatype",
          "type": "string"
        },
        "sha256": {
          "pattern": "^[a-f0-9]{64}$",
          "title": "Sha256",
          "type": "string"
        },
        "byteLength": {
          "exclusiveMinimum": 0,
          "maximum": 33554432,
          "title": "Bytelength",
          "type": "integer"
        }
      },
      "required": [
        "kind",
        "uri",
        "assetId",
        "mediaType",
        "sha256",
        "byteLength"
      ],
      "title": "ImageBackdropSource",
      "type": "object"
    },
    "JsonValue": {},
    "Level": {
      "additionalProperties": false,
      "properties": {
        "identity": {
          "format": "uuid",
          "title": "Identity",
          "type": "string"
        },
        "label": {
          "maxLength": 200,
          "title": "Label",
          "type": "string"
        }
      },
      "required": [
        "identity",
        "label"
      ],
      "title": "Level",
      "type": "object"
    },
    "PersonaDescription": {
      "additionalProperties": false,
      "properties": {
        "name": {
          "maxLength": 100,
          "minLength": 1,
          "title": "Name",
          "type": "string"
        },
        "role": {
          "maxLength": 500,
          "title": "Role",
          "type": "string"
        },
        "instructions": {
          "maxLength": 8000,
          "title": "Instructions",
          "type": "string"
        },
        "knowledge": {
          "maxLength": 16000,
          "title": "Knowledge",
          "type": "string"
        },
        "speakingStyle": {
          "maxLength": 1000,
          "title": "Speakingstyle",
          "type": "string"
        },
        "language": {
          "maxLength": 100,
          "minLength": 1,
          "title": "Language",
          "type": "string"
        },
        "allowedTopics": {
          "items": {
            "maxLength": 200,
            "type": "string"
          },
          "maxItems": 32,
          "title": "Allowedtopics",
          "type": "array"
        },
        "forbiddenTopics": {
          "items": {
            "maxLength": 200,
            "type": "string"
          },
          "maxItems": 32,
          "title": "Forbiddentopics",
          "type": "array"
        },
        "emotionalBaseline": {
          "maxLength": 500,
          "title": "Emotionalbaseline",
          "type": "string"
        },
        "memory": {
          "enum": [
            "none",
            "session"
          ],
          "title": "Memory",
          "type": "string"
        },
        "maxTurns": {
          "maximum": 16,
          "minimum": 1,
          "title": "Maxturns",
          "type": "integer"
        },
        "maxHistoryChars": {
          "maximum": 16000,
          "minimum": 1000,
          "title": "Maxhistorychars",
          "type": "integer"
        }
      },
      "required": [
        "name",
        "role",
        "instructions",
        "knowledge",
        "speakingStyle",
        "language",
        "allowedTopics",
        "forbiddenTopics",
        "emotionalBaseline",
        "memory",
        "maxTurns",
        "maxHistoryChars"
      ],
      "title": "PersonaDescription",
      "type": "object"
    },
    "PersonaResource": {
      "additionalProperties": false,
      "properties": {
        "version": {
          "const": "ridley.persona/1",
          "default": "ridley.persona/1",
          "title": "Version",
          "type": "string"
        },
        "personaId": {
          "format": "uuid",
          "title": "Personaid",
          "type": "string"
        },
        "profileId": {
          "format": "uuid",
          "title": "Profileid",
          "type": "string"
        },
        "parentId": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Parentid"
        },
        "revision": {
          "minimum": 1,
          "title": "Revision",
          "type": "integer"
        },
        "createdAt": {
          "format": "date-time",
          "title": "Createdat",
          "type": "string"
        },
        "sha256": {
          "pattern": "^[a-f0-9]{64}$",
          "title": "Sha256",
          "type": "string"
        },
        "description": {
          "$ref": "#/$defs/PersonaDescription"
        }
      },
      "required": [
        "personaId",
        "profileId",
        "parentId",
        "revision",
        "createdAt",
        "sha256",
        "description"
      ],
      "title": "PersonaResource",
      "type": "object"
    },
    "Portal": {
      "additionalProperties": false,
      "properties": {
        "identity": {
          "format": "uuid",
          "title": "Identity",
          "type": "string"
        },
        "alias": {
          "pattern": "^[A-Za-z_][\\w-]{0,99}$",
          "title": "Alias",
          "type": "string"
        },
        "from": {
          "format": "uuid",
          "title": "From",
          "type": "string"
        },
        "to": {
          "format": "uuid",
          "title": "To",
          "type": "string"
        },
        "frame": {
          "$ref": "#/$defs/Frame"
        },
        "width": {
          "exclusiveMinimum": 0,
          "maximum": 100,
          "title": "Width",
          "type": "number"
        },
        "height": {
          "exclusiveMinimum": 0,
          "maximum": 100,
          "title": "Height",
          "type": "number"
        },
        "traversable": {
          "title": "Traversable",
          "type": "boolean"
        },
        "door": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Door"
        }
      },
      "required": [
        "identity",
        "alias",
        "from",
        "to",
        "frame",
        "width",
        "height",
        "traversable",
        "door"
      ],
      "title": "Portal",
      "type": "object"
    },
    "ProgramEvidence": {
      "additionalProperties": false,
      "properties": {
        "origin": {
          "enum": [
            "explicit",
            "archetype",
            "inferred"
          ],
          "title": "Origin",
          "type": "string"
        },
        "confidence": {
          "maximum": 1,
          "minimum": 0,
          "title": "Confidence",
          "type": "number"
        },
        "explanation": {
          "maxLength": 500,
          "minLength": 1,
          "title": "Explanation",
          "type": "string"
        }
      },
      "required": [
        "origin",
        "confidence",
        "explanation"
      ],
      "title": "ProgramEvidence",
      "type": "object"
    },
    "ProgramExclusion": {
      "additionalProperties": false,
      "properties": {
        "category": {
          "pattern": "^[a-z][a-z0-9_-]*\\.[a-z][a-z0-9_.-]{0,79}$",
          "title": "Category",
          "type": "string"
        },
        "evidence": {
          "$ref": "#/$defs/ExplicitProgramEvidence"
        }
      },
      "required": [
        "category",
        "evidence"
      ],
      "title": "ProgramExclusion",
      "type": "object"
    },
    "ProgramNeed": {
      "additionalProperties": false,
      "properties": {
        "reference": {
          "pattern": "^[A-Za-z][A-Za-z0-9_-]{0,79}$",
          "title": "Reference",
          "type": "string"
        },
        "category": {
          "pattern": "^[a-z][a-z0-9_-]*\\.[a-z][a-z0-9_.-]{0,79}$",
          "title": "Category",
          "type": "string"
        },
        "zone": {
          "maxLength": 80,
          "title": "Zone",
          "type": "string"
        },
        "quantity": {
          "maximum": 64,
          "minimum": 1,
          "title": "Quantity",
          "type": "integer"
        },
        "capacity": {
          "anyOf": [
            {
              "maximum": 64,
              "minimum": 1,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Capacity"
        },
        "priority": {
          "enum": [
            "required",
            "recommended",
            "optional"
          ],
          "title": "Priority",
          "type": "string"
        },
        "assetAlias": {
          "anyOf": [
            {
              "pattern": "^[a-z0-9][a-z0-9_.-]{0,99}$",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Assetalias"
        },
        "placement": {
          "enum": [
            "auto",
            "center",
            "perimeter"
          ],
          "title": "Placement",
          "type": "string"
        },
        "evidence": {
          "$ref": "#/$defs/ProgramEvidence"
        }
      },
      "required": [
        "reference",
        "category",
        "zone",
        "quantity",
        "capacity",
        "priority",
        "assetAlias",
        "placement",
        "evidence"
      ],
      "title": "ProgramNeed",
      "type": "object"
    },
    "ProgramProducer": {
      "additionalProperties": false,
      "properties": {
        "provider": {
          "maxLength": 100,
          "minLength": 1,
          "title": "Provider",
          "type": "string"
        },
        "model": {
          "maxLength": 100,
          "minLength": 1,
          "title": "Model",
          "type": "string"
        },
        "version": {
          "maxLength": 100,
          "minLength": 1,
          "title": "Version",
          "type": "string"
        }
      },
      "required": [
        "provider",
        "model",
        "version"
      ],
      "title": "ProgramProducer",
      "type": "object"
    },
    "ProgramRepair": {
      "additionalProperties": false,
      "properties": {
        "stage": {
          "const": "semantic",
          "default": "semantic",
          "title": "Stage",
          "type": "string"
        },
        "attempts": {
          "maximum": 2,
          "minimum": 1,
          "title": "Attempts",
          "type": "integer"
        },
        "strategy": {
          "enum": [
            "none",
            "bounded-semantic-revision"
          ],
          "title": "Strategy",
          "type": "string"
        },
        "initialFailures": {
          "items": {
            "type": "string"
          },
          "maxItems": 16,
          "title": "Initialfailures",
          "type": "array"
        },
        "finalState": {
          "const": "accepted",
          "default": "accepted",
          "title": "Finalstate",
          "type": "string"
        },
        "relaxedConstraints": {
          "items": {
            "type": "string"
          },
          "maxItems": 0,
          "title": "Relaxedconstraints",
          "type": "array"
        }
      },
      "required": [
        "attempts",
        "strategy",
        "initialFailures",
        "relaxedConstraints"
      ],
      "title": "ProgramRepair",
      "type": "object"
    },
    "ProgramRule": {
      "additionalProperties": false,
      "properties": {
        "reference": {
          "pattern": "^[A-Za-z][A-Za-z0-9_-]{0,79}$",
          "title": "Reference",
          "type": "string"
        },
        "kind": {
          "enum": [
            "on",
            "seating",
            "beside",
            "facing",
            "near-window",
            "wall-alignment",
            "interior",
            "access",
            "visibility",
            "clearance",
            "circulation",
            "minimum-dimensions",
            "unsupported"
          ],
          "title": "Kind",
          "type": "string"
        },
        "subjects": {
          "items": {
            "type": "string"
          },
          "maxItems": 64,
          "title": "Subjects",
          "type": "array"
        },
        "target": {
          "anyOf": [
            {
              "maxLength": 80,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Target"
        },
        "priority": {
          "enum": [
            "required",
            "recommended",
            "optional"
          ],
          "title": "Priority",
          "type": "string"
        },
        "strength": {
          "enum": [
            "hard",
            "soft"
          ],
          "title": "Strength",
          "type": "string"
        },
        "clearanceM": {
          "anyOf": [
            {
              "maximum": 100,
              "minimum": 0,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Clearancem"
        },
        "description": {
          "maxLength": 500,
          "minLength": 1,
          "title": "Description",
          "type": "string"
        },
        "evidence": {
          "$ref": "#/$defs/ProgramEvidence"
        }
      },
      "required": [
        "reference",
        "kind",
        "subjects",
        "target",
        "priority",
        "strength",
        "clearanceM",
        "description",
        "evidence"
      ],
      "title": "ProgramRule",
      "type": "object"
    },
    "RidleyInput": {
      "additionalProperties": false,
      "properties": {
        "audio": {
          "items": {
            "$ref": "#/$defs/AudioResource"
          },
          "maxItems": 64,
          "title": "Audio",
          "type": "array"
        },
        "personas": {
          "items": {
            "$ref": "#/$defs/PersonaResource"
          },
          "maxItems": 64,
          "title": "Personas",
          "type": "array"
        },
        "source": {
          "maxLength": 131072,
          "title": "Source",
          "type": "string"
        },
        "screenplays": {
          "items": {
            "$ref": "#/$defs/ScreenplayInput"
          },
          "maxItems": 32,
          "title": "Screenplays",
          "type": "array"
        },
        "bindings": {
          "additionalProperties": {
            "format": "uuid",
            "type": "string"
          },
          "maxProperties": 1000,
          "title": "Bindings",
          "type": "object"
        },
        "styleProfile": {
          "anyOf": [
            {
              "$ref": "#/$defs/DirectionProfile"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "required": [
        "source",
        "screenplays",
        "bindings"
      ],
      "title": "RidleyInput",
      "type": "object"
    },
    "Room": {
      "additionalProperties": false,
      "properties": {
        "identity": {
          "format": "uuid",
          "title": "Identity",
          "type": "string"
        },
        "alias": {
          "pattern": "^[A-Za-z_][\\w-]{0,99}$",
          "title": "Alias",
          "type": "string"
        },
        "label": {
          "maxLength": 200,
          "title": "Label",
          "type": "string"
        },
        "level": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Level"
        },
        "parent": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Parent"
        },
        "size": {
          "maxItems": 3,
          "minItems": 3,
          "prefixItems": [
            {
              "type": "number"
            },
            {
              "type": "number"
            },
            {
              "type": "number"
            }
          ],
          "title": "Size",
          "type": "array"
        },
        "frame": {
          "$ref": "#/$defs/Frame"
        },
        "backdrop": {
          "anyOf": [
            {
              "$ref": "#/$defs/RoomBackdrop"
            },
            {
              "additionalProperties": {
                "$ref": "#/$defs/RoomBackdrop"
              },
              "propertyNames": {
                "enum": [
                  "north",
                  "south",
                  "east",
                  "west"
                ]
              },
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Backdrop"
        },
        "furnishing": {
          "anyOf": [
            {
              "$ref": "#/$defs/RoomFurnishing"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "required": [
        "identity",
        "alias",
        "label",
        "level",
        "parent",
        "size",
        "frame"
      ],
      "title": "Room",
      "type": "object"
    },
    "RoomBackdrop": {
      "additionalProperties": false,
      "properties": {
        "materialId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Materialid"
        },
        "identity": {
          "format": "uuid",
          "title": "Identity",
          "type": "string"
        },
        "semantic": {
          "maxLength": 200,
          "title": "Semantic",
          "type": "string"
        },
        "source": {
          "discriminator": {
            "mapping": {
              "asset": "#/$defs/AssetBackdropSource",
              "image": "#/$defs/ImageBackdropSource"
            },
            "propertyName": "kind"
          },
          "oneOf": [
            {
              "$ref": "#/$defs/ImageBackdropSource"
            },
            {
              "$ref": "#/$defs/AssetBackdropSource"
            }
          ],
          "title": "Source"
        },
        "side": {
          "enum": [
            "north",
            "south",
            "east",
            "west"
          ],
          "title": "Side",
          "type": "string"
        },
        "mode": {
          "const": "architectural",
          "title": "Mode",
          "type": "string"
        },
        "fit": {
          "enum": [
            "cover",
            "contain"
          ],
          "title": "Fit",
          "type": "string"
        },
        "projection": {
          "const": "flat",
          "title": "Projection",
          "type": "string"
        },
        "distance": {
          "exclusiveMinimum": 0,
          "maximum": 100,
          "title": "Distance",
          "type": "number"
        },
        "lighting": {
          "enum": [
            "unlit",
            "lit"
          ],
          "title": "Lighting",
          "type": "string"
        },
        "enabled": {
          "title": "Enabled",
          "type": "boolean"
        }
      },
      "required": [
        "identity",
        "semantic",
        "source",
        "side",
        "mode",
        "fit",
        "projection",
        "distance",
        "lighting",
        "enabled"
      ],
      "title": "RoomBackdrop",
      "type": "object"
    },
    "RoomDirectionIntent": {
      "additionalProperties": false,
      "properties": {
        "room": {
          "format": "uuid",
          "title": "Room",
          "type": "string"
        },
        "intensity": {
          "anyOf": [
            {
              "enum": [
                0,
                1,
                2,
                3,
                4
              ],
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Intensity"
        },
        "mood": {
          "anyOf": [
            {
              "enum": [
                "neutral",
                "warm",
                "cool",
                "intimate",
                "dramatic",
                "monumental",
                "clinical",
                "mysterious",
                "energetic",
                "contemplative"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Mood"
        },
        "hero": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Hero"
        },
        "motion": {
          "anyOf": [
            {
              "enum": [
                "none",
                "restrained",
                "active"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Motion"
        },
        "contrast": {
          "anyOf": [
            {
              "enum": [
                "soft",
                "natural",
                "dramatic"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Contrast"
        }
      },
      "required": [
        "room"
      ],
      "title": "RoomDirectionIntent",
      "type": "object"
    },
    "RoomFurnishing": {
      "additionalProperties": false,
      "properties": {
        "roomProgram": {
          "anyOf": [
            {
              "$ref": "#/$defs/RoomProgramAttachment"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "version": {
          "const": "qway.furnishing/1",
          "title": "Version",
          "type": "string"
        },
        "purpose": {
          "pattern": "^[a-z][a-z0-9_.-]{0,99}$",
          "title": "Purpose",
          "type": "string"
        },
        "capacity": {
          "maximum": 64,
          "minimum": 1,
          "title": "Capacity",
          "type": "integer"
        },
        "style": {
          "maxLength": 100,
          "title": "Style",
          "type": "string"
        },
        "needs": {
          "items": {
            "$ref": "#/$defs/FurnishingNeed"
          },
          "maxItems": 64,
          "title": "Needs",
          "type": "array"
        }
      },
      "required": [
        "version",
        "purpose",
        "capacity",
        "style",
        "needs"
      ],
      "title": "RoomFurnishing",
      "type": "object"
    },
    "RoomProgram": {
      "additionalProperties": false,
      "properties": {
        "version": {
          "const": "qway.room-program/1",
          "title": "Version",
          "type": "string"
        },
        "archetype": {
          "pattern": "^[a-z][a-z0-9_.-]{0,99}$",
          "title": "Archetype",
          "type": "string"
        },
        "archetypeRevision": {
          "maxLength": 100,
          "minLength": 1,
          "title": "Archetyperevision",
          "type": "string"
        },
        "purpose": {
          "pattern": "^[a-z][a-z0-9_.-]{0,99}$",
          "title": "Purpose",
          "type": "string"
        },
        "capacity": {
          "maximum": 64,
          "minimum": 1,
          "title": "Capacity",
          "type": "integer"
        },
        "style": {
          "maxLength": 100,
          "title": "Style",
          "type": "string"
        },
        "zones": {
          "items": {
            "$ref": "#/$defs/FunctionalZone"
          },
          "maxItems": 32,
          "minItems": 1,
          "title": "Zones",
          "type": "array"
        },
        "needs": {
          "items": {
            "$ref": "#/$defs/ProgramNeed"
          },
          "maxItems": 64,
          "title": "Needs",
          "type": "array"
        },
        "rules": {
          "items": {
            "$ref": "#/$defs/ProgramRule"
          },
          "maxItems": 128,
          "title": "Rules",
          "type": "array"
        },
        "architecture": {
          "items": {
            "$ref": "#/$defs/ArchitecturalNeed"
          },
          "maxItems": 32,
          "title": "Architecture",
          "type": "array"
        },
        "exclusions": {
          "items": {
            "$ref": "#/$defs/ProgramExclusion"
          },
          "maxItems": 64,
          "title": "Exclusions",
          "type": "array"
        },
        "uncertainties": {
          "items": {
            "type": "string"
          },
          "maxItems": 32,
          "title": "Uncertainties",
          "type": "array"
        }
      },
      "required": [
        "version",
        "archetype",
        "archetypeRevision",
        "purpose",
        "capacity",
        "style",
        "zones",
        "needs",
        "rules",
        "architecture",
        "exclusions",
        "uncertainties"
      ],
      "title": "RoomProgram",
      "type": "object"
    },
    "RoomProgramAttachment": {
      "additionalProperties": false,
      "properties": {
        "repair": {
          "anyOf": [
            {
              "$ref": "#/$defs/ProgramRepair"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "enrichment": {
          "anyOf": [
            {
              "$ref": "#/$defs/ProgramProducer"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "intent": {
          "$ref": "#/$defs/RoomProgram"
        },
        "archetypeSnapshot": {
          "$ref": "#/$defs/RoomProgram"
        },
        "bindings": {
          "additionalProperties": {
            "format": "uuid",
            "type": "string"
          },
          "maxProperties": 64,
          "title": "Bindings",
          "type": "object"
        }
      },
      "required": [
        "intent",
        "archetypeSnapshot",
        "bindings"
      ],
      "title": "RoomProgramAttachment",
      "type": "object"
    },
    "ScreenplayInput": {
      "additionalProperties": false,
      "properties": {
        "id": {
          "pattern": "^[A-Za-z0-9_-]{1,100}$",
          "title": "Id",
          "type": "string"
        },
        "title": {
          "maxLength": 200,
          "title": "Title",
          "type": "string"
        },
        "text": {
          "maxLength": 65536,
          "title": "Text",
          "type": "string"
        }
      },
      "required": [
        "id",
        "title",
        "text"
      ],
      "title": "ScreenplayInput",
      "type": "object"
    },
    "WrightInput": {
      "additionalProperties": false,
      "properties": {
        "version": {
          "const": "wright.world/1",
          "title": "Version",
          "type": "string"
        },
        "identity": {
          "format": "uuid",
          "title": "Identity",
          "type": "string"
        },
        "rooms": {
          "items": {
            "$ref": "#/$defs/Room"
          },
          "maxItems": 64,
          "minItems": 1,
          "title": "Rooms",
          "type": "array"
        },
        "levels": {
          "items": {
            "$ref": "#/$defs/Level"
          },
          "maxItems": 32,
          "title": "Levels",
          "type": "array"
        },
        "portals": {
          "items": {
            "$ref": "#/$defs/Portal"
          },
          "maxItems": 256,
          "title": "Portals",
          "type": "array"
        },
        "entrances": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/Entrance"
              },
              "maxItems": 64,
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Entrances"
        },
        "membership": {
          "additionalProperties": {
            "format": "uuid",
            "type": "string"
          },
          "maxProperties": 1000,
          "propertyNames": {
            "format": "uuid"
          },
          "title": "Membership",
          "type": "object"
        }
      },
      "required": [
        "version",
        "identity",
        "rooms",
        "levels",
        "portals",
        "membership"
      ],
      "title": "WrightInput",
      "type": "object"
    },
    "vec3": {
      "type": "array",
      "minItems": 3,
      "maxItems": 3,
      "prefixItems": [
        {
          "type": "number"
        },
        {
          "type": "number"
        },
        {
          "type": "number"
        }
      ],
      "items": false
    },
    "length2": {
      "type": "array",
      "minItems": 2,
      "maxItems": 2,
      "prefixItems": [
        {
          "type": "number"
        },
        {
          "type": "number"
        }
      ],
      "items": false
    },
    "positiveLength2": {
      "type": "array",
      "minItems": 2,
      "maxItems": 2,
      "prefixItems": [
        {
          "type": "number",
          "exclusiveMinimum": 0
        },
        {
          "type": "number",
          "exclusiveMinimum": 0
        }
      ],
      "items": false
    },
    "positiveVec3": {
      "type": "array",
      "minItems": 3,
      "maxItems": 3,
      "prefixItems": [
        {
          "type": "number",
          "exclusiveMinimum": 0
        },
        {
          "type": "number",
          "exclusiveMinimum": 0
        },
        {
          "type": "number",
          "exclusiveMinimum": 0
        }
      ],
      "items": false
    },
    "quaternion": {
      "type": "array",
      "minItems": 4,
      "maxItems": 4,
      "prefixItems": [
        {
          "type": "number"
        },
        {
          "type": "number"
        },
        {
          "type": "number"
        },
        {
          "type": "number"
        }
      ],
      "items": false
    },
    "color": {
      "type": "string",
      "pattern": "^#[0-9A-Fa-f]{6}$"
    },
    "bounds": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "min",
        "max"
      ],
      "properties": {
        "min": {
          "$ref": "#/$defs/vec3"
        },
        "max": {
          "$ref": "#/$defs/vec3"
        }
      }
    },
    "transform": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "position",
        "quaternion",
        "scale"
      ],
      "properties": {
        "position": {
          "$ref": "#/$defs/vec3"
        },
        "quaternion": {
          "$ref": "#/$defs/quaternion"
        },
        "scale": {
          "$ref": "#/$defs/positiveVec3"
        }
      }
    },
    "environment": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "room",
        "background",
        "fog",
        "floor",
        "lights"
      ],
      "properties": {
        "room": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "width",
            "depth",
            "height",
            "floorY"
          ],
          "properties": {
            "width": {
              "type": "number",
              "exclusiveMinimum": 0,
              "maximum": 10000
            },
            "depth": {
              "type": "number",
              "exclusiveMinimum": 0,
              "maximum": 10000
            },
            "height": {
              "type": "number",
              "exclusiveMinimum": 0,
              "maximum": 10000
            },
            "floorY": {
              "type": "number"
            }
          }
        },
        "background": {
          "$ref": "#/$defs/color"
        },
        "fog": {
          "oneOf": [
            {
              "type": "null"
            },
            {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "color",
                "near",
                "far"
              ],
              "properties": {
                "color": {
                  "$ref": "#/$defs/color"
                },
                "near": {
                  "type": "number",
                  "minimum": 0
                },
                "far": {
                  "type": "number",
                  "exclusiveMinimum": 0
                }
              }
            }
          ]
        },
        "floor": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "visible",
            "color",
            "receiveShadow",
            "gridVisible"
          ],
          "properties": {
            "visible": {
              "type": "boolean"
            },
            "color": {
              "$ref": "#/$defs/color"
            },
            "receiveShadow": {
              "type": "boolean"
            },
            "gridVisible": {
              "type": "boolean"
            }
          }
        },
        "lights": {
          "type": "array",
          "maxItems": 16,
          "items": {
            "$ref": "#/$defs/light"
          }
        }
      }
    },
    "light": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "type",
        "color",
        "intensity",
        "position",
        "castShadow"
      ],
      "properties": {
        "type": {
          "enum": [
            "ambient",
            "hemisphere",
            "directional",
            "point"
          ]
        },
        "color": {
          "$ref": "#/$defs/color"
        },
        "groundColor": {
          "$ref": "#/$defs/color"
        },
        "intensity": {
          "type": "number",
          "minimum": 0,
          "maximum": 100000
        },
        "position": {
          "$ref": "#/$defs/vec3"
        },
        "castShadow": {
          "type": "boolean"
        }
      }
    },
    "asset": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "assetId",
        "uri",
        "sha256",
        "byteLength",
        "mediaType",
        "displayName",
        "description",
        "category",
        "canonicalSize",
        "normalization",
        "placement",
        "supportsObjects",
        "supportSurfaces"
      ],
      "properties": {
        "library": {
          "type": "object",
          "properties": {
            "version": {
              "const": "quay.asset-library/1",
              "type": "string"
            },
            "alias": {
              "type": "string"
            },
            "scope": {
              "anyOf": [
                {
                  "const": "standard",
                  "type": "string"
                },
                {
                  "const": "user",
                  "type": "string"
                },
                {
                  "const": "project",
                  "type": "string"
                }
              ]
            },
            "projectId": {
              "anyOf": [
                {
                  "type": "null"
                },
                {
                  "type": "string"
                }
              ]
            },
            "origin": {
              "type": "object",
              "properties": {
                "provider": {
                  "type": "string"
                },
                "originalAssetId": {
                  "type": "string"
                },
                "originalUrl": {
                  "anyOf": [
                    {
                      "type": "null"
                    },
                    {
                      "type": "string"
                    }
                  ]
                },
                "author": {
                  "anyOf": [
                    {
                      "type": "null"
                    },
                    {
                      "type": "string"
                    }
                  ]
                },
                "license": {
                  "type": "string"
                },
                "attributionRequired": {
                  "anyOf": [
                    {
                      "const": false,
                      "type": "boolean"
                    },
                    {
                      "const": true,
                      "type": "boolean"
                    }
                  ]
                },
                "originalFilename": {
                  "type": "string"
                },
                "downloadedAt": {
                  "type": "string"
                },
                "contentHash": {
                  "type": "string"
                },
                "sourceHash": {
                  "type": "string"
                }
              },
              "required": [
                "provider",
                "originalAssetId",
                "originalUrl",
                "author",
                "license",
                "attributionRequired",
                "originalFilename",
                "downloadedAt",
                "contentHash",
                "sourceHash"
              ],
              "additionalProperties": false
            },
            "semantics": {
              "type": "object",
              "properties": {
                "taxonomy": {
                  "const": "quay.asset-taxonomy/1",
                  "type": "string"
                },
                "category": {
                  "type": "string"
                },
                "styles": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "roomTypes": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "affordances": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "capacity": {
                  "anyOf": [
                    {
                      "type": "null"
                    },
                    {
                      "type": "number"
                    }
                  ]
                },
                "confidence": {
                  "type": "number"
                },
                "state": {
                  "anyOf": [
                    {
                      "const": "accepted",
                      "type": "string"
                    },
                    {
                      "const": "suggested",
                      "type": "string"
                    },
                    {
                      "const": "unknown",
                      "type": "string"
                    }
                  ]
                },
                "producer": {
                  "type": "string"
                },
                "model": {
                  "anyOf": [
                    {
                      "type": "null"
                    },
                    {
                      "type": "string"
                    }
                  ]
                }
              },
              "required": [
                "taxonomy",
                "category",
                "styles",
                "roomTypes",
                "affordances",
                "capacity",
                "confidence",
                "state",
                "producer",
                "model"
              ],
              "additionalProperties": false
            },
            "manifestId": {
              "anyOf": [
                {
                  "type": "null"
                },
                {
                  "type": "string"
                }
              ]
            },
            "archetypeId": {
              "anyOf": [
                {
                  "type": "null"
                },
                {
                  "type": "string"
                }
              ]
            },
            "cost": {
              "type": "object",
              "properties": {
                "triangles": {
                  "anyOf": [
                    {
                      "type": "null"
                    },
                    {
                      "type": "number"
                    }
                  ]
                },
                "materials": {
                  "anyOf": [
                    {
                      "type": "null"
                    },
                    {
                      "type": "number"
                    }
                  ]
                },
                "textureBytes": {
                  "anyOf": [
                    {
                      "type": "null"
                    },
                    {
                      "type": "number"
                    }
                  ]
                },
                "texturePixels": {
                  "anyOf": [
                    {
                      "type": "null"
                    },
                    {
                      "type": "number"
                    }
                  ]
                }
              },
              "required": [
                "triangles",
                "materials",
                "textureBytes",
                "texturePixels"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "version",
            "alias",
            "scope",
            "projectId",
            "origin",
            "semantics",
            "manifestId",
            "archetypeId",
            "cost"
          ],
          "additionalProperties": false
        },
        "assetId": {
          "type": "string",
          "format": "uuid"
        },
        "uri": {
          "type": "string",
          "minLength": 1,
          "maxLength": 2048
        },
        "sha256": {
          "type": "string",
          "pattern": "^[0-9a-f]{64}$"
        },
        "byteLength": {
          "type": "integer",
          "minimum": 1
        },
        "mediaType": {
          "const": "model/gltf-binary"
        },
        "displayName": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200
        },
        "description": {
          "type": "string",
          "minLength": 1,
          "maxLength": 2000
        },
        "category": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "canonicalSize": {
          "$ref": "#/$defs/positiveVec3"
        },
        "normalization": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "rawBounds",
            "scale",
            "baseOffset",
            "forwardCorrection"
          ],
          "properties": {
            "rawBounds": {
              "$ref": "#/$defs/bounds"
            },
            "scale": {
              "$ref": "#/$defs/positiveVec3"
            },
            "baseOffset": {
              "$ref": "#/$defs/vec3"
            },
            "forwardCorrection": {
              "$ref": "#/$defs/quaternion"
            }
          }
        },
        "placement": {
          "enum": [
            "floor_only",
            "support_only",
            "floor_or_support"
          ]
        },
        "supportsObjects": {
          "type": "boolean"
        },
        "wallAlignment": {
          "type": [
            "string",
            "null"
          ],
          "enum": [
            "left",
            "center",
            "right",
            null
          ]
        },
        "availability": {
          "enum": [
            "global",
            "local"
          ]
        },
        "roomId": {
          "type": [
            "string",
            "null"
          ]
        },
        "supportSurfaces": {
          "type": "array",
          "maxItems": 50,
          "items": {
            "$ref": "#/$defs/supportSurface"
          }
        }
      }
    },
    "imageAsset": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "assetId",
        "uri",
        "sha256",
        "byteLength",
        "mediaType",
        "displayName"
      ],
      "properties": {
        "assetId": {
          "type": "string",
          "format": "uuid"
        },
        "uri": {
          "type": "string",
          "minLength": 1,
          "maxLength": 2000
        },
        "sha256": {
          "type": "string",
          "pattern": "^[0-9a-fA-F]{64}$"
        },
        "byteLength": {
          "type": "integer",
          "minimum": 1
        },
        "mediaType": {
          "enum": [
            "image/png",
            "image/jpeg",
            "image/webp"
          ]
        },
        "displayName": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200
        }
      }
    },
    "supportSurface": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "surfaceId",
        "label",
        "center",
        "normal",
        "size",
        "source"
      ],
      "properties": {
        "surfaceId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "label": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "center": {
          "$ref": "#/$defs/vec3"
        },
        "normal": {
          "$ref": "#/$defs/vec3"
        },
        "size": {
          "type": "array",
          "minItems": 2,
          "maxItems": 2,
          "prefixItems": [
            {
              "type": "number",
              "exclusiveMinimum": 0
            },
            {
              "type": "number",
              "exclusiveMinimum": 0
            }
          ],
          "items": false
        },
        "source": {
          "enum": [
            "bounds",
            "mesh",
            "manual"
          ]
        }
      }
    },
    "instance": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "instanceId",
        "assetId",
        "name",
        "transform",
        "visible",
        "castShadow",
        "receiveShadow",
        "locked",
        "placement",
        "tags"
      ],
      "properties": {
        "instanceId": {
          "type": "string",
          "format": "uuid"
        },
        "assetId": {
          "type": "string",
          "format": "uuid"
        },
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200
        },
        "transform": {
          "$ref": "#/$defs/transform"
        },
        "normalization": {
          "$ref": "#/$defs/asset/properties/normalization"
        },
        "wallImage": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "wallInstanceId",
            "assetId",
            "position",
            "size",
            "surfaceOffset",
            "preserveAspectRatio"
          ],
          "properties": {
            "wallInstanceId": {
              "type": "string",
              "format": "uuid"
            },
            "assetId": {
              "type": "string",
              "format": "uuid"
            },
            "position": {
              "$ref": "#/$defs/length2"
            },
            "size": {
              "$ref": "#/$defs/positiveLength2"
            },
            "surfaceOffset": {
              "type": "number",
              "minimum": 0
            },
            "preserveAspectRatio": {
              "type": "boolean"
            },
            "surface": {
              "enum": [
                "wall",
                "floor"
              ]
            }
          }
        },
        "visible": {
          "type": "boolean"
        },
        "castShadow": {
          "type": "boolean"
        },
        "receiveShadow": {
          "type": "boolean"
        },
        "locked": {
          "type": "boolean"
        },
        "placement": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "source",
            "supportingInstanceId",
            "supportSurfaceId",
            "solverStatus"
          ],
          "properties": {
            "source": {
              "enum": [
                "solver",
                "manual",
                "imported"
              ]
            },
            "supportingInstanceId": {
              "type": [
                "string",
                "null"
              ],
              "format": "uuid"
            },
            "supportSurfaceId": {
              "type": [
                "string",
                "null"
              ],
              "maxLength": 100
            },
            "solverStatus": {
              "enum": [
                "placed",
                "fallback",
                "unresolved"
              ]
            }
          }
        },
        "tags": {
          "type": "array",
          "maxItems": 50,
          "uniqueItems": true,
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          }
        },
        "materialId": {
          "type": "string",
          "format": "uuid"
        }
      }
    },
    "resolvedRelation": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "relationId",
        "type",
        "subjectInstanceId",
        "targetInstanceId",
        "strength",
        "status",
        "message"
      ],
      "properties": {
        "relationId": {
          "type": "string",
          "format": "uuid"
        },
        "type": {
          "enum": [
            "ON",
            "NEAR",
            "LEFT_OF",
            "RIGHT_OF",
            "IN_FRONT_OF",
            "BEHIND",
            "FACING",
            "CENTERED_ON",
            "ALIGNED_WITH",
            "AGAINST_WALL",
            "KEEP_CLEAR_OF"
          ]
        },
        "subjectInstanceId": {
          "type": "string",
          "format": "uuid"
        },
        "targetInstanceId": {
          "type": [
            "string",
            "null"
          ],
          "format": "uuid"
        },
        "strength": {
          "enum": [
            "hard",
            "soft"
          ]
        },
        "status": {
          "enum": [
            "satisfied",
            "degraded",
            "unresolved"
          ]
        },
        "message": {
          "type": "string",
          "maxLength": 500
        }
      }
    },
    "diagnostic": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "code",
        "severity",
        "message",
        "instanceIds",
        "relationId"
      ],
      "properties": {
        "code": {
          "type": "string",
          "pattern": "^[A-Z][A-Z0-9_]{1,63}$"
        },
        "severity": {
          "enum": [
            "info",
            "warning",
            "error"
          ]
        },
        "message": {
          "type": "string",
          "minLength": 1,
          "maxLength": 1000
        },
        "instanceIds": {
          "type": "array",
          "maxItems": 50,
          "uniqueItems": true,
          "items": {
            "type": "string",
            "format": "uuid"
          }
        },
        "relationId": {
          "type": [
            "string",
            "null"
          ],
          "format": "uuid"
        },
        "measurements": {
          "type": "object",
          "additionalProperties": {
            "type": "number"
          }
        }
      }
    },
    "camera": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "type",
        "position",
        "target",
        "up",
        "fovDegrees",
        "near",
        "far"
      ],
      "properties": {
        "type": {
          "const": "perspective"
        },
        "position": {
          "$ref": "#/$defs/vec3"
        },
        "target": {
          "$ref": "#/$defs/vec3"
        },
        "up": {
          "$ref": "#/$defs/vec3"
        },
        "fovDegrees": {
          "type": "number",
          "exclusiveMinimum": 1,
          "exclusiveMaximum": 179
        },
        "near": {
          "type": "number",
          "exclusiveMinimum": 0
        },
        "far": {
          "type": "number",
          "exclusiveMinimum": 0
        }
      }
    },
    "provenance": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "createdBy",
        "planner",
        "layoutEngineVersion",
        "threeVersion",
        "sourcePrompt"
      ],
      "properties": {
        "createdBy": {
          "enum": [
            "quay",
            "import"
          ]
        },
        "planner": {
          "oneOf": [
            {
              "type": "null"
            },
            {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "provider",
                "model",
                "promptTemplateVersion",
                "requestId"
              ],
              "properties": {
                "provider": {
                  "enum": [
                    "openai",
                    "fake"
                  ]
                },
                "model": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "promptTemplateVersion": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 50
                },
                "requestId": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200
                }
              }
            }
          ]
        },
        "layoutEngineVersion": {
          "type": "string",
          "minLength": 1,
          "maxLength": 50
        },
        "threeVersion": {
          "type": "string",
          "minLength": 1,
          "maxLength": 50
        },
        "sourcePrompt": {
          "type": "string",
          "maxLength": 4000
        }
      }
    }
  },
  "additionalProperties": false,
  "properties": {
    "version": {
      "const": "quay.project-archive/1",
      "title": "Version",
      "type": "string"
    },
    "editor": {
      "$ref": "#/$defs/ArchiveEditor"
    },
    "workspace": {
      "additionalProperties": {
        "$ref": "#/$defs/JsonValue"
      },
      "title": "Workspace",
      "type": "object"
    }
  },
  "required": [
    "version",
    "editor",
    "workspace"
  ],
  "title": "ProjectArchiveCheckpoint",
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

project.schema.json

Download project.schema.json

Root propertyRequiredConstraint
ramsno{"type":"object","properties":{"source":{"type":"string"},"config":{"anyOf":[{"type":"null"},{"type":"object","properties":{"presentation":{"type":"object","properties":{"template":{"const":"portfolio","type":"string"},"monogram":{"type":"string"},"rooms":{"type":"array","items":{"type":"object","properties":{"stableRoomId":{"type":"string"},"slug":{"type":"string"},"canonicalPath":{"type":"string"},"navigationTitle":{"type":"string"},"title":{"type":"string"},"subtitle":{"type":"string"},"seoTitle":{"type":"string"},"seoDescription":{"type":"string"},"html":{"type":"string"}},"required":["stableRoomId","slug","canonicalPath","navigationTitle","title","subtitle","seoTitle","seoDescription","html"],"additionalProperties":false}},"welcomeAudio":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"landscapeOnMobile":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"introState":{"anyOf":[{"type":"null"},{"type":"string"}]}},"required":["template","monogram","rooms","welcomeAudio","landscapeOnMobile","introState"],"additionalProperties":false},"version":{"const":"rams.site/1","type":"string"},"title":{"type":"string"},"locale":{"anyOf":[{"const":"it","type":"string"},{"const":"en","type":"string"}]},"navigation":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"action":{"anyOf":[{"type":"object","properties":{"kind":{"anyOf":[{"const":"navigate","type":"string"},{"const":"focus","type":"string"},{"const":"overlay","type":"string"},{"const":"page","type":"string"},{"const":"info","type":"string"},{"const":"world-action","type":"string"},{"const":"cinematic","type":"string"}]},"target":{"type":"string"}},"required":["kind","target"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"external","type":"string"},"url":{"type":"string"}},"required":["kind","url"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"back","type":"string"}},"required":["kind"],"additionalProperties":false}]}},"required":["label","action"],"additionalProperties":false}},"footer":{"type":"object","properties":{"text":{"type":"string"},"links":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"action":{"anyOf":[{"type":"object","properties":{"kind":{"anyOf":[{"const":"navigate","type":"string"},{"const":"focus","type":"string"},{"const":"overlay","type":"string"},{"const":"page","type":"string"},{"const":"info","type":"string"},{"const":"world-action","type":"string"},{"const":"cinematic","type":"string"}]},"target":{"type":"string"}},"required":["kind","target"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"external","type":"string"},"url":{"type":"string"}},"required":["kind","url"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"back","type":"string"}},"required":["kind"],"additionalProperties":false}]}},"required":["label","action"],"additionalProperties":false}},"branding":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]}},"required":["text","links","branding"],"additionalProperties":false},"rooms":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"description":{"type":"string"},"descriptionSource":{"anyOf":[{"const":"generated","type":"string"},{"const":"authored","type":"string"}]},"image":{"anyOf":[{"type":"null"},{"type":"string"}]},"actions":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"action":{"anyOf":[{"type":"object","properties":{"kind":{"anyOf":[{"const":"navigate","type":"string"},{"const":"focus","type":"string"},{"const":"overlay","type":"string"},{"const":"page","type":"string"},{"const":"info","type":"string"},{"const":"world-action","type":"string"},{"const":"cinematic","type":"string"}]},"target":{"type":"string"}},"required":["kind","target"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"external","type":"string"},"url":{"type":"string"}},"required":["kind","url"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"back","type":"string"}},"required":["kind"],"additionalProperties":false}]}},"required":["label","action"],"additionalProperties":false}}},"required":["id","title","summary","description","descriptionSource","image","actions"],"additionalProperties":false}},"roomInfo":{"anyOf":[{"const":"card","type":"string"},{"const":"panel","type":"string"},{"const":"chat","type":"string"},{"const":"none","type":"string"}]},"overlays":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"kind":{"anyOf":[{"const":"text","type":"string"},{"const":"project","type":"string"},{"const":"about","type":"string"},{"const":"gallery","type":"string"},{"const":"embed","type":"string"},{"const":"html","type":"string"},{"const":"contact","type":"string"},{"const":"component","type":"string"}]},"text":{"type":"string"},"images":{"type":"array","items":{"type":"string"}},"url":{"anyOf":[{"type":"null"},{"type":"string"}]},"fragment":{"anyOf":[{"type":"null"},{"type":"object","properties":{"html":{"type":"string"},"css":{"type":"string"},"script":{"type":"string"},"security":{"anyOf":[{"const":"safe","type":"string"},{"const":"controlled-script","type":"string"}]}},"required":["html","css","script","security"],"additionalProperties":false}]},"component":{"anyOf":[{"type":"null"},{"const":"chat","type":"string"},{"const":"rooms","type":"string"}]},"actions":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"action":{"anyOf":[{"type":"object","properties":{"kind":{"anyOf":[{"const":"navigate","type":"string"},{"const":"focus","type":"string"},{"const":"overlay","type":"string"},{"const":"page","type":"string"},{"const":"info","type":"string"},{"const":"world-action","type":"string"},{"const":"cinematic","type":"string"}]},"target":{"type":"string"}},"required":["kind","target"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"external","type":"string"},"url":{"type":"string"}},"required":["kind","url"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"back","type":"string"}},"required":["kind"],"additionalProperties":false}]}},"required":["label","action"],"additionalProperties":false}}},"required":["id","title","kind","text","images","url","fragment","component","actions"],"additionalProperties":false}},"pages":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"kind":{"anyOf":[{"const":"text","type":"string"},{"const":"project","type":"string"},{"const":"about","type":"string"},{"const":"gallery","type":"string"},{"const":"embed","type":"string"},{"const":"html","type":"string"},{"const":"contact","type":"string"},{"const":"component","type":"string"}]},"text":{"type":"string"},"images":{"type":"array","items":{"type":"string"}},"url":{"anyOf":[{"type":"null"},{"type":"string"}]},"fragment":{"anyOf":[{"type":"null"},{"type":"object","properties":{"html":{"type":"string"},"css":{"type":"string"},"script":{"type":"string"},"security":{"anyOf":[{"const":"safe","type":"string"},{"const":"controlled-script","type":"string"}]}},"required":["html","css","script","security"],"additionalProperties":false}]},"component":{"anyOf":[{"type":"null"},{"const":"chat","type":"string"},{"const":"rooms","type":"string"}]},"actions":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"action":{"anyOf":[{"type":"object","properties":{"kind":{"anyOf":[{"const":"navigate","type":"string"},{"const":"focus","type":"string"},{"const":"overlay","type":"string"},{"const":"page","type":"string"},{"const":"info","type":"string"},{"const":"world-action","type":"string"},{"const":"cinematic","type":"string"}]},"target":{"type":"string"}},"required":["kind","target"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"external","type":"string"},"url":{"type":"string"}},"required":["kind","url"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"back","type":"string"}},"required":["kind"],"additionalProperties":false}]}},"required":["label","action"],"additionalProperties":false}}},"required":["id","title","kind","text","images","url","fragment","component","actions"],"additionalProperties":false}},"assets":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"alt":{"type":"string"},"data":{"type":"string"}},"required":["id","alt","data"],"additionalProperties":false}},"theme":{"type":"object","properties":{"mode":{"anyOf":[{"const":"dark","type":"string"},{"const":"light","type":"string"},{"const":"system","type":"string"}]},"font":{"anyOf":[{"const":"system","type":"string"},{"const":"serif","type":"string"},{"const":"mono","type":"string"}]},"fontSize":{"type":"number"},"spacing":{"type":"number"},"radius":{"type":"number"},"background":{"type":"string"},"foreground":{"type":"string"},"accent":{"type":"string"},"navigation":{"anyOf":[{"const":"solid","type":"string"},{"const":"glass","type":"string"}]},"footer":{"anyOf":[{"const":"compact","type":"string"},{"const":"expanded","type":"string"}]},"overlay":{"anyOf":[{"const":"center","type":"string"},{"const":"side","type":"string"}]},"transitions":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"logo":{"anyOf":[{"type":"null"},{"type":"string"}]}},"required":["mode","font","fontSize","spacing","radius","background","foreground","accent","navigation","footer","overlay","transitions","logo"],"additionalProperties":false},"contact":{"type":"object","properties":{"endpoint":{"anyOf":[{"type":"null"},{"type":"string"}]},"alternative":{"type":"string"},"privacy":{"type":"string"},"fields":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string"},"required":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]}},"required":["id","label","required"],"additionalProperties":false}},"honeypot":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]}},"required":["endpoint","alternative","privacy","fields","honeypot"],"additionalProperties":false},"chat":{"type":"object","properties":{"enabled":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"welcome":{"type":"string"}},"required":["enabled","welcome"],"additionalProperties":false},"security":{"type":"object","properties":{"embedOrigins":{"type":"array","items":{"type":"string"}}},"required":["embedOrigins"],"additionalProperties":false},"deploy":{"type":"object","properties":{"target":{"const":"static","type":"string"},"basePath":{"type":"string"},"profiles":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"transport":{"anyOf":[{"const":"local","type":"string"},{"const":"ssh","type":"string"},{"const":"sftp","type":"string"},{"const":"rsync","type":"string"},{"const":"scp","type":"string"},{"const":"ftp","type":"string"},{"const":"ftps","type":"string"},{"const":"custom","type":"string"}]},"host":{"type":"string"},"port":{"type":"number"},"username":{"type":"string"},"destination":{"type":"string"},"credentialRef":{"type":"string"},"strategy":{"anyOf":[{"const":"atomic","type":"string"},{"const":"directory","type":"string"}]},"buildProfile":{"const":"production","type":"string"},"preDeploy":{"const":"verify","type":"string"},"postDeploy":{"const":"healthcheck","type":"string"},"healthCheck":{"type":"object","properties":{"url":{"type":"string"},"expectedStatus":{"type":"number"},"expectedText":{"type":"string"}},"required":["url","expectedStatus","expectedText"],"additionalProperties":false},"timeout":{"type":"number"},"keepReleases":{"type":"number"},"compression":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"clean":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"passive":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"tls":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]}},"required":["id","name","transport","host","port","username","destination","credentialRef","strategy","buildProfile","preDeploy","postDeploy","healthCheck","timeout","keepReleases","compression","clean","passive","tls"],"additionalProperties":false}}},"required":["target","basePath"],"additionalProperties":false}},"required":["version","title","locale","navigation","footer","rooms","roomInfo","overlays","pages","assets","theme","contact","chat","security","deploy"],"additionalProperties":false}]},"error":{"anyOf":[{"type":"null"},{"type":"string"}]}},"required":["source","config","error"],"additionalProperties":false}
wrightno{"type":"object","properties":{"version":{"const":"wright.world/1","type":"string"},"identity":{"type":"string"},"rooms":{"type":"array","items":{"type":"object","properties":{"furnishing":{"type":"object","properties":{"roomProgram":{"type":"object","properties":{"repair":{"type":"object","properties":{"stage":{"const":"semantic","type":"string"},"attempts":{"type":"number"},"strategy":{"anyOf":[{"const":"none","type":"string"},{"const":"bounded-semantic-revision","type":"string"}]},"initialFailures":{"type":"array","items":{"type":"string"}},"finalState":{"const":"accepted","type":"string"},"relaxedConstraints":{"type":"array","items":{"type":"string"}}},"required":["stage","attempts","strategy","initialFailures","finalState","relaxedConstraints"],"additionalProperties":false},"enrichment":{"type":"object","properties":{"provider":{"type":"string"},"model":{"type":"string"},"version":{"type":"string"}},"required":["provider","model","version"],"additionalProperties":false},"intent":{"type":"object","properties":{"version":{"const":"qway.room-program/1","type":"string"},"archetype":{"type":"string"},"archetypeRevision":{"type":"string"},"purpose":{"type":"string"},"capacity":{"type":"number"},"style":{"type":"string"},"zones":{"type":"array","items":{"type":"object","properties":{"reference":{"type":"string"},"purpose":{"type":"string"},"priority":{"anyOf":[{"const":"required","type":"string"},{"const":"recommended","type":"string"},{"const":"optional","type":"string"}]}},"required":["reference","purpose","priority"],"additionalProperties":false}},"needs":{"type":"array","items":{"type":"object","properties":{"reference":{"type":"string"},"category":{"type":"string"},"zone":{"type":"string"},"quantity":{"type":"number"},"capacity":{"anyOf":[{"type":"null"},{"type":"number"}]},"priority":{"anyOf":[{"const":"required","type":"string"},{"const":"recommended","type":"string"},{"const":"optional","type":"string"}]},"assetAlias":{"anyOf":[{"type":"null"},{"type":"string"}]},"placement":{"anyOf":[{"const":"center","type":"string"},{"const":"auto","type":"string"},{"const":"perimeter","type":"string"}]},"evidence":{"type":"object","properties":{"origin":{"anyOf":[{"const":"explicit","type":"string"},{"const":"archetype","type":"string"},{"const":"inferred","type":"string"}]},"confidence":{"type":"number"},"explanation":{"type":"string"}},"required":["origin","confidence","explanation"],"additionalProperties":false}},"required":["reference","category","zone","quantity","capacity","priority","assetAlias","placement","evidence"],"additionalProperties":false}},"rules":{"type":"array","items":{"type":"object","properties":{"reference":{"type":"string"},"kind":{"anyOf":[{"const":"on","type":"string"},{"const":"seating","type":"string"},{"const":"beside","type":"string"},{"const":"facing","type":"string"},{"const":"near-window","type":"string"},{"const":"wall-alignment","type":"string"},{"const":"interior","type":"string"},{"const":"access","type":"string"},{"const":"visibility","type":"string"},{"const":"clearance","type":"string"},{"const":"circulation","type":"string"},{"const":"minimum-dimensions","type":"string"},{"const":"unsupported","type":"string"}]},"subjects":{"type":"array","items":{"type":"string"}},"target":{"anyOf":[{"type":"null"},{"type":"string"}]},"priority":{"anyOf":[{"const":"required","type":"string"},{"const":"recommended","type":"string"},{"const":"optional","type":"string"}]},"strength":{"anyOf":[{"const":"hard","type":"string"},{"const":"soft","type":"string"}]},"clearanceM":{"anyOf":[{"type":"null"},{"type":"number"}]},"description":{"type":"string"},"evidence":{"type":"object","properties":{"origin":{"anyOf":[{"const":"explicit","type":"string"},{"const":"archetype","type":"string"},{"const":"inferred","type":"string"}]},"confidence":{"type":"number"},"explanation":{"type":"string"}},"required":["origin","confidence","explanation"],"additionalProperties":false}},"required":["reference","kind","subjects","target","priority","strength","clearanceM","description","evidence"],"additionalProperties":false}},"architecture":{"type":"array","items":{"type":"object","properties":{"reference":{"type":"string"},"kind":{"anyOf":[{"const":"window","type":"string"},{"const":"portal","type":"string"},{"const":"wall-run","type":"string"},{"const":"open-center","type":"string"},{"const":"natural-light","type":"string"},{"const":"ceiling-light","type":"string"}]},"quantity":{"type":"number"},"priority":{"anyOf":[{"const":"required","type":"string"},{"const":"recommended","type":"string"},{"const":"optional","type":"string"}]},"evidence":{"type":"object","properties":{"origin":{"anyOf":[{"const":"explicit","type":"string"},{"const":"archetype","type":"string"},{"const":"inferred","type":"string"}]},"confidence":{"type":"number"},"explanation":{"type":"string"}},"required":["origin","confidence","explanation"],"additionalProperties":false}},"required":["reference","kind","quantity","priority","evidence"],"additionalProperties":false}},"exclusions":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"evidence":{"type":"object","properties":{"origin":{"const":"explicit","type":"string"},"confidence":{"type":"number"},"explanation":{"type":"string"}},"required":["origin","confidence","explanation"],"additionalProperties":false}},"required":["category","evidence"],"additionalProperties":false}},"uncertainties":{"type":"array","items":{"type":"string"}}},"required":["version","archetype","archetypeRevision","purpose","capacity","style","zones","needs","rules","architecture","exclusions","uncertainties"],"additionalProperties":false},"archetypeSnapshot":{"type":"object","properties":{"version":{"const":"qway.room-program/1","type":"string"},"archetype":{"type":"string"},"archetypeRevision":{"type":"string"},"purpose":{"type":"string"},"capacity":{"type":"number"},"style":{"type":"string"},"zones":{"type":"array","items":{"type":"object","properties":{"reference":{"type":"string"},"purpose":{"type":"string"},"priority":{"anyOf":[{"const":"required","type":"string"},{"const":"recommended","type":"string"},{"const":"optional","type":"string"}]}},"required":["reference","purpose","priority"],"additionalProperties":false}},"needs":{"type":"array","items":{"type":"object","properties":{"reference":{"type":"string"},"category":{"type":"string"},"zone":{"type":"string"},"quantity":{"type":"number"},"capacity":{"anyOf":[{"type":"null"},{"type":"number"}]},"priority":{"anyOf":[{"const":"required","type":"string"},{"const":"recommended","type":"string"},{"const":"optional","type":"string"}]},"assetAlias":{"anyOf":[{"type":"null"},{"type":"string"}]},"placement":{"anyOf":[{"const":"center","type":"string"},{"const":"auto","type":"string"},{"const":"perimeter","type":"string"}]},"evidence":{"type":"object","properties":{"origin":{"anyOf":[{"const":"explicit","type":"string"},{"const":"archetype","type":"string"},{"const":"inferred","type":"string"}]},"confidence":{"type":"number"},"explanation":{"type":"string"}},"required":["origin","confidence","explanation"],"additionalProperties":false}},"required":["reference","category","zone","quantity","capacity","priority","assetAlias","placement","evidence"],"additionalProperties":false}},"rules":{"type":"array","items":{"type":"object","properties":{"reference":{"type":"string"},"kind":{"anyOf":[{"const":"on","type":"string"},{"const":"seating","type":"string"},{"const":"beside","type":"string"},{"const":"facing","type":"string"},{"const":"near-window","type":"string"},{"const":"wall-alignment","type":"string"},{"const":"interior","type":"string"},{"const":"access","type":"string"},{"const":"visibility","type":"string"},{"const":"clearance","type":"string"},{"const":"circulation","type":"string"},{"const":"minimum-dimensions","type":"string"},{"const":"unsupported","type":"string"}]},"subjects":{"type":"array","items":{"type":"string"}},"target":{"anyOf":[{"type":"null"},{"type":"string"}]},"priority":{"anyOf":[{"const":"required","type":"string"},{"const":"recommended","type":"string"},{"const":"optional","type":"string"}]},"strength":{"anyOf":[{"const":"hard","type":"string"},{"const":"soft","type":"string"}]},"clearanceM":{"anyOf":[{"type":"null"},{"type":"number"}]},"description":{"type":"string"},"evidence":{"type":"object","properties":{"origin":{"anyOf":[{"const":"explicit","type":"string"},{"const":"archetype","type":"string"},{"const":"inferred","type":"string"}]},"confidence":{"type":"number"},"explanation":{"type":"string"}},"required":["origin","confidence","explanation"],"additionalProperties":false}},"required":["reference","kind","subjects","target","priority","strength","clearanceM","description","evidence"],"additionalProperties":false}},"architecture":{"type":"array","items":{"type":"object","properties":{"reference":{"type":"string"},"kind":{"anyOf":[{"const":"window","type":"string"},{"const":"portal","type":"string"},{"const":"wall-run","type":"string"},{"const":"open-center","type":"string"},{"const":"natural-light","type":"string"},{"const":"ceiling-light","type":"string"}]},"quantity":{"type":"number"},"priority":{"anyOf":[{"const":"required","type":"string"},{"const":"recommended","type":"string"},{"const":"optional","type":"string"}]},"evidence":{"type":"object","properties":{"origin":{"anyOf":[{"const":"explicit","type":"string"},{"const":"archetype","type":"string"},{"const":"inferred","type":"string"}]},"confidence":{"type":"number"},"explanation":{"type":"string"}},"required":["origin","confidence","explanation"],"additionalProperties":false}},"required":["reference","kind","quantity","priority","evidence"],"additionalProperties":false}},"exclusions":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"evidence":{"type":"object","properties":{"origin":{"const":"explicit","type":"string"},"confidence":{"type":"number"},"explanation":{"type":"string"}},"required":["origin","confidence","explanation"],"additionalProperties":false}},"required":["category","evidence"],"additionalProperties":false}},"uncertainties":{"type":"array","items":{"type":"string"}}},"required":["version","archetype","archetypeRevision","purpose","capacity","style","zones","needs","rules","architecture","exclusions","uncertainties"],"additionalProperties":false},"bindings":{"type":"object","properties":{},"required":[],"additionalProperties":{"type":"string"}}},"required":["intent","archetypeSnapshot","bindings"],"additionalProperties":false},"version":{"const":"qway.furnishing/1","type":"string"},"purpose":{"type":"string"},"capacity":{"type":"number"},"style":{"type":"string"},"needs":{"type":"array","items":{"type":"object","properties":{"identity":{"type":"string"},"category":{"type":"string"},"quantity":{"type":"number"},"capacity":{"anyOf":[{"type":"null"},{"type":"number"}]},"assetAlias":{"anyOf":[{"type":"null"},{"type":"string"}]},"placement":{"anyOf":[{"const":"center","type":"string"},{"const":"auto","type":"string"},{"const":"perimeter","type":"string"}]},"relation":{"anyOf":[{"type":"null"},{"const":"on","type":"string"},{"const":"seating","type":"string"},{"const":"near-window","type":"string"}]},"target":{"anyOf":[{"type":"null"},{"type":"string"}]},"instances":{"type":"array","items":{"type":"array","items":{"type":"string"}}}},"required":["identity","category","quantity","capacity","assetAlias","placement","relation","target","instances"],"additionalProperties":false}}},"required":["version","purpose","capacity","style","needs"],"additionalProperties":false},"identity":{"type":"string"},"alias":{"type":"string","maxLength":100},"label":{"type":"string","maxLength":200},"level":{"anyOf":[{"type":"null"},{"type":"string"}]},"parent":{"anyOf":[{"type":"null"},{"type":"string"}]},"size":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"frame":{"type":"object","properties":{"position":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"quaternion":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":4,"maxItems":4,"items":false}},"required":["position","quaternion"],"additionalProperties":false},"backdrop":{"anyOf":[{"type":"object","properties":{"materialId":{"type":"string"},"identity":{"type":"string"},"semantic":{"type":"string","maxLength":200},"source":{"anyOf":[{"type":"object","properties":{"kind":{"const":"image","type":"string"},"assetId":{"type":"string"},"uri":{"type":"string"},"mediaType":{"anyOf":[{"const":"image/png","type":"string"},{"const":"image/jpeg","type":"string"},{"const":"image/webp","type":"string"}]},"sha256":{"type":"string"},"byteLength":{"type":"number"}},"required":["kind","assetId","uri","mediaType","sha256","byteLength"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"asset","type":"string"},"uri":{"type":"null"},"assetId":{"type":"string"}},"required":["kind","uri","assetId"],"additionalProperties":false}]},"side":{"anyOf":[{"const":"north","type":"string"},{"const":"south","type":"string"},{"const":"east","type":"string"},{"const":"west","type":"string"}]},"mode":{"const":"architectural","type":"string"},"fit":{"anyOf":[{"const":"cover","type":"string"},{"const":"contain","type":"string"}]},"projection":{"const":"flat","type":"string"},"distance":{"type":"number"},"lighting":{"anyOf":[{"const":"unlit","type":"string"},{"const":"lit","type":"string"}]},"enabled":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]}},"required":["identity","semantic","source","side","mode","fit","projection","distance","lighting","enabled"],"additionalProperties":false},{"type":"object","properties":{"north":{"type":"object","properties":{"materialId":{"type":"string"},"identity":{"type":"string"},"semantic":{"type":"string","maxLength":200},"source":{"anyOf":[{"type":"object","properties":{"kind":{"const":"image","type":"string"},"assetId":{"type":"string"},"uri":{"type":"string"},"mediaType":{"anyOf":[{"const":"image/png","type":"string"},{"const":"image/jpeg","type":"string"},{"const":"image/webp","type":"string"}]},"sha256":{"type":"string"},"byteLength":{"type":"number"}},"required":["kind","assetId","uri","mediaType","sha256","byteLength"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"asset","type":"string"},"uri":{"type":"null"},"assetId":{"type":"string"}},"required":["kind","uri","assetId"],"additionalProperties":false}]},"side":{"anyOf":[{"const":"north","type":"string"},{"const":"south","type":"string"},{"const":"east","type":"string"},{"const":"west","type":"string"}]},"mode":{"const":"architectural","type":"string"},"fit":{"anyOf":[{"const":"cover","type":"string"},{"const":"contain","type":"string"}]},"projection":{"const":"flat","type":"string"},"distance":{"type":"number"},"lighting":{"anyOf":[{"const":"unlit","type":"string"},{"const":"lit","type":"string"}]},"enabled":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]}},"required":["identity","semantic","source","side","mode","fit","projection","distance","lighting","enabled"],"additionalProperties":false},"south":{"type":"object","properties":{"materialId":{"type":"string"},"identity":{"type":"string"},"semantic":{"type":"string","maxLength":200},"source":{"anyOf":[{"type":"object","properties":{"kind":{"const":"image","type":"string"},"assetId":{"type":"string"},"uri":{"type":"string"},"mediaType":{"anyOf":[{"const":"image/png","type":"string"},{"const":"image/jpeg","type":"string"},{"const":"image/webp","type":"string"}]},"sha256":{"type":"string"},"byteLength":{"type":"number"}},"required":["kind","assetId","uri","mediaType","sha256","byteLength"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"asset","type":"string"},"uri":{"type":"null"},"assetId":{"type":"string"}},"required":["kind","uri","assetId"],"additionalProperties":false}]},"side":{"anyOf":[{"const":"north","type":"string"},{"const":"south","type":"string"},{"const":"east","type":"string"},{"const":"west","type":"string"}]},"mode":{"const":"architectural","type":"string"},"fit":{"anyOf":[{"const":"cover","type":"string"},{"const":"contain","type":"string"}]},"projection":{"const":"flat","type":"string"},"distance":{"type":"number"},"lighting":{"anyOf":[{"const":"unlit","type":"string"},{"const":"lit","type":"string"}]},"enabled":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]}},"required":["identity","semantic","source","side","mode","fit","projection","distance","lighting","enabled"],"additionalProperties":false},"east":{"type":"object","properties":{"materialId":{"type":"string"},"identity":{"type":"string"},"semantic":{"type":"string","maxLength":200},"source":{"anyOf":[{"type":"object","properties":{"kind":{"const":"image","type":"string"},"assetId":{"type":"string"},"uri":{"type":"string"},"mediaType":{"anyOf":[{"const":"image/png","type":"string"},{"const":"image/jpeg","type":"string"},{"const":"image/webp","type":"string"}]},"sha256":{"type":"string"},"byteLength":{"type":"number"}},"required":["kind","assetId","uri","mediaType","sha256","byteLength"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"asset","type":"string"},"uri":{"type":"null"},"assetId":{"type":"string"}},"required":["kind","uri","assetId"],"additionalProperties":false}]},"side":{"anyOf":[{"const":"north","type":"string"},{"const":"south","type":"string"},{"const":"east","type":"string"},{"const":"west","type":"string"}]},"mode":{"const":"architectural","type":"string"},"fit":{"anyOf":[{"const":"cover","type":"string"},{"const":"contain","type":"string"}]},"projection":{"const":"flat","type":"string"},"distance":{"type":"number"},"lighting":{"anyOf":[{"const":"unlit","type":"string"},{"const":"lit","type":"string"}]},"enabled":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]}},"required":["identity","semantic","source","side","mode","fit","projection","distance","lighting","enabled"],"additionalProperties":false},"west":{"type":"object","properties":{"materialId":{"type":"string"},"identity":{"type":"string"},"semantic":{"type":"string","maxLength":200},"source":{"anyOf":[{"type":"object","properties":{"kind":{"const":"image","type":"string"},"assetId":{"type":"string"},"uri":{"type":"string"},"mediaType":{"anyOf":[{"const":"image/png","type":"string"},{"const":"image/jpeg","type":"string"},{"const":"image/webp","type":"string"}]},"sha256":{"type":"string"},"byteLength":{"type":"number"}},"required":["kind","assetId","uri","mediaType","sha256","byteLength"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"asset","type":"string"},"uri":{"type":"null"},"assetId":{"type":"string"}},"required":["kind","uri","assetId"],"additionalProperties":false}]},"side":{"anyOf":[{"const":"north","type":"string"},{"const":"south","type":"string"},{"const":"east","type":"string"},{"const":"west","type":"string"}]},"mode":{"const":"architectural","type":"string"},"fit":{"anyOf":[{"const":"cover","type":"string"},{"const":"contain","type":"string"}]},"projection":{"const":"flat","type":"string"},"distance":{"type":"number"},"lighting":{"anyOf":[{"const":"unlit","type":"string"},{"const":"lit","type":"string"}]},"enabled":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]}},"required":["identity","semantic","source","side","mode","fit","projection","distance","lighting","enabled"],"additionalProperties":false}},"required":[],"additionalProperties":false}]}},"required":["identity","alias","label","level","parent","size","frame"],"additionalProperties":false}},"levels":{"type":"array","items":{"type":"object","properties":{"identity":{"type":"string"},"label":{"type":"string"}},"required":["identity","label"],"additionalProperties":false}},"portals":{"type":"array","items":{"type":"object","properties":{"identity":{"type":"string"},"alias":{"type":"string","maxLength":100},"from":{"type":"string"},"to":{"type":"string"},"frame":{"type":"object","properties":{"position":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"quaternion":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":4,"maxItems":4,"items":false}},"required":["position","quaternion"],"additionalProperties":false},"width":{"type":"number"},"height":{"type":"number"},"traversable":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"door":{"anyOf":[{"type":"null"},{"type":"string"}]}},"required":["identity","alias","from","to","frame","width","height","traversable","door"],"additionalProperties":false}},"entrances":{"type":"array","items":{"type":"object","properties":{"identity":{"type":"string"},"alias":{"type":"string","maxLength":100},"room":{"type":"string"},"frame":{"type":"object","properties":{"position":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"quaternion":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":4,"maxItems":4,"items":false}},"required":["position","quaternion"],"additionalProperties":false},"width":{"type":"number"},"height":{"type":"number"},"traversable":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"door":{"anyOf":[{"type":"null"},{"type":"string"}]}},"required":["identity","alias","room","frame","width","height","traversable","door"],"additionalProperties":false}},"membership":{"type":"object","properties":{},"required":[],"additionalProperties":{"type":"string"}}},"required":["version","identity","rooms","levels","portals","membership"],"additionalProperties":false}
ridleyno{"type":"object","properties":{"personas":{"type":"array","items":{"type":"object","properties":{"version":{"const":"ridley.persona/1","type":"string"},"personaId":{"type":"string"},"profileId":{"type":"string"},"parentId":{"anyOf":[{"type":"null"},{"type":"string"}]},"revision":{"type":"number"},"createdAt":{"type":"string"},"sha256":{"type":"string"},"description":{"type":"object","properties":{"name":{"type":"string"},"role":{"type":"string"},"instructions":{"type":"string"},"knowledge":{"type":"string"},"speakingStyle":{"type":"string"},"language":{"type":"string"},"allowedTopics":{"type":"array","items":{"type":"string"}},"forbiddenTopics":{"type":"array","items":{"type":"string"}},"emotionalBaseline":{"type":"string"},"memory":{"anyOf":[{"const":"none","type":"string"},{"const":"session","type":"string"}]},"maxTurns":{"type":"number"},"maxHistoryChars":{"type":"number"}},"required":["name","role","instructions","knowledge","speakingStyle","language","allowedTopics","forbiddenTopics","emotionalBaseline","memory","maxTurns","maxHistoryChars"],"additionalProperties":false}},"required":["version","personaId","profileId","parentId","revision","createdAt","sha256","description"],"additionalProperties":false}},"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}},"version":{"const":"ridley.project/1","type":"string"},"screenplays":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string","maxLength":200},"text":{"type":"string","maxLength":65536}},"required":["id","title","text"],"additionalProperties":false}},"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":3,"type":"number"},{"const":4,"type":"number"},{"const":1,"type":"number"},{"const":2,"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":"none","type":"string"},{"const":"restrained","type":"string"},{"const":"active","type":"string"}]},"contrast":{"anyOf":[{"const":"soft","type":"string"},{"const":"natural","type":"string"},{"const":"dramatic","type":"string"}]}},"required":["room"],"additionalProperties":false}}},"required":["styles"],"additionalProperties":false},"draft":{"type":"object","properties":{"source":{"type":"string"},"sourceHash":{"type":"string"},"diagnostics":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"severity":{"anyOf":[{"const":"info","type":"string"},{"const":"error","type":"string"},{"const":"warning","type":"string"}]},"message":{"type":"string"},"span":{"anyOf":[{"type":"null"},{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"},"line":{"type":"number"},"column":{"type":"number"}},"required":["start","end","line","column"],"additionalProperties":false}]},"identity":{"anyOf":[{"type":"null"},{"type":"string"}]}},"required":["code","severity","message","span","identity"],"additionalProperties":false}}},"required":["source","sourceHash","diagnostics"],"additionalProperties":false},"accepted":{"anyOf":[{"type":"null"},{"type":"object","properties":{"source":{"type":"string"},"document":{"anyOf":[{"type":"null"},{"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":3,"type":"number"},{"const":4,"type":"number"},{"const":1,"type":"number"},{"const":2,"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":"none","type":"string"},{"const":"restrained","type":"string"},{"const":"active","type":"string"}]},"contrast":{"anyOf":[{"const":"soft","type":"string"},{"const":"natural","type":"string"},{"const":"dramatic","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":3,"type":"number"},{"const":4,"type":"number"},{"const":1,"type":"number"},{"const":2,"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":"none","type":"string"},{"const":"restrained","type":"string"},{"const":"active","type":"string"}]},"contrast":{"anyOf":[{"const":"soft","type":"string"},{"const":"natural","type":"string"},{"const":"dramatic","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","properties":{"model":{"const":"gpt-4o-mini-tts-2025-12-15","type":"string"},"voice":{"type":"string","enum":["alloy","ash","ballad","coral","echo","fable","nova","onyx","sage","shimmer","verse","marin","cedar"]},"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}},"required":["model","voice","language","instructions","speed"],"additionalProperties":false},"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}]},"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":3,"type":"number"},{"const":4,"type":"number"},{"const":1,"type":"number"},{"const":2,"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":"none","type":"string"},{"const":"restrained","type":"string"},{"const":"active","type":"string"}]},"contrast":{"anyOf":[{"const":"soft","type":"string"},{"const":"natural","type":"string"},{"const":"dramatic","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":3,"type":"number"},{"const":4,"type":"number"},{"const":1,"type":"number"},{"const":2,"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":"none","type":"string"},{"const":"restrained","type":"string"},{"const":"active","type":"string"}]},"contrast":{"anyOf":[{"const":"soft","type":"string"},{"const":"natural","type":"string"},{"const":"dramatic","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},"experience":{"type":"object","properties":{"personas":{"type":"array","items":{"type":"object","properties":{"version":{"const":"ridley.persona/1","type":"string"},"personaId":{"type":"string"},"profileId":{"type":"string"},"parentId":{"anyOf":[{"type":"null"},{"type":"string"}]},"revision":{"type":"number"},"createdAt":{"type":"string"},"sha256":{"type":"string"},"description":{"type":"object","properties":{"name":{"type":"string"},"role":{"type":"string"},"instructions":{"type":"string"},"knowledge":{"type":"string"},"speakingStyle":{"type":"string"},"language":{"type":"string"},"allowedTopics":{"type":"array","items":{"type":"string"}},"forbiddenTopics":{"type":"array","items":{"type":"string"}},"emotionalBaseline":{"type":"string"},"memory":{"anyOf":[{"const":"none","type":"string"},{"const":"session","type":"string"}]},"maxTurns":{"type":"number"},"maxHistoryChars":{"type":"number"}},"required":["name","role","instructions","knowledge","speakingStyle","language","allowedTopics","forbiddenTopics","emotionalBaseline","memory","maxTurns","maxHistoryChars"],"additionalProperties":false}},"required":["version","personaId","profileId","parentId","revision","createdAt","sha256","description"],"additionalProperties":false}},"npcs":{"type":"array","items":{"type":"object","properties":{"actor":{"type":"string"},"profileId":{"type":"string"}},"required":["actor","profileId"],"additionalProperties":false}},"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.experience","type":"string"},"version":{"const":"1.0.0","type":"string"},"compiler":{"const":"ridley.experience/1","type":"string"},"worldSceneId":{"type":"string"},"worldSourceHash":{"type":"string"},"sourceHash":{"type":"string"},"bindings":{"type":"object","properties":{},"required":[],"additionalProperties":{"type":"string"}},"initial":{"type":"string"},"states":{"type":"array","items":{"type":"object","properties":{"audio":{"type":"array","items":{"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}},"id":{"type":"string"},"mode":{"anyOf":[{"const":"cinematic","type":"string"},{"const":"interactive","type":"string"},{"const":"conversation","type":"string"}]},"conversation":{"type":"object","properties":{"actor":{"type":"string"},"profileId":{"type":"string"}},"required":["actor","profileId"],"additionalProperties":false},"cinematic":{"anyOf":[{"type":"null"},{"type":"string"}]},"control":{"anyOf":[{"type":"null"},{"type":"string"}]},"camera":{"anyOf":[{"const":"third-person","type":"string"},{"const":"first-person","type":"string"},{"const":"overhead","type":"string"},{"const":"overview","type":"string"}]},"userCamera":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"followers":{"type":"array","items":{"type":"object","properties":{"actor":{"type":"string"},"target":{"type":"string"},"distance":{"type":"number"},"delay":{"type":"number"},"speed":{"type":"number"}},"required":["actor","target","distance","delay","speed"],"additionalProperties":false}}},"required":["id","mode","cinematic","control","camera","userCamera","followers"],"additionalProperties":false}},"transitions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"from":{"type":"string"},"to":{"type":"string"},"event":{"type":"string"},"subject":{"anyOf":[{"type":"null"},{"type":"string"}]},"target":{"anyOf":[{"type":"null"},{"type":"string"}]},"once":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]}},"required":["id","from","to","event","subject","target","once"],"additionalProperties":false}}},"required":["schema","version","compiler","worldSceneId","worldSourceHash","sourceHash","bindings","initial","states","transitions"],"additionalProperties":false}},"required":["source","document","direction"],"additionalProperties":false}]}},"required":["version","screenplays","draft","accepted"],"additionalProperties":false}
schemayes{"const":"quay.project","type":"string"}
schemaVersionyes{"const":"2.0.0-draft.1","type":"string"}
projectIdyes{"type":"string"}
revisionyes{"type":"number"}
createdAtyes{"type":"string"}
updatedAtyes{"type":"string"}
draftyes{"type":"object","properties":{"source":{"type":"string"},"sourceHash":{"type":"string"},"diagnostics":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"severity":{"anyOf":[{"const":"info","type":"string"},{"const":"error","type":"string"},{"const":"warning","type":"string"}]},"message":{"type":"string"},"span":{"anyOf":[{"type":"null"},{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"},"line":{"type":"number"},"column":{"type":"number"}},"required":["start","end","line","column"],"additionalProperties":false}]},"identity":{"anyOf":[{"type":"null"},{"type":"string"}]}},"required":["code","severity","message","span","identity"],"additionalProperties":false}}},"required":["source","sourceHash","diagnostics"],"additionalProperties":false}
acceptedyes{"anyOf":[{"type":"null"},{"type":"object","properties":{"source":{"type":"string"},"sourceHash":{"type":"string"},"bindings":{"type":"object","properties":{},"required":[],"additionalProperties":{"type":"string"}},"dependencies":{"type":"array","items":{"type":"object","properties":{"assetId":{"type":"string"},"manifestId":{"type":"string"},"analysisRevision":{"type":"string"},"contentHash":{"type":"string"}},"required":["assetId","manifestId","analysisRevision","contentHash"],"additionalProperties":false}},"versions":{"type":"object","properties":{"compiler":{"const":"quay.compiler/1","type":"string"},"layout":{"anyOf":[{"const":"quay.legacy-layout-adapter/1","type":"string"},{"const":"quay.semantic-layout/1","type":"string"},{"const":"quay.semantic-layout/2","type":"string"}]},"policy":{"anyOf":[{"const":"quay.static-policy/1","type":"string"},{"const":"quay.physical-policy/1","type":"string"}]}},"required":["compiler","layout","policy"],"additionalProperties":false},"scene":{"type":"object","properties":{"wright":{"type":"object","properties":{"version":{"const":"wright.resolved/1","type":"string"},"topology":{"type":"object","properties":{"version":{"const":"wright.world/1","type":"string"},"identity":{"type":"string"},"rooms":{"type":"array","items":{"type":"object","properties":{"furnishing":{"type":"object","properties":{"roomProgram":{"type":"object","properties":{"repair":{"type":"object","properties":{"stage":{"const":"semantic","type":"string"},"attempts":{"type":"number"},"strategy":{"anyOf":[{"const":"none","type":"string"},{"const":"bounded-semantic-revision","type":"string"}]},"initialFailures":{"type":"array","items":{"type":"string"}},"finalState":{"const":"accepted","type":"string"},"relaxedConstraints":{"type":"array","items":{"type":"string"}}},"required":["stage","attempts","strategy","initialFailures","finalState","relaxedConstraints"],"additionalProperties":false},"enrichment":{"type":"object","properties":{"provider":{"type":"string"},"model":{"type":"string"},"version":{"type":"string"}},"required":["provider","model","version"],"additionalProperties":false},"intent":{"type":"object","properties":{"version":{"const":"qway.room-program/1","type":"string"},"archetype":{"type":"string"},"archetypeRevision":{"type":"string"},"purpose":{"type":"string"},"capacity":{"type":"number"},"style":{"type":"string"},"zones":{"type":"array","items":{"type":"object","properties":{"reference":{"type":"string"},"purpose":{"type":"string"},"priority":{"anyOf":[{"const":"required","type":"string"},{"const":"recommended","type":"string"},{"const":"optional","type":"string"}]}},"required":["reference","purpose","priority"],"additionalProperties":false}},"needs":{"type":"array","items":{"type":"object","properties":{"reference":{"type":"string"},"category":{"type":"string"},"zone":{"type":"string"},"quantity":{"type":"number"},"capacity":{"anyOf":[{"type":"null"},{"type":"number"}]},"priority":{"anyOf":[{"const":"required","type":"string"},{"const":"recommended","type":"string"},{"const":"optional","type":"string"}]},"assetAlias":{"anyOf":[{"type":"null"},{"type":"string"}]},"placement":{"anyOf":[{"const":"center","type":"string"},{"const":"auto","type":"string"},{"const":"perimeter","type":"string"}]},"evidence":{"type":"object","properties":{"origin":{"anyOf":[{"const":"explicit","type":"string"},{"const":"archetype","type":"string"},{"const":"inferred","type":"string"}]},"confidence":{"type":"number"},"explanation":{"type":"string"}},"required":["origin","confidence","explanation"],"additionalProperties":false}},"required":["reference","category","zone","quantity","capacity","priority","assetAlias","placement","evidence"],"additionalProperties":false}},"rules":{"type":"array","items":{"type":"object","properties":{"reference":{"type":"string"},"kind":{"anyOf":[{"const":"on","type":"string"},{"const":"seating","type":"string"},{"const":"beside","type":"string"},{"const":"facing","type":"string"},{"const":"near-window","type":"string"},{"const":"wall-alignment","type":"string"},{"const":"interior","type":"string"},{"const":"access","type":"string"},{"const":"visibility","type":"string"},{"const":"clearance","type":"string"},{"const":"circulation","type":"string"},{"const":"minimum-dimensions","type":"string"},{"const":"unsupported","type":"string"}]},"subjects":{"type":"array","items":{"type":"string"}},"target":{"anyOf":[{"type":"null"},{"type":"string"}]},"priority":{"anyOf":[{"const":"required","type":"string"},{"const":"recommended","type":"string"},{"const":"optional","type":"string"}]},"strength":{"anyOf":[{"const":"hard","type":"string"},{"const":"soft","type":"string"}]},"clearanceM":{"anyOf":[{"type":"null"},{"type":"number"}]},"description":{"type":"string"},"evidence":{"type":"object","properties":{"origin":{"anyOf":[{"const":"explicit","type":"string"},{"const":"archetype","type":"string"},{"const":"inferred","type":"string"}]},"confidence":{"type":"number"},"explanation":{"type":"string"}},"required":["origin","confidence","explanation"],"additionalProperties":false}},"required":["reference","kind","subjects","target","priority","strength","clearanceM","description","evidence"],"additionalProperties":false}},"architecture":{"type":"array","items":{"type":"object","properties":{"reference":{"type":"string"},"kind":{"anyOf":[{"const":"window","type":"string"},{"const":"portal","type":"string"},{"const":"wall-run","type":"string"},{"const":"open-center","type":"string"},{"const":"natural-light","type":"string"},{"const":"ceiling-light","type":"string"}]},"quantity":{"type":"number"},"priority":{"anyOf":[{"const":"required","type":"string"},{"const":"recommended","type":"string"},{"const":"optional","type":"string"}]},"evidence":{"type":"object","properties":{"origin":{"anyOf":[{"const":"explicit","type":"string"},{"const":"archetype","type":"string"},{"const":"inferred","type":"string"}]},"confidence":{"type":"number"},"explanation":{"type":"string"}},"required":["origin","confidence","explanation"],"additionalProperties":false}},"required":["reference","kind","quantity","priority","evidence"],"additionalProperties":false}},"exclusions":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"evidence":{"type":"object","properties":{"origin":{"const":"explicit","type":"string"},"confidence":{"type":"number"},"explanation":{"type":"string"}},"required":["origin","confidence","explanation"],"additionalProperties":false}},"required":["category","evidence"],"additionalProperties":false}},"uncertainties":{"type":"array","items":{"type":"string"}}},"required":["version","archetype","archetypeRevision","purpose","capacity","style","zones","needs","rules","architecture","exclusions","uncertainties"],"additionalProperties":false},"archetypeSnapshot":{"type":"object","properties":{"version":{"const":"qway.room-program/1","type":"string"},"archetype":{"type":"string"},"archetypeRevision":{"type":"string"},"purpose":{"type":"string"},"capacity":{"type":"number"},"style":{"type":"string"},"zones":{"type":"array","items":{"type":"object","properties":{"reference":{"type":"string"},"purpose":{"type":"string"},"priority":{"anyOf":[{"const":"required","type":"string"},{"const":"recommended","type":"string"},{"const":"optional","type":"string"}]}},"required":["reference","purpose","priority"],"additionalProperties":false}},"needs":{"type":"array","items":{"type":"object","properties":{"reference":{"type":"string"},"category":{"type":"string"},"zone":{"type":"string"},"quantity":{"type":"number"},"capacity":{"anyOf":[{"type":"null"},{"type":"number"}]},"priority":{"anyOf":[{"const":"required","type":"string"},{"const":"recommended","type":"string"},{"const":"optional","type":"string"}]},"assetAlias":{"anyOf":[{"type":"null"},{"type":"string"}]},"placement":{"anyOf":[{"const":"center","type":"string"},{"const":"auto","type":"string"},{"const":"perimeter","type":"string"}]},"evidence":{"type":"object","properties":{"origin":{"anyOf":[{"const":"explicit","type":"string"},{"const":"archetype","type":"string"},{"const":"inferred","type":"string"}]},"confidence":{"type":"number"},"explanation":{"type":"string"}},"required":["origin","confidence","explanation"],"additionalProperties":false}},"required":["reference","category","zone","quantity","capacity","priority","assetAlias","placement","evidence"],"additionalProperties":false}},"rules":{"type":"array","items":{"type":"object","properties":{"reference":{"type":"string"},"kind":{"anyOf":[{"const":"on","type":"string"},{"const":"seating","type":"string"},{"const":"beside","type":"string"},{"const":"facing","type":"string"},{"const":"near-window","type":"string"},{"const":"wall-alignment","type":"string"},{"const":"interior","type":"string"},{"const":"access","type":"string"},{"const":"visibility","type":"string"},{"const":"clearance","type":"string"},{"const":"circulation","type":"string"},{"const":"minimum-dimensions","type":"string"},{"const":"unsupported","type":"string"}]},"subjects":{"type":"array","items":{"type":"string"}},"target":{"anyOf":[{"type":"null"},{"type":"string"}]},"priority":{"anyOf":[{"const":"required","type":"string"},{"const":"recommended","type":"string"},{"const":"optional","type":"string"}]},"strength":{"anyOf":[{"const":"hard","type":"string"},{"const":"soft","type":"string"}]},"clearanceM":{"anyOf":[{"type":"null"},{"type":"number"}]},"description":{"type":"string"},"evidence":{"type":"object","properties":{"origin":{"anyOf":[{"const":"explicit","type":"string"},{"const":"archetype","type":"string"},{"const":"inferred","type":"string"}]},"confidence":{"type":"number"},"explanation":{"type":"string"}},"required":["origin","confidence","explanation"],"additionalProperties":false}},"required":["reference","kind","subjects","target","priority","strength","clearanceM","description","evidence"],"additionalProperties":false}},"architecture":{"type":"array","items":{"type":"object","properties":{"reference":{"type":"string"},"kind":{"anyOf":[{"const":"window","type":"string"},{"const":"portal","type":"string"},{"const":"wall-run","type":"string"},{"const":"open-center","type":"string"},{"const":"natural-light","type":"string"},{"const":"ceiling-light","type":"string"}]},"quantity":{"type":"number"},"priority":{"anyOf":[{"const":"required","type":"string"},{"const":"recommended","type":"string"},{"const":"optional","type":"string"}]},"evidence":{"type":"object","properties":{"origin":{"anyOf":[{"const":"explicit","type":"string"},{"const":"archetype","type":"string"},{"const":"inferred","type":"string"}]},"confidence":{"type":"number"},"explanation":{"type":"string"}},"required":["origin","confidence","explanation"],"additionalProperties":false}},"required":["reference","kind","quantity","priority","evidence"],"additionalProperties":false}},"exclusions":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"evidence":{"type":"object","properties":{"origin":{"const":"explicit","type":"string"},"confidence":{"type":"number"},"explanation":{"type":"string"}},"required":["origin","confidence","explanation"],"additionalProperties":false}},"required":["category","evidence"],"additionalProperties":false}},"uncertainties":{"type":"array","items":{"type":"string"}}},"required":["version","archetype","archetypeRevision","purpose","capacity","style","zones","needs","rules","architecture","exclusions","uncertainties"],"additionalProperties":false},"bindings":{"type":"object","properties":{},"required":[],"additionalProperties":{"type":"string"}}},"required":["intent","archetypeSnapshot","bindings"],"additionalProperties":false},"version":{"const":"qway.furnishing/1","type":"string"},"purpose":{"type":"string"},"capacity":{"type":"number"},"style":{"type":"string"},"needs":{"type":"array","items":{"type":"object","properties":{"identity":{"type":"string"},"category":{"type":"string"},"quantity":{"type":"number"},"capacity":{"anyOf":[{"type":"null"},{"type":"number"}]},"assetAlias":{"anyOf":[{"type":"null"},{"type":"string"}]},"placement":{"anyOf":[{"const":"center","type":"string"},{"const":"auto","type":"string"},{"const":"perimeter","type":"string"}]},"relation":{"anyOf":[{"type":"null"},{"const":"on","type":"string"},{"const":"seating","type":"string"},{"const":"near-window","type":"string"}]},"target":{"anyOf":[{"type":"null"},{"type":"string"}]},"instances":{"type":"array","items":{"type":"array","items":{"type":"string"}}}},"required":["identity","category","quantity","capacity","assetAlias","placement","relation","target","instances"],"additionalProperties":false}}},"required":["version","purpose","capacity","style","needs"],"additionalProperties":false},"identity":{"type":"string"},"alias":{"type":"string","maxLength":100},"label":{"type":"string","maxLength":200},"level":{"anyOf":[{"type":"null"},{"type":"string"}]},"parent":{"anyOf":[{"type":"null"},{"type":"string"}]},"size":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"frame":{"type":"object","properties":{"position":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"quaternion":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":4,"maxItems":4,"items":false}},"required":["position","quaternion"],"additionalProperties":false},"backdrop":{"anyOf":[{"type":"object","properties":{"materialId":{"type":"string"},"identity":{"type":"string"},"semantic":{"type":"string","maxLength":200},"source":{"anyOf":[{"type":"object","properties":{"kind":{"const":"image","type":"string"},"assetId":{"type":"string"},"uri":{"type":"string"},"mediaType":{"anyOf":[{"const":"image/png","type":"string"},{"const":"image/jpeg","type":"string"},{"const":"image/webp","type":"string"}]},"sha256":{"type":"string"},"byteLength":{"type":"number"}},"required":["kind","assetId","uri","mediaType","sha256","byteLength"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"asset","type":"string"},"uri":{"type":"null"},"assetId":{"type":"string"}},"required":["kind","uri","assetId"],"additionalProperties":false}]},"side":{"anyOf":[{"const":"north","type":"string"},{"const":"south","type":"string"},{"const":"east","type":"string"},{"const":"west","type":"string"}]},"mode":{"const":"architectural","type":"string"},"fit":{"anyOf":[{"const":"cover","type":"string"},{"const":"contain","type":"string"}]},"projection":{"const":"flat","type":"string"},"distance":{"type":"number"},"lighting":{"anyOf":[{"const":"unlit","type":"string"},{"const":"lit","type":"string"}]},"enabled":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]}},"required":["identity","semantic","source","side","mode","fit","projection","distance","lighting","enabled"],"additionalProperties":false},{"type":"object","properties":{"north":{"type":"object","properties":{"materialId":{"type":"string"},"identity":{"type":"string"},"semantic":{"type":"string","maxLength":200},"source":{"anyOf":[{"type":"object","properties":{"kind":{"const":"image","type":"string"},"assetId":{"type":"string"},"uri":{"type":"string"},"mediaType":{"anyOf":[{"const":"image/png","type":"string"},{"const":"image/jpeg","type":"string"},{"const":"image/webp","type":"string"}]},"sha256":{"type":"string"},"byteLength":{"type":"number"}},"required":["kind","assetId","uri","mediaType","sha256","byteLength"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"asset","type":"string"},"uri":{"type":"null"},"assetId":{"type":"string"}},"required":["kind","uri","assetId"],"additionalProperties":false}]},"side":{"anyOf":[{"const":"north","type":"string"},{"const":"south","type":"string"},{"const":"east","type":"string"},{"const":"west","type":"string"}]},"mode":{"const":"architectural","type":"string"},"fit":{"anyOf":[{"const":"cover","type":"string"},{"const":"contain","type":"string"}]},"projection":{"const":"flat","type":"string"},"distance":{"type":"number"},"lighting":{"anyOf":[{"const":"unlit","type":"string"},{"const":"lit","type":"string"}]},"enabled":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]}},"required":["identity","semantic","source","side","mode","fit","projection","distance","lighting","enabled"],"additionalProperties":false},"south":{"type":"object","properties":{"materialId":{"type":"string"},"identity":{"type":"string"},"semantic":{"type":"string","maxLength":200},"source":{"anyOf":[{"type":"object","properties":{"kind":{"const":"image","type":"string"},"assetId":{"type":"string"},"uri":{"type":"string"},"mediaType":{"anyOf":[{"const":"image/png","type":"string"},{"const":"image/jpeg","type":"string"},{"const":"image/webp","type":"string"}]},"sha256":{"type":"string"},"byteLength":{"type":"number"}},"required":["kind","assetId","uri","mediaType","sha256","byteLength"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"asset","type":"string"},"uri":{"type":"null"},"assetId":{"type":"string"}},"required":["kind","uri","assetId"],"additionalProperties":false}]},"side":{"anyOf":[{"const":"north","type":"string"},{"const":"south","type":"string"},{"const":"east","type":"string"},{"const":"west","type":"string"}]},"mode":{"const":"architectural","type":"string"},"fit":{"anyOf":[{"const":"cover","type":"string"},{"const":"contain","type":"string"}]},"projection":{"const":"flat","type":"string"},"distance":{"type":"number"},"lighting":{"anyOf":[{"const":"unlit","type":"string"},{"const":"lit","type":"string"}]},"enabled":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]}},"required":["identity","semantic","source","side","mode","fit","projection","distance","lighting","enabled"],"additionalProperties":false},"east":{"type":"object","properties":{"materialId":{"type":"string"},"identity":{"type":"string"},"semantic":{"type":"string","maxLength":200},"source":{"anyOf":[{"type":"object","properties":{"kind":{"const":"image","type":"string"},"assetId":{"type":"string"},"uri":{"type":"string"},"mediaType":{"anyOf":[{"const":"image/png","type":"string"},{"const":"image/jpeg","type":"string"},{"const":"image/webp","type":"string"}]},"sha256":{"type":"string"},"byteLength":{"type":"number"}},"required":["kind","assetId","uri","mediaType","sha256","byteLength"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"asset","type":"string"},"uri":{"type":"null"},"assetId":{"type":"string"}},"required":["kind","uri","assetId"],"additionalProperties":false}]},"side":{"anyOf":[{"const":"north","type":"string"},{"const":"south","type":"string"},{"const":"east","type":"string"},{"const":"west","type":"string"}]},"mode":{"const":"architectural","type":"string"},"fit":{"anyOf":[{"const":"cover","type":"string"},{"const":"contain","type":"string"}]},"projection":{"const":"flat","type":"string"},"distance":{"type":"number"},"lighting":{"anyOf":[{"const":"unlit","type":"string"},{"const":"lit","type":"string"}]},"enabled":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]}},"required":["identity","semantic","source","side","mode","fit","projection","distance","lighting","enabled"],"additionalProperties":false},"west":{"type":"object","properties":{"materialId":{"type":"string"},"identity":{"type":"string"},"semantic":{"type":"string","maxLength":200},"source":{"anyOf":[{"type":"object","properties":{"kind":{"const":"image","type":"string"},"assetId":{"type":"string"},"uri":{"type":"string"},"mediaType":{"anyOf":[{"const":"image/png","type":"string"},{"const":"image/jpeg","type":"string"},{"const":"image/webp","type":"string"}]},"sha256":{"type":"string"},"byteLength":{"type":"number"}},"required":["kind","assetId","uri","mediaType","sha256","byteLength"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"asset","type":"string"},"uri":{"type":"null"},"assetId":{"type":"string"}},"required":["kind","uri","assetId"],"additionalProperties":false}]},"side":{"anyOf":[{"const":"north","type":"string"},{"const":"south","type":"string"},{"const":"east","type":"string"},{"const":"west","type":"string"}]},"mode":{"const":"architectural","type":"string"},"fit":{"anyOf":[{"const":"cover","type":"string"},{"const":"contain","type":"string"}]},"projection":{"const":"flat","type":"string"},"distance":{"type":"number"},"lighting":{"anyOf":[{"const":"unlit","type":"string"},{"const":"lit","type":"string"}]},"enabled":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]}},"required":["identity","semantic","source","side","mode","fit","projection","distance","lighting","enabled"],"additionalProperties":false}},"required":[],"additionalProperties":false}]}},"required":["identity","alias","label","level","parent","size","frame"],"additionalProperties":false}},"levels":{"type":"array","items":{"type":"object","properties":{"identity":{"type":"string"},"label":{"type":"string"}},"required":["identity","label"],"additionalProperties":false}},"portals":{"type":"array","items":{"type":"object","properties":{"identity":{"type":"string"},"alias":{"type":"string","maxLength":100},"from":{"type":"string"},"to":{"type":"string"},"frame":{"type":"object","properties":{"position":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"quaternion":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":4,"maxItems":4,"items":false}},"required":["position","quaternion"],"additionalProperties":false},"width":{"type":"number"},"height":{"type":"number"},"traversable":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"door":{"anyOf":[{"type":"null"},{"type":"string"}]}},"required":["identity","alias","from","to","frame","width","height","traversable","door"],"additionalProperties":false}},"entrances":{"type":"array","items":{"type":"object","properties":{"identity":{"type":"string"},"alias":{"type":"string","maxLength":100},"room":{"type":"string"},"frame":{"type":"object","properties":{"position":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"quaternion":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":4,"maxItems":4,"items":false}},"required":["position","quaternion"],"additionalProperties":false},"width":{"type":"number"},"height":{"type":"number"},"traversable":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"door":{"anyOf":[{"type":"null"},{"type":"string"}]}},"required":["identity","alias","room","frame","width","height","traversable","door"],"additionalProperties":false}},"membership":{"type":"object","properties":{},"required":[],"additionalProperties":{"type":"string"}}},"required":["version","identity","rooms","levels","portals","membership"],"additionalProperties":false},"worldFrames":{"type":"object","properties":{},"required":[],"additionalProperties":{"type":"object","properties":{"position":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"quaternion":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":4,"maxItems":4,"items":false}},"required":["position","quaternion"],"additionalProperties":false}},"localPoses":{"type":"object","properties":{},"required":[],"additionalProperties":{"type":"object","properties":{"position":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"quaternion":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":4,"maxItems":4,"items":false},"scale":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false}},"required":["position","quaternion","scale"],"additionalProperties":false}},"programVerification":{"type":"object","properties":{"policy":{"anyOf":[{"const":"qway.room-program-geometry/1","type":"string"},{"const":"qway.room-program-geometry/2","type":"string"},{"const":"qway.room-program-geometry/3","type":"string"}]},"actor":{"type":"object","properties":{"radiusM":{"type":"number"},"heightM":{"type":"number"}},"required":["radiusM","heightM"],"additionalProperties":false},"rooms":{"type":"array","items":{"type":"object","properties":{"room":{"type":"string"},"archetypeRevision":{"type":"string"},"layout":{"type":"object","properties":{"policy":{"const":"qway.room-program-layout/1","type":"string"},"strategy":{"const":"bounded-geometric-search","type":"string"},"candidateBudget":{"type":"number"},"candidatesTested":{"type":"number"},"passesPerformed":{"type":"number"},"initialRules":{"type":"array","items":{"type":"object","properties":{"reference":{"type":"string"},"status":{"anyOf":[{"const":"unsupported","type":"string"},{"const":"satisfied","type":"string"},{"const":"failed","type":"string"},{"const":"unknown","type":"string"}]}},"required":["reference","status"],"additionalProperties":false}},"changedInstances":{"type":"array","items":{"type":"string"}},"relaxedConstraints":{"type":"array","items":{"type":"string"}},"termination":{"anyOf":[{"const":"stationary","type":"string"},{"const":"budget-exhausted","type":"string"},{"const":"pass-limit","type":"string"},{"const":"zero-score","type":"string"}]}},"required":["policy","strategy","candidateBudget","candidatesTested","passesPerformed","initialRules","changedInstances","relaxedConstraints","termination"],"additionalProperties":false},"inventory":{"type":"array","items":{"type":"object","properties":{"reference":{"type":"string"},"priority":{"anyOf":[{"const":"required","type":"string"},{"const":"recommended","type":"string"},{"const":"optional","type":"string"}]},"requestedUnits":{"type":"number"},"resolvedUnits":{"type":"number"},"status":{"anyOf":[{"const":"unsupported","type":"string"},{"const":"satisfied","type":"string"},{"const":"failed","type":"string"},{"const":"unknown","type":"string"}]}},"required":["reference","priority","requestedUnits","resolvedUnits","status"],"additionalProperties":false}},"rules":{"type":"array","items":{"type":"object","properties":{"reference":{"type":"string"},"kind":{"anyOf":[{"const":"on","type":"string"},{"const":"seating","type":"string"},{"const":"beside","type":"string"},{"const":"facing","type":"string"},{"const":"near-window","type":"string"},{"const":"wall-alignment","type":"string"},{"const":"interior","type":"string"},{"const":"access","type":"string"},{"const":"visibility","type":"string"},{"const":"clearance","type":"string"},{"const":"circulation","type":"string"},{"const":"minimum-dimensions","type":"string"},{"const":"unsupported","type":"string"}]},"priority":{"anyOf":[{"const":"required","type":"string"},{"const":"recommended","type":"string"},{"const":"optional","type":"string"}]},"strength":{"anyOf":[{"const":"hard","type":"string"},{"const":"soft","type":"string"}]},"status":{"anyOf":[{"const":"unsupported","type":"string"},{"const":"satisfied","type":"string"},{"const":"failed","type":"string"},{"const":"unknown","type":"string"}]},"message":{"type":"string","maxLength":2000},"pairs":{"type":"array","items":{"type":"object","properties":{"subject":{"type":"string"},"target":{"anyOf":[{"type":"null"},{"type":"string"}]},"status":{"anyOf":[{"const":"unsupported","type":"string"},{"const":"satisfied","type":"string"},{"const":"failed","type":"string"},{"const":"unknown","type":"string"}]},"message":{"type":"string","maxLength":2000},"residuals":{"type":"object","properties":{},"required":[],"additionalProperties":{"type":"number"}}},"required":["subject","target","status","message","residuals"],"additionalProperties":false}}},"required":["reference","kind","priority","strength","status","message","pairs"],"additionalProperties":false}},"architecture":{"type":"array","items":{"type":"object","properties":{"reference":{"type":"string"},"kind":{"anyOf":[{"const":"window","type":"string"},{"const":"portal","type":"string"},{"const":"wall-run","type":"string"},{"const":"open-center","type":"string"},{"const":"natural-light","type":"string"},{"const":"ceiling-light","type":"string"}]},"priority":{"anyOf":[{"const":"required","type":"string"},{"const":"recommended","type":"string"},{"const":"optional","type":"string"}]},"requested":{"type":"number"},"verified":{"type":"number"},"status":{"anyOf":[{"const":"unsupported","type":"string"},{"const":"satisfied","type":"string"},{"const":"failed","type":"string"},{"const":"unknown","type":"string"}]},"message":{"type":"string","maxLength":2000}},"required":["reference","kind","priority","requested","verified","status","message"],"additionalProperties":false}}},"required":["room","archetypeRevision","inventory","rules","architecture"],"additionalProperties":false}}},"required":["policy","actor","rooms"],"additionalProperties":false},"verification":{"type":"object","properties":{"policy":{"const":"wright.portal-geometry/1","type":"string"},"actor":{"type":"object","properties":{"radius":{"type":"number"},"height":{"type":"number"}},"required":["radius","height"],"additionalProperties":false},"portals":{"type":"array","items":{"type":"object","properties":{"identity":{"type":"string"},"requestedAperture":{"anyOf":[{"const":"unknown","type":"string"},{"const":"clear","type":"string"},{"const":"collision","type":"string"}]},"actorPassage":{"anyOf":[{"const":"unknown","type":"string"},{"const":"clear","type":"string"},{"const":"collision","type":"string"}]}},"required":["identity","requestedAperture","actorPassage"],"additionalProperties":false}},"entrances":{"type":"array","items":{"type":"object","properties":{"identity":{"type":"string"},"requestedAperture":{"anyOf":[{"const":"unknown","type":"string"},{"const":"clear","type":"string"},{"const":"collision","type":"string"}]},"actorPassage":{"anyOf":[{"const":"unknown","type":"string"},{"const":"clear","type":"string"},{"const":"collision","type":"string"}]}},"required":["identity","requestedAperture","actorPassage"],"additionalProperties":false}},"circulation":{"type":"array","items":{"type":"object","properties":{"room":{"type":"string"},"status":{"anyOf":[{"const":"unsupported","type":"string"},{"const":"ready","type":"string"},{"const":"unresolved","type":"string"},{"const":"not-requested","type":"string"}]},"entryCount":{"type":"number"},"reachableSamples":{"type":"number"},"routeOutcomes":{"type":"array","items":{"type":"string"}}},"required":["room","status","entryCount","reachableSamples","routeOutcomes"],"additionalProperties":false}},"navigationBoxes":{"type":"object","properties":{},"required":[],"additionalProperties":{"type":"array","items":{"type":"object","properties":{"min":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"max":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false}},"required":["min","max"],"additionalProperties":false}}}},"required":["policy","actor","portals","circulation","navigationBoxes"],"additionalProperties":false},"diagnostics":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"severity":{"anyOf":[{"const":"error","type":"string"},{"const":"warning","type":"string"}]},"identity":{"anyOf":[{"type":"null"},{"type":"string"}]},"message":{"type":"string"}},"required":["code","severity","identity","message"],"additionalProperties":false}}},"required":["version","topology","worldFrames","localPoses","diagnostics"],"additionalProperties":false},"schema":{"const":"quay.scene","type":"string"},"schemaVersion":{"const":"2.0.0-draft.1","type":"string"},"semantic":{"type":"object","properties":{"materials":{"type":"array","items":{"type":"object","properties":{"version":{"const":"quay.material/1","type":"string"},"identity":{"type":"string"},"alias":{"type":"string"},"label":{"type":"string"},"description":{"type":"string"},"category":{"anyOf":[{"const":"glass","type":"string"},{"const":"generic","type":"string"},{"const":"wood","type":"string"},{"const":"metal","type":"string"},{"const":"stone","type":"string"},{"const":"concrete","type":"string"},{"const":"ceramic","type":"string"},{"const":"fabric","type":"string"},{"const":"paper","type":"string"},{"const":"plastic","type":"string"},{"const":"paint","type":"string"}]},"shader":{"anyOf":[{"const":"unlit","type":"string"},{"const":"standard","type":"string"}]},"color":{"type":"string"},"roughness":{"type":"number"},"metalness":{"type":"number"},"emissive":{"type":"string"},"emissiveIntensity":{"type":"number"},"opacity":{"type":"number"},"alphaMode":{"anyOf":[{"const":"opaque","type":"string"},{"const":"mask","type":"string"},{"const":"blend","type":"string"}]},"alphaCutoff":{"type":"number"},"side":{"anyOf":[{"const":"back","type":"string"},{"const":"front","type":"string"},{"const":"double","type":"string"}]},"preset":{"anyOf":[{"type":"null"},{"type":"string"}]},"maps":{"type":"array","items":{"type":"object","properties":{"slot":{"anyOf":[{"const":"color","type":"string"},{"const":"normal","type":"string"},{"const":"roughness","type":"string"},{"const":"metalness","type":"string"},{"const":"emissive","type":"string"},{"const":"occlusion","type":"string"},{"const":"alpha","type":"string"}]},"image":{"type":"object","properties":{"assetId":{"type":"string"},"uri":{"type":"string"},"sha256":{"type":"string"},"byteLength":{"type":"number"},"mediaType":{"anyOf":[{"const":"image/png","type":"string"},{"const":"image/jpeg","type":"string"},{"const":"image/webp","type":"string"}]},"displayName":{"type":"string"}},"required":["assetId","uri","sha256","byteLength","mediaType","displayName"],"additionalProperties":false},"repeat":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"minItems":2,"maxItems":2,"items":false},"offset":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"minItems":2,"maxItems":2,"items":false},"rotation":{"type":"number"},"wrap":{"anyOf":[{"const":"repeat","type":"string"},{"const":"clamp","type":"string"},{"const":"mirror","type":"string"}]}},"required":["slot","image","repeat","offset","rotation","wrap"],"additionalProperties":false}}},"required":["version","identity","alias","label","description","category","shader","color","roughness","metalness","emissive","emissiveIntensity","opacity","alphaMode","alphaCutoff","side","preset","maps"],"additionalProperties":false}},"assetPolicy":{"const":"project-user-standard","type":"string"},"composition":{"const":"quay.room-composition/1","type":"string"},"version":{"const":"quay.semantic/1","type":"string"},"sceneId":{"type":"string"},"name":{"type":"string"},"seed":{"type":"number"},"room":{"type":"object","properties":{"identity":{"anyOf":[{"type":"null"},{"type":"string"}]},"size":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false}},"required":["identity","size"],"additionalProperties":false},"profile":{"anyOf":[{"const":"static","type":"string"},{"const":"physical","type":"string"}]},"objects":{"type":"array","items":{"type":"object","properties":{"materialId":{"type":"string"},"region":{"anyOf":[{"const":"center","type":"string"},{"const":"perimeter","type":"string"}]},"actor":{"type":"object","properties":{"policy":{"const":"quay.actor-box/1","type":"string"},"size":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"eye":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"manipulationOrigin":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"reachM":{"type":"number"}},"required":["policy","size","eye","manipulationOrigin","reachM"],"additionalProperties":false},"animation":{"type":"object","properties":{"policy":{"const":"quay.animation/1","type":"string"},"clipIndex":{"type":"number"},"clipName":{"anyOf":[{"type":"null"},{"type":"string"}]},"mode":{"anyOf":[{"const":"in-place","type":"string"},{"const":"articulated","type":"string"}]},"speed":{"type":"number"},"loop":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"offsetSeconds":{"type":"number"}},"required":["policy","clipIndex","clipName","mode","speed","loop","offsetSeconds"],"additionalProperties":false},"normalization":{"type":"object","properties":{"rawBounds":{"type":"object","properties":{"min":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"max":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false}},"required":["min","max"],"additionalProperties":false},"scale":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"baseOffset":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"forwardCorrection":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":4,"maxItems":4,"items":false}},"required":["rawBounds","scale","baseOffset","forwardCorrection"],"additionalProperties":false},"orientation":{"type":"object","properties":{"policy":{"anyOf":[{"const":"quay.orientation/1","type":"string"},{"const":"quay.orientation/2","type":"string"}]},"quaternion":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":4,"maxItems":4,"items":false},"up":{"anyOf":[{"type":"null"},{"type":"string"}]},"front":{"anyOf":[{"type":"null"},{"type":"string"}]},"confidence":{"type":"number"},"evidence":{"type":"array","items":{"type":"string"}}},"required":["policy","quaternion","up","front","confidence","evidence"],"additionalProperties":false},"identity":{"type":"string"},"alias":{"type":"string"},"label":{"type":"string"},"notes":{"type":"string","maxLength":2000},"assetId":{"type":"string"},"manifestId":{"type":"string"},"role":{"type":"string"},"visible":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"pose":{"type":"object","properties":{"position":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"quaternion":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":4,"maxItems":4,"items":false},"scale":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false}},"required":[],"additionalProperties":false},"size":{"anyOf":[{"type":"null"},{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false}]},"sizing":{"type":"object","properties":{"measurement":{"type":"object","properties":{"reference":{"anyOf":[{"const":"whole-bounds","type":"string"},{"const":"withers","type":"string"}]},"targetM":{"type":"number"},"sourceReferenceM":{"type":"number"},"method":{"anyOf":[{"const":"measured-bounds","type":"string"},{"const":"rig-shoulder-envelope-approximation/1","type":"string"}]},"confidence":{"type":"number"},"evidence":{"type":"array","items":{"type":"string"}}},"required":["reference","targetM","sourceReferenceM","method","confidence","evidence"],"additionalProperties":false},"policy":{"const":"quay.sizing/1","type":"string"},"measuredDimensions":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"orientedDimensions":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"chosenDimensions":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"finalSceneDimensions":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"uniformScale":{"type":"number"},"profile":{"anyOf":[{"type":"null"},{"type":"object","properties":{"schema":{"const":"quay.archetype","type":"string"},"schemaVersion":{"const":"1.0.0","type":"string"},"profileId":{"type":"string"},"revision":{"type":"number"},"parentId":{"anyOf":[{"type":"null"},{"type":"string"}]},"semanticClass":{"type":"string"},"status":{"anyOf":[{"const":"accepted","type":"string"},{"const":"suggested","type":"string"},{"const":"rejected","type":"string"},{"const":"user-corrected","type":"string"}]},"dimensions":{"type":"object","properties":{"width":{"anyOf":[{"type":"null"},{"type":"object","properties":{"minM":{"type":"number"},"typicalM":{"type":"number"},"maxM":{"type":"number"},"reference":{"anyOf":[{"const":"whole-bounds","type":"string"},{"const":"withers","type":"string"},{"const":"seat","type":"string"},{"const":"worktop","type":"string"},{"const":"opening","type":"string"}]}},"required":["minM","typicalM","maxM","reference"],"additionalProperties":false}]},"height":{"anyOf":[{"type":"null"},{"type":"object","properties":{"minM":{"type":"number"},"typicalM":{"type":"number"},"maxM":{"type":"number"},"reference":{"anyOf":[{"const":"whole-bounds","type":"string"},{"const":"withers","type":"string"},{"const":"seat","type":"string"},{"const":"worktop","type":"string"},{"const":"opening","type":"string"}]}},"required":["minM","typicalM","maxM","reference"],"additionalProperties":false}]},"depth":{"anyOf":[{"type":"null"},{"type":"object","properties":{"minM":{"type":"number"},"typicalM":{"type":"number"},"maxM":{"type":"number"},"reference":{"anyOf":[{"const":"whole-bounds","type":"string"},{"const":"withers","type":"string"},{"const":"seat","type":"string"},{"const":"worktop","type":"string"},{"const":"opening","type":"string"}]}},"required":["minM","typicalM","maxM","reference"],"additionalProperties":false}]}},"required":["width","height","depth"],"additionalProperties":false},"preferredDimension":{"anyOf":[{"type":"null"},{"const":"width","type":"string"},{"const":"height","type":"string"},{"const":"depth","type":"string"}]},"grounding":{"anyOf":[{"const":"architectural","type":"string"},{"const":"unknown","type":"string"},{"const":"floor","type":"string"},{"const":"support","type":"string"}]},"orientation":{"type":"object","properties":{"up":{"anyOf":[{"type":"null"},{"const":"+Y","type":"string"},{"const":"+Z","type":"string"},{"const":"+X","type":"string"},{"const":"-Y","type":"string"},{"const":"-Z","type":"string"},{"const":"-X","type":"string"}]},"forward":{"anyOf":[{"type":"null"},{"const":"+Z","type":"string"},{"const":"+X","type":"string"},{"const":"-Z","type":"string"},{"const":"-X","type":"string"}]}},"required":["up","forward"],"additionalProperties":false},"affordances":{"type":"array","items":{"type":"string"}},"clearances":{"type":"object","properties":{"usableSideM":{"anyOf":[{"type":"null"},{"type":"number"}]},"circulationM":{"anyOf":[{"type":"null"},{"type":"number"}]}},"required":["usableSideM","circulationM"],"additionalProperties":false},"relationHints":{"type":"array","items":{"type":"string"}},"provenance":{"type":"object","properties":{"source":{"anyOf":[{"const":"standard","type":"string"},{"const":"curated","type":"string"},{"const":"ai_inferred","type":"string"},{"const":"user_confirmed","type":"string"},{"const":"project_specific","type":"string"}]},"producer":{"type":"string"},"model":{"anyOf":[{"type":"null"},{"type":"string"}]},"inferenceVersion":{"type":"string"},"requestedClass":{"anyOf":[{"type":"null"},{"type":"string"}]},"confidence":{"type":"number"},"createdAt":{"type":"string"},"evidence":{"type":"array","items":{"type":"string"}}},"required":["source","producer","model","inferenceVersion","requestedClass","confidence","createdAt","evidence"],"additionalProperties":false}},"required":["schema","schemaVersion","profileId","revision","parentId","semanticClass","status","dimensions","preferredDimension","grounding","orientation","affordances","clearances","relationHints","provenance"],"additionalProperties":false}]},"source":{"anyOf":[{"const":"archetype","type":"string"},{"const":"instance","type":"string"},{"const":"conservative-fallback","type":"string"}]},"plausibility":{"anyOf":[{"const":"unknown","type":"string"},{"const":"plausible","type":"string"},{"const":"implausible","type":"string"}]},"diagnostics":{"type":"array","items":{"type":"string"}}},"required":["policy","measuredDimensions","orientedDimensions","chosenDimensions","uniformScale","profile","source","plausibility","diagnostics"],"additionalProperties":false},"architecture":{"type":"object","properties":{"boundary":{"anyOf":[{"const":"back","type":"string"},{"const":"front","type":"string"},{"const":"left","type":"string"},{"const":"right","type":"string"}]},"section":{"anyOf":[{"const":"full","type":"string"},{"const":"opening-left","type":"string"},{"const":"opening-right","type":"string"},{"const":"opening-header","type":"string"},{"const":"opening-sill","type":"string"}]},"opening":{"anyOf":[{"type":"null"},{"type":"string"}]}},"required":["boundary","section","opening"],"additionalProperties":false},"physics":{"type":"object","properties":{"motion":{"anyOf":[{"const":"static","type":"string"},{"const":"dynamic","type":"string"},{"const":"kinematic","type":"string"}]},"collision":{"anyOf":[{"const":"none","type":"string"},{"const":"solid","type":"string"},{"const":"sensor","type":"string"}]},"controller":{"anyOf":[{"const":"none","type":"string"},{"const":"character","type":"string"}]},"collider":{"anyOf":[{"type":"null"},{"type":"object","properties":{"identity":{"type":"string"},"manifestId":{"anyOf":[{"type":"null"},{"type":"string"}]},"featureId":{"anyOf":[{"type":"null"},{"type":"string"}]},"kind":{"anyOf":[{"const":"object","type":"string"},{"const":"component","type":"string"},{"const":"surface","type":"string"},{"const":"collider","type":"string"}]}},"required":["identity","manifestId","featureId","kind"],"additionalProperties":false}]},"shape":{"anyOf":[{"const":"auto","type":"string"},{"const":"box","type":"string"},{"const":"convex-hull","type":"string"},{"const":"decomposition","type":"string"},{"const":"triangle-mesh","type":"string"}]},"massKg":{"anyOf":[{"type":"null"},{"type":"number"}]},"friction":{"anyOf":[{"type":"null"},{"type":"number"}]},"restitution":{"anyOf":[{"type":"null"},{"type":"number"}]},"provenance":{"type":"object","properties":{},"required":[],"additionalProperties":{"anyOf":[{"const":"instance","type":"string"},{"const":"asset-override","type":"string"},{"const":"profile","type":"string"},{"const":"inference","type":"string"},{"const":"fallback","type":"string"}]}}},"required":["motion","collision","controller","collider","massKg","friction","restitution","provenance"],"additionalProperties":false},"interaction":{"type":"object","properties":{"capabilities":{"type":"array","items":{"anyOf":[{"const":"animate","type":"string"},{"const":"grab","type":"string"},{"const":"open","type":"string"},{"const":"close","type":"string"},{"const":"toggle","type":"string"},{"const":"walk","type":"string"}]}},"enabled":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"cooldownSeconds":{"type":"number"}},"required":["capabilities","enabled","cooldownSeconds"],"additionalProperties":false},"span":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"},"line":{"type":"number"},"column":{"type":"number"}},"required":["start","end","line","column"],"additionalProperties":false}},"required":["identity","alias","label","assetId","manifestId","role","visible","pose","size","physics","interaction","span"],"additionalProperties":false}},"wallImages":{"type":"array","items":{"type":"object","properties":{"materialId":{"type":"string"},"identity":{"type":"string"},"alias":{"type":"string"},"label":{"type":"string"},"assetId":{"type":"string"},"wallInstanceId":{"type":"string"},"uri":{"type":"string"},"sha256":{"type":"string"},"byteLength":{"type":"number"},"mediaType":{"anyOf":[{"const":"image/png","type":"string"},{"const":"image/jpeg","type":"string"},{"const":"image/webp","type":"string"}]},"displayName":{"type":"string"},"position":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"minItems":2,"maxItems":2,"items":false},"size":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"minItems":2,"maxItems":2,"items":false},"surfaceOffset":{"type":"number"},"preserveAspectRatio":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"span":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"},"line":{"type":"number"},"column":{"type":"number"}},"required":["start","end","line","column"],"additionalProperties":false}},"required":["identity","alias","label","assetId","wallInstanceId","uri","sha256","byteLength","mediaType","displayName","position","size","surfaceOffset","preserveAspectRatio","span"],"additionalProperties":false}},"interactiveLabels":{"type":"array","items":{"type":"object","properties":{"identity":{"type":"string"},"alias":{"type":"string"},"parentObjectId":{"type":"string"},"text":{"type":"string","maxLength":200},"icon":{"anyOf":[{"type":"null"},{"type":"string"}]},"anchor":{"anyOf":[{"const":"center","type":"string"},{"const":"custom","type":"string"},{"const":"front","type":"string"},{"const":"left","type":"string"},{"const":"right","type":"string"},{"const":"above","type":"string"}]},"offset":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"maxDistance":{"anyOf":[{"type":"null"},{"type":"number"}]},"billboard":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"theme":{"anyOf":[{"const":"warm","type":"string"},{"const":"cool","type":"string"},{"const":"default","type":"string"}]},"action":{"anyOf":[{"type":"object","properties":{"kind":{"const":"none","type":"string"}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"anyOf":[{"const":"html","type":"string"},{"const":"pdf","type":"string"},{"const":"audio","type":"string"},{"const":"video","type":"string"}]},"assetId":{"type":"string"},"uri":{"type":"string"},"sha256":{"type":"string"},"byteLength":{"type":"number"},"mediaType":{"type":"string"},"displayName":{"type":"string"},"title":{"anyOf":[{"type":"null"},{"type":"string"}]},"posterUri":{"anyOf":[{"type":"null"},{"type":"string"}]},"captionsUri":{"anyOf":[{"type":"null"},{"type":"string"}]},"autoplay":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"loop":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"muted":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"volume":{"type":"number"},"restartOnOpen":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"startSeconds":{"type":"number"},"endSeconds":{"anyOf":[{"type":"null"},{"type":"number"}]}},"required":["kind","assetId","uri","sha256","byteLength","mediaType","displayName","title","posterUri","captionsUri","autoplay","loop","muted","volume","restartOnOpen","startSeconds","endSeconds"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"ridley","type":"string"},"target":{"type":"string"}},"required":["kind","target"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"external-link","type":"string"},"url":{"type":"string","maxLength":2048}},"required":["kind","url"],"additionalProperties":false}]},"span":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"},"line":{"type":"number"},"column":{"type":"number"}},"required":["start","end","line","column"],"additionalProperties":false}},"required":["identity","alias","parentObjectId","text","icon","anchor","offset","maxDistance","billboard","theme","action","span"],"additionalProperties":false}},"relations":{"type":"array","items":{"type":"object","properties":{"identity":{"type":"string"},"kind":{"anyOf":[{"const":"on","type":"string"},{"const":"beside","type":"string"},{"const":"facing","type":"string"},{"const":"inside","type":"string"},{"const":"against","type":"string"},{"const":"attached-to","type":"string"},{"const":"keep-clear","type":"string"},{"const":"reachable-from","type":"string"}]},"subject":{"type":"object","properties":{"identity":{"type":"string"},"manifestId":{"anyOf":[{"type":"null"},{"type":"string"}]},"featureId":{"anyOf":[{"type":"null"},{"type":"string"}]},"kind":{"anyOf":[{"const":"object","type":"string"},{"const":"component","type":"string"},{"const":"surface","type":"string"},{"const":"collider","type":"string"}]}},"required":["identity","manifestId","featureId","kind"],"additionalProperties":false},"target":{"anyOf":[{"type":"null"},{"type":"object","properties":{"identity":{"type":"string"},"manifestId":{"anyOf":[{"type":"null"},{"type":"string"}]},"featureId":{"anyOf":[{"type":"null"},{"type":"string"}]},"kind":{"anyOf":[{"const":"object","type":"string"},{"const":"component","type":"string"},{"const":"surface","type":"string"},{"const":"collider","type":"string"}]}},"required":["identity","manifestId","featureId","kind"],"additionalProperties":false}]},"temporal":{"anyOf":[{"const":"initial","type":"string"},{"const":"monitor","type":"string"},{"const":"maintain","type":"string"}]},"strength":{"anyOf":[{"const":"hard","type":"string"},{"const":"soft","type":"string"}]},"weight":{"type":"number"},"parameters":{"type":"object","properties":{},"required":[],"additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"array","items":{"type":"number"}}]}},"sourceCommand":{"type":"string"},"span":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"},"line":{"type":"number"},"column":{"type":"number"}},"required":["start","end","line","column"],"additionalProperties":false}},"required":["identity","kind","subject","target","temporal","strength","weight","parameters","sourceCommand","span"],"additionalProperties":false}},"bindings":{"type":"object","properties":{},"required":[],"additionalProperties":{"type":"string"}},"dependencies":{"type":"array","items":{"type":"object","properties":{"assetId":{"type":"string"},"manifestId":{"type":"string"},"analysisRevision":{"type":"string"},"contentHash":{"type":"string"}},"required":["assetId","manifestId","analysisRevision","contentHash"],"additionalProperties":false}},"versions":{"type":"object","properties":{"compiler":{"const":"quay.compiler/1","type":"string"},"layout":{"anyOf":[{"const":"quay.legacy-layout-adapter/1","type":"string"},{"const":"quay.semantic-layout/1","type":"string"},{"const":"quay.semantic-layout/2","type":"string"}]},"policy":{"anyOf":[{"const":"quay.static-policy/1","type":"string"},{"const":"quay.physical-policy/1","type":"string"}]}},"required":["compiler","layout","policy"],"additionalProperties":false}},"required":["version","sceneId","name","seed","room","profile","objects","relations","bindings","dependencies","versions"],"additionalProperties":false},"projection":{"type":"object","properties":{"materials":{"type":"array","items":{"type":"object","properties":{"version":{"const":"quay.material/1","type":"string"},"identity":{"type":"string"},"alias":{"type":"string"},"label":{"type":"string"},"description":{"type":"string"},"category":{"anyOf":[{"const":"glass","type":"string"},{"const":"generic","type":"string"},{"const":"wood","type":"string"},{"const":"metal","type":"string"},{"const":"stone","type":"string"},{"const":"concrete","type":"string"},{"const":"ceramic","type":"string"},{"const":"fabric","type":"string"},{"const":"paper","type":"string"},{"const":"plastic","type":"string"},{"const":"paint","type":"string"}]},"shader":{"anyOf":[{"const":"unlit","type":"string"},{"const":"standard","type":"string"}]},"color":{"type":"string"},"roughness":{"type":"number"},"metalness":{"type":"number"},"emissive":{"type":"string"},"emissiveIntensity":{"type":"number"},"opacity":{"type":"number"},"alphaMode":{"anyOf":[{"const":"opaque","type":"string"},{"const":"mask","type":"string"},{"const":"blend","type":"string"}]},"alphaCutoff":{"type":"number"},"side":{"anyOf":[{"const":"back","type":"string"},{"const":"front","type":"string"},{"const":"double","type":"string"}]},"preset":{"anyOf":[{"type":"null"},{"type":"string"}]},"maps":{"type":"array","items":{"type":"object","properties":{"slot":{"anyOf":[{"const":"color","type":"string"},{"const":"normal","type":"string"},{"const":"roughness","type":"string"},{"const":"metalness","type":"string"},{"const":"emissive","type":"string"},{"const":"occlusion","type":"string"},{"const":"alpha","type":"string"}]},"image":{"type":"object","properties":{"assetId":{"type":"string"},"uri":{"type":"string"},"sha256":{"type":"string"},"byteLength":{"type":"number"},"mediaType":{"anyOf":[{"const":"image/png","type":"string"},{"const":"image/jpeg","type":"string"},{"const":"image/webp","type":"string"}]},"displayName":{"type":"string"}},"required":["assetId","uri","sha256","byteLength","mediaType","displayName"],"additionalProperties":false},"repeat":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"minItems":2,"maxItems":2,"items":false},"offset":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"minItems":2,"maxItems":2,"items":false},"rotation":{"type":"number"},"wrap":{"anyOf":[{"const":"repeat","type":"string"},{"const":"clamp","type":"string"},{"const":"mirror","type":"string"}]}},"required":["slot","image","repeat","offset","rotation","wrap"],"additionalProperties":false}}},"required":["version","identity","alias","label","description","category","shader","color","roughness","metalness","emissive","emissiveIntensity","opacity","alphaMode","alphaCutoff","side","preset","maps"],"additionalProperties":false}},"schema":{"const":"quay.scene","type":"string"},"schemaVersion":{"const":"1.0.0","type":"string"},"sceneId":{"type":"string"},"revision":{"type":"number"},"name":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"units":{"const":"metres","type":"string"},"coordinateSystem":{"const":"right-handed-y-up-negative-z-forward","type":"string"},"seed":{"type":"number"},"environment":{"type":"object","properties":{"room":{"type":"object","properties":{"width":{"type":"number"},"depth":{"type":"number"},"height":{"type":"number"},"floorY":{"type":"number"}},"required":["width","depth","height","floorY"],"additionalProperties":false},"background":{"type":"string"},"fog":{"anyOf":[{"type":"null"},{"type":"object","properties":{"color":{"type":"string"},"near":{"type":"number"},"far":{"type":"number"}},"required":["color","near","far"],"additionalProperties":false}]},"floor":{"type":"object","properties":{"visible":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"color":{"type":"string"},"receiveShadow":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"gridVisible":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]}},"required":["visible","color","receiveShadow","gridVisible"],"additionalProperties":false},"lights":{"type":"array","items":{"type":"object","properties":{"type":{"anyOf":[{"const":"ambient","type":"string"},{"const":"hemisphere","type":"string"},{"const":"directional","type":"string"},{"const":"point","type":"string"}]},"color":{"type":"string"},"groundColor":{"type":"string"},"intensity":{"type":"number"},"position":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"castShadow":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]}},"required":["type","color","intensity","position","castShadow"],"additionalProperties":false}}},"required":["room","background","fog","floor","lights"],"additionalProperties":false},"assets":{"type":"array","items":{"type":"object","properties":{"library":{"type":"object","properties":{"version":{"const":"quay.asset-library/1","type":"string"},"alias":{"type":"string"},"scope":{"anyOf":[{"const":"project","type":"string"},{"const":"standard","type":"string"},{"const":"user","type":"string"}]},"projectId":{"anyOf":[{"type":"null"},{"type":"string"}]},"origin":{"type":"object","properties":{"provider":{"type":"string"},"originalAssetId":{"type":"string"},"originalUrl":{"anyOf":[{"type":"null"},{"type":"string"}]},"author":{"anyOf":[{"type":"null"},{"type":"string"}]},"license":{"type":"string"},"attributionRequired":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"originalFilename":{"type":"string"},"downloadedAt":{"type":"string"},"contentHash":{"type":"string"},"sourceHash":{"type":"string"}},"required":["provider","originalAssetId","originalUrl","author","license","attributionRequired","originalFilename","downloadedAt","contentHash","sourceHash"],"additionalProperties":false},"semantics":{"type":"object","properties":{"taxonomy":{"const":"quay.asset-taxonomy/1","type":"string"},"category":{"type":"string"},"styles":{"type":"array","items":{"type":"string"}},"roomTypes":{"type":"array","items":{"type":"string"}},"affordances":{"type":"array","items":{"type":"string"}},"capacity":{"anyOf":[{"type":"null"},{"type":"number"}]},"confidence":{"type":"number"},"state":{"anyOf":[{"const":"accepted","type":"string"},{"const":"unknown","type":"string"},{"const":"suggested","type":"string"}]},"producer":{"type":"string"},"model":{"anyOf":[{"type":"null"},{"type":"string"}]}},"required":["taxonomy","category","styles","roomTypes","affordances","capacity","confidence","state","producer","model"],"additionalProperties":false},"manifestId":{"anyOf":[{"type":"null"},{"type":"string"}]},"archetypeId":{"anyOf":[{"type":"null"},{"type":"string"}]},"cost":{"type":"object","properties":{"triangles":{"anyOf":[{"type":"null"},{"type":"number"}]},"materials":{"anyOf":[{"type":"null"},{"type":"number"}]},"textureBytes":{"anyOf":[{"type":"null"},{"type":"number"}]},"texturePixels":{"anyOf":[{"type":"null"},{"type":"number"}]}},"required":["triangles","materials","textureBytes","texturePixels"],"additionalProperties":false}},"required":["version","alias","scope","projectId","origin","semantics","manifestId","archetypeId","cost"],"additionalProperties":false},"assetId":{"type":"string"},"uri":{"type":"string"},"sha256":{"type":"string"},"byteLength":{"type":"number"},"mediaType":{"const":"model/gltf-binary","type":"string"},"displayName":{"type":"string"},"description":{"type":"string"},"category":{"type":"string"},"canonicalSize":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"normalization":{"type":"object","properties":{"rawBounds":{"type":"object","properties":{"min":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"max":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false}},"required":["min","max"],"additionalProperties":false},"scale":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"baseOffset":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"forwardCorrection":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":4,"maxItems":4,"items":false}},"required":["rawBounds","scale","baseOffset","forwardCorrection"],"additionalProperties":false},"placement":{"anyOf":[{"const":"floor_only","type":"string"},{"const":"support_only","type":"string"},{"const":"floor_or_support","type":"string"}]},"supportsObjects":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"wallAlignment":{"anyOf":[{"type":"null"},{"const":"center","type":"string"},{"const":"left","type":"string"},{"const":"right","type":"string"}]},"availability":{"anyOf":[{"const":"local","type":"string"},{"const":"global","type":"string"}]},"roomId":{"anyOf":[{"type":"null"},{"type":"string"}]},"supportSurfaces":{"type":"array","items":{"type":"object","properties":{"surfaceId":{"type":"string"},"label":{"type":"string"},"center":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"normal":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"size":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"minItems":2,"maxItems":2,"items":false},"source":{"anyOf":[{"const":"bounds","type":"string"},{"const":"mesh","type":"string"},{"const":"manual","type":"string"}]}},"required":["surfaceId","label","center","normal","size","source"],"additionalProperties":false}}},"required":["assetId","uri","sha256","byteLength","mediaType","displayName","description","category","canonicalSize","normalization","placement","supportsObjects","supportSurfaces"],"additionalProperties":false}},"imageAssets":{"type":"array","items":{"type":"object","properties":{"assetId":{"type":"string"},"uri":{"type":"string"},"sha256":{"type":"string"},"byteLength":{"type":"number"},"mediaType":{"anyOf":[{"const":"image/png","type":"string"},{"const":"image/jpeg","type":"string"},{"const":"image/webp","type":"string"}]},"displayName":{"type":"string"}},"required":["assetId","uri","sha256","byteLength","mediaType","displayName"],"additionalProperties":false}},"instances":{"type":"array","items":{"type":"object","properties":{"materialId":{"type":"string"},"normalization":{"type":"object","properties":{"rawBounds":{"type":"object","properties":{"min":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"max":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false}},"required":["min","max"],"additionalProperties":false},"scale":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"baseOffset":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"forwardCorrection":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":4,"maxItems":4,"items":false}},"required":["rawBounds","scale","baseOffset","forwardCorrection"],"additionalProperties":false},"instanceId":{"type":"string"},"assetId":{"type":"string"},"name":{"type":"string"},"transform":{"type":"object","properties":{"position":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"quaternion":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":4,"maxItems":4,"items":false},"scale":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false}},"required":["position","quaternion","scale"],"additionalProperties":false},"visible":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"castShadow":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"receiveShadow":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"locked":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"placement":{"type":"object","properties":{"source":{"anyOf":[{"const":"manual","type":"string"},{"const":"solver","type":"string"},{"const":"imported","type":"string"}]},"supportingInstanceId":{"anyOf":[{"type":"null"},{"type":"string"}]},"supportSurfaceId":{"anyOf":[{"type":"null"},{"type":"string"}]},"solverStatus":{"anyOf":[{"const":"unresolved","type":"string"},{"const":"fallback","type":"string"},{"const":"placed","type":"string"}]}},"required":["source","supportingInstanceId","supportSurfaceId","solverStatus"],"additionalProperties":false},"tags":{"type":"array","items":{"type":"string"}},"wallImage":{"type":"object","properties":{"wallInstanceId":{"type":"string"},"assetId":{"type":"string"},"position":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"minItems":2,"maxItems":2,"items":false},"size":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"minItems":2,"maxItems":2,"items":false},"surfaceOffset":{"type":"number"},"preserveAspectRatio":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"surface":{"anyOf":[{"const":"floor","type":"string"},{"const":"wall","type":"string"}]}},"required":["wallInstanceId","assetId","position","size","surfaceOffset","preserveAspectRatio"],"additionalProperties":false}},"required":["instanceId","assetId","name","transform","visible","castShadow","receiveShadow","locked","placement","tags"],"additionalProperties":false}},"relations":{"type":"array","items":{"type":"object","properties":{"relationId":{"type":"string"},"type":{"anyOf":[{"const":"ON","type":"string"},{"const":"NEAR","type":"string"},{"const":"LEFT_OF","type":"string"},{"const":"RIGHT_OF","type":"string"},{"const":"IN_FRONT_OF","type":"string"},{"const":"BEHIND","type":"string"},{"const":"FACING","type":"string"},{"const":"CENTERED_ON","type":"string"},{"const":"ALIGNED_WITH","type":"string"},{"const":"AGAINST_WALL","type":"string"},{"const":"KEEP_CLEAR_OF","type":"string"}]},"subjectInstanceId":{"type":"string"},"targetInstanceId":{"anyOf":[{"type":"null"},{"type":"string"}]},"strength":{"anyOf":[{"const":"hard","type":"string"},{"const":"soft","type":"string"}]},"status":{"anyOf":[{"const":"satisfied","type":"string"},{"const":"unresolved","type":"string"},{"const":"degraded","type":"string"}]},"message":{"type":"string"}},"required":["relationId","type","subjectInstanceId","targetInstanceId","strength","status","message"],"additionalProperties":false}},"diagnostics":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"severity":{"anyOf":[{"const":"info","type":"string"},{"const":"error","type":"string"},{"const":"warning","type":"string"}]},"message":{"type":"string"},"instanceIds":{"type":"array","items":{"type":"string"}},"relationId":{"anyOf":[{"type":"null"},{"type":"string"}]},"measurements":{"type":"object","properties":{},"required":[],"additionalProperties":{"type":"number"}}},"required":["code","severity","message","instanceIds","relationId"],"additionalProperties":false}},"unplacedInstanceIds":{"type":"array","items":{"type":"string"}},"camera":{"type":"object","properties":{"type":{"const":"perspective","type":"string"},"position":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"target":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"up":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"fovDegrees":{"type":"number"},"near":{"type":"number"},"far":{"type":"number"}},"required":["type","position","target","up","fovDegrees","near","far"],"additionalProperties":false},"provenance":{"type":"object","properties":{"createdBy":{"anyOf":[{"const":"quay","type":"string"},{"const":"import","type":"string"}]},"planner":{"anyOf":[{"type":"null"},{"type":"object","properties":{"provider":{"anyOf":[{"const":"openai","type":"string"},{"const":"fake","type":"string"}]},"model":{"type":"string"},"promptTemplateVersion":{"type":"string"},"requestId":{"type":"string"}},"required":["provider","model","promptTemplateVersion","requestId"],"additionalProperties":false}]},"layoutEngineVersion":{"type":"string"},"threeVersion":{"type":"string"},"sourcePrompt":{"type":"string"}},"required":["createdBy","planner","layoutEngineVersion","threeVersion","sourcePrompt"],"additionalProperties":false}},"required":["schema","schemaVersion","sceneId","revision","name","createdAt","updatedAt","units","coordinateSystem","seed","environment","assets","instances","relations","diagnostics","unplacedInstanceIds","camera","provenance"],"additionalProperties":false},"evaluations":{"type":"array","items":{"type":"object","properties":{"identity":{"type":"string"},"status":{"anyOf":[{"const":"unsupported","type":"string"},{"const":"satisfied","type":"string"},{"const":"failed","type":"string"},{"const":"unknown","type":"string"}]},"message":{"type":"string"},"residuals":{"type":"object","properties":{},"required":[],"additionalProperties":{"type":"number"}}},"required":["identity","status","message","residuals"],"additionalProperties":false}},"diagnostics":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"severity":{"anyOf":[{"const":"info","type":"string"},{"const":"error","type":"string"},{"const":"warning","type":"string"}]},"message":{"type":"string"},"span":{"anyOf":[{"type":"null"},{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"},"line":{"type":"number"},"column":{"type":"number"}},"required":["start","end","line","column"],"additionalProperties":false}]},"identity":{"anyOf":[{"type":"null"},{"type":"string"}]}},"required":["code","severity","message","span","identity"],"additionalProperties":false}},"provenance":{"type":"object","properties":{"sourceHash":{"type":"string"},"versions":{"type":"object","properties":{"compiler":{"const":"quay.compiler/1","type":"string"},"layout":{"anyOf":[{"const":"quay.legacy-layout-adapter/1","type":"string"},{"const":"quay.semantic-layout/1","type":"string"},{"const":"quay.semantic-layout/2","type":"string"}]},"policy":{"anyOf":[{"const":"quay.static-policy/1","type":"string"},{"const":"quay.physical-policy/1","type":"string"}]}},"required":["compiler","layout","policy"],"additionalProperties":false},"dependencies":{"type":"array","items":{"type":"object","properties":{"assetId":{"type":"string"},"manifestId":{"type":"string"},"analysisRevision":{"type":"string"},"contentHash":{"type":"string"}},"required":["assetId","manifestId","analysisRevision","contentHash"],"additionalProperties":false}}},"required":["sourceHash","versions","dependencies"],"additionalProperties":false},"readiness":{"const":"static-preview","type":"string"},"physics":{"type":"object","properties":{"version":{"const":"quay.physics-preparation/1","type":"string"},"ready":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"gravity":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"stepSeconds":{"type":"number"},"maxCatchUpSteps":{"type":"number"},"bodies":{"type":"array","items":{"type":"object","properties":{"instanceId":{"type":"string"},"motion":{"anyOf":[{"const":"static","type":"string"},{"const":"dynamic","type":"string"},{"const":"kinematic","type":"string"}]},"collision":{"anyOf":[{"const":"none","type":"string"},{"const":"solid","type":"string"},{"const":"sensor","type":"string"}]},"controller":{"anyOf":[{"const":"none","type":"string"},{"const":"character","type":"string"}]},"role":{"type":"string"},"canGrab":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"massKg":{"type":"number"},"friction":{"type":"number"},"restitution":{"type":"number"},"colliders":{"type":"array","items":{"type":"object","properties":{"shape":{"anyOf":[{"type":"object","properties":{"kind":{"const":"box","type":"string"},"center":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"halfExtents":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false}},"required":["kind","center","halfExtents"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"convex","type":"string"},"vertices":{"type":"array","items":{"type":"number"}}},"required":["kind","vertices"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"triangle-mesh","type":"string"},"vertices":{"type":"array","items":{"type":"number"}},"indices":{"type":"array","items":{"type":"number"}}},"required":["kind","vertices","indices"],"additionalProperties":false}]},"volumeM3":{"type":"number"},"evidence":{"type":"string"},"approximate":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]}},"required":["shape","volumeM3","evidence","approximate"],"additionalProperties":false}}},"required":["instanceId","motion","collision","controller","role","canGrab","massKg","friction","restitution","colliders"],"additionalProperties":false}},"diagnostics":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"severity":{"anyOf":[{"const":"error","type":"string"},{"const":"warning","type":"string"}]},"instanceId":{"anyOf":[{"type":"null"},{"type":"string"}]},"message":{"type":"string"}},"required":["code","severity","instanceId","message"],"additionalProperties":false}}},"required":["version","ready","gravity","stepSeconds","maxCatchUpSteps","bodies","diagnostics"],"additionalProperties":false}},"required":["schema","schemaVersion","semantic","projection","evaluations","diagnostics","provenance","readiness"],"additionalProperties":false}},"required":["source","sourceHash","bindings","dependencies","versions","scene"],"additionalProperties":false}]}
Complete schema including nested definitions
JSON
{
  "type": "object",
  "properties": {
    "rams": {
      "type": "object",
      "properties": {
        "source": {
          "type": "string"
        },
        "config": {
          "anyOf": [
            {
              "type": "null"
            },
            {
              "type": "object",
              "properties": {
                "presentation": {
                  "type": "object",
                  "properties": {
                    "template": {
                      "const": "portfolio",
                      "type": "string"
                    },
                    "monogram": {
                      "type": "string"
                    },
                    "rooms": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "stableRoomId": {
                            "type": "string"
                          },
                          "slug": {
                            "type": "string"
                          },
                          "canonicalPath": {
                            "type": "string"
                          },
                          "navigationTitle": {
                            "type": "string"
                          },
                          "title": {
                            "type": "string"
                          },
                          "subtitle": {
                            "type": "string"
                          },
                          "seoTitle": {
                            "type": "string"
                          },
                          "seoDescription": {
                            "type": "string"
                          },
                          "html": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "stableRoomId",
                          "slug",
                          "canonicalPath",
                          "navigationTitle",
                          "title",
                          "subtitle",
                          "seoTitle",
                          "seoDescription",
                          "html"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "welcomeAudio": {
                      "anyOf": [
                        {
                          "const": false,
                          "type": "boolean"
                        },
                        {
                          "const": true,
                          "type": "boolean"
                        }
                      ]
                    },
                    "landscapeOnMobile": {
                      "anyOf": [
                        {
                          "const": false,
                          "type": "boolean"
                        },
                        {
                          "const": true,
                          "type": "boolean"
                        }
                      ]
                    },
                    "introState": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "string"
                        }
                      ]
                    }
                  },
                  "required": [
                    "template",
                    "monogram",
                    "rooms",
                    "welcomeAudio",
                    "landscapeOnMobile",
                    "introState"
                  ],
                  "additionalProperties": false
                },
                "version": {
                  "const": "rams.site/1",
                  "type": "string"
                },
                "title": {
                  "type": "string"
                },
                "locale": {
                  "anyOf": [
                    {
                      "const": "it",
                      "type": "string"
                    },
                    {
                      "const": "en",
                      "type": "string"
                    }
                  ]
                },
                "navigation": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "label": {
                        "type": "string"
                      },
                      "action": {
                        "anyOf": [
                          {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "anyOf": [
                                  {
                                    "const": "navigate",
                                    "type": "string"
                                  },
                                  {
                                    "const": "focus",
                                    "type": "string"
                                  },
                                  {
                                    "const": "overlay",
                                    "type": "string"
                                  },
                                  {
                                    "const": "page",
                                    "type": "string"
                                  },
                                  {
                                    "const": "info",
                                    "type": "string"
                                  },
                                  {
                                    "const": "world-action",
                                    "type": "string"
                                  },
                                  {
                                    "const": "cinematic",
                                    "type": "string"
                                  }
                                ]
                              },
                              "target": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "kind",
                              "target"
                            ],
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "const": "external",
                                "type": "string"
                              },
                              "url": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "kind",
                              "url"
                            ],
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "const": "back",
                                "type": "string"
                              }
                            },
                            "required": [
                              "kind"
                            ],
                            "additionalProperties": false
                          }
                        ]
                      }
                    },
                    "required": [
                      "label",
                      "action"
                    ],
                    "additionalProperties": false
                  }
                },
                "footer": {
                  "type": "object",
                  "properties": {
                    "text": {
                      "type": "string"
                    },
                    "links": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "label": {
                            "type": "string"
                          },
                          "action": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "anyOf": [
                                      {
                                        "const": "navigate",
                                        "type": "string"
                                      },
                                      {
                                        "const": "focus",
                                        "type": "string"
                                      },
                                      {
                                        "const": "overlay",
                                        "type": "string"
                                      },
                                      {
                                        "const": "page",
                                        "type": "string"
                                      },
                                      {
                                        "const": "info",
                                        "type": "string"
                                      },
                                      {
                                        "const": "world-action",
                                        "type": "string"
                                      },
                                      {
                                        "const": "cinematic",
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  "target": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "kind",
                                  "target"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "const": "external",
                                    "type": "string"
                                  },
                                  "url": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "kind",
                                  "url"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "const": "back",
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "kind"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          }
                        },
                        "required": [
                          "label",
                          "action"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "branding": {
                      "anyOf": [
                        {
                          "const": false,
                          "type": "boolean"
                        },
                        {
                          "const": true,
                          "type": "boolean"
                        }
                      ]
                    }
                  },
                  "required": [
                    "text",
                    "links",
                    "branding"
                  ],
                  "additionalProperties": false
                },
                "rooms": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "title": {
                        "type": "string"
                      },
                      "summary": {
                        "type": "string"
                      },
                      "description": {
                        "type": "string"
                      },
                      "descriptionSource": {
                        "anyOf": [
                          {
                            "const": "generated",
                            "type": "string"
                          },
                          {
                            "const": "authored",
                            "type": "string"
                          }
                        ]
                      },
                      "image": {
                        "anyOf": [
                          {
                            "type": "null"
                          },
                          {
                            "type": "string"
                          }
                        ]
                      },
                      "actions": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "label": {
                              "type": "string"
                            },
                            "action": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "anyOf": [
                                        {
                                          "const": "navigate",
                                          "type": "string"
                                        },
                                        {
                                          "const": "focus",
                                          "type": "string"
                                        },
                                        {
                                          "const": "overlay",
                                          "type": "string"
                                        },
                                        {
                                          "const": "page",
                                          "type": "string"
                                        },
                                        {
                                          "const": "info",
                                          "type": "string"
                                        },
                                        {
                                          "const": "world-action",
                                          "type": "string"
                                        },
                                        {
                                          "const": "cinematic",
                                          "type": "string"
                                        }
                                      ]
                                    },
                                    "target": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "target"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "const": "external",
                                      "type": "string"
                                    },
                                    "url": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "url"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "const": "back",
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "kind"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          },
                          "required": [
                            "label",
                            "action"
                          ],
                          "additionalProperties": false
                        }
                      }
                    },
                    "required": [
                      "id",
                      "title",
                      "summary",
                      "description",
                      "descriptionSource",
                      "image",
                      "actions"
                    ],
                    "additionalProperties": false
                  }
                },
                "roomInfo": {
                  "anyOf": [
                    {
                      "const": "card",
                      "type": "string"
                    },
                    {
                      "const": "panel",
                      "type": "string"
                    },
                    {
                      "const": "chat",
                      "type": "string"
                    },
                    {
                      "const": "none",
                      "type": "string"
                    }
                  ]
                },
                "overlays": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "title": {
                        "type": "string"
                      },
                      "kind": {
                        "anyOf": [
                          {
                            "const": "text",
                            "type": "string"
                          },
                          {
                            "const": "project",
                            "type": "string"
                          },
                          {
                            "const": "about",
                            "type": "string"
                          },
                          {
                            "const": "gallery",
                            "type": "string"
                          },
                          {
                            "const": "embed",
                            "type": "string"
                          },
                          {
                            "const": "html",
                            "type": "string"
                          },
                          {
                            "const": "contact",
                            "type": "string"
                          },
                          {
                            "const": "component",
                            "type": "string"
                          }
                        ]
                      },
                      "text": {
                        "type": "string"
                      },
                      "images": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "url": {
                        "anyOf": [
                          {
                            "type": "null"
                          },
                          {
                            "type": "string"
                          }
                        ]
                      },
                      "fragment": {
                        "anyOf": [
                          {
                            "type": "null"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "html": {
                                "type": "string"
                              },
                              "css": {
                                "type": "string"
                              },
                              "script": {
                                "type": "string"
                              },
                              "security": {
                                "anyOf": [
                                  {
                                    "const": "safe",
                                    "type": "string"
                                  },
                                  {
                                    "const": "controlled-script",
                                    "type": "string"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "html",
                              "css",
                              "script",
                              "security"
                            ],
                            "additionalProperties": false
                          }
                        ]
                      },
                      "component": {
                        "anyOf": [
                          {
                            "type": "null"
                          },
                          {
                            "const": "chat",
                            "type": "string"
                          },
                          {
                            "const": "rooms",
                            "type": "string"
                          }
                        ]
                      },
                      "actions": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "label": {
                              "type": "string"
                            },
                            "action": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "anyOf": [
                                        {
                                          "const": "navigate",
                                          "type": "string"
                                        },
                                        {
                                          "const": "focus",
                                          "type": "string"
                                        },
                                        {
                                          "const": "overlay",
                                          "type": "string"
                                        },
                                        {
                                          "const": "page",
                                          "type": "string"
                                        },
                                        {
                                          "const": "info",
                                          "type": "string"
                                        },
                                        {
                                          "const": "world-action",
                                          "type": "string"
                                        },
                                        {
                                          "const": "cinematic",
                                          "type": "string"
                                        }
                                      ]
                                    },
                                    "target": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "target"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "const": "external",
                                      "type": "string"
                                    },
                                    "url": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "url"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "const": "back",
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "kind"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          },
                          "required": [
                            "label",
                            "action"
                          ],
                          "additionalProperties": false
                        }
                      }
                    },
                    "required": [
                      "id",
                      "title",
                      "kind",
                      "text",
                      "images",
                      "url",
                      "fragment",
                      "component",
                      "actions"
                    ],
                    "additionalProperties": false
                  }
                },
                "pages": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "title": {
                        "type": "string"
                      },
                      "kind": {
                        "anyOf": [
                          {
                            "const": "text",
                            "type": "string"
                          },
                          {
                            "const": "project",
                            "type": "string"
                          },
                          {
                            "const": "about",
                            "type": "string"
                          },
                          {
                            "const": "gallery",
                            "type": "string"
                          },
                          {
                            "const": "embed",
                            "type": "string"
                          },
                          {
                            "const": "html",
                            "type": "string"
                          },
                          {
                            "const": "contact",
                            "type": "string"
                          },
                          {
                            "const": "component",
                            "type": "string"
                          }
                        ]
                      },
                      "text": {
                        "type": "string"
                      },
                      "images": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "url": {
                        "anyOf": [
                          {
                            "type": "null"
                          },
                          {
                            "type": "string"
                          }
                        ]
                      },
                      "fragment": {
                        "anyOf": [
                          {
                            "type": "null"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "html": {
                                "type": "string"
                              },
                              "css": {
                                "type": "string"
                              },
                              "script": {
                                "type": "string"
                              },
                              "security": {
                                "anyOf": [
                                  {
                                    "const": "safe",
                                    "type": "string"
                                  },
                                  {
                                    "const": "controlled-script",
                                    "type": "string"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "html",
                              "css",
                              "script",
                              "security"
                            ],
                            "additionalProperties": false
                          }
                        ]
                      },
                      "component": {
                        "anyOf": [
                          {
                            "type": "null"
                          },
                          {
                            "const": "chat",
                            "type": "string"
                          },
                          {
                            "const": "rooms",
                            "type": "string"
                          }
                        ]
                      },
                      "actions": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "label": {
                              "type": "string"
                            },
                            "action": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "anyOf": [
                                        {
                                          "const": "navigate",
                                          "type": "string"
                                        },
                                        {
                                          "const": "focus",
                                          "type": "string"
                                        },
                                        {
                                          "const": "overlay",
                                          "type": "string"
                                        },
                                        {
                                          "const": "page",
                                          "type": "string"
                                        },
                                        {
                                          "const": "info",
                                          "type": "string"
                                        },
                                        {
                                          "const": "world-action",
                                          "type": "string"
                                        },
                                        {
                                          "const": "cinematic",
                                          "type": "string"
                                        }
                                      ]
                                    },
                                    "target": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "target"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "const": "external",
                                      "type": "string"
                                    },
                                    "url": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "url"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "const": "back",
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "kind"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          },
                          "required": [
                            "label",
                            "action"
                          ],
                          "additionalProperties": false
                        }
                      }
                    },
                    "required": [
                      "id",
                      "title",
                      "kind",
                      "text",
                      "images",
                      "url",
                      "fragment",
                      "component",
                      "actions"
                    ],
                    "additionalProperties": false
                  }
                },
                "assets": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "alt": {
                        "type": "string"
                      },
                      "data": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "alt",
                      "data"
                    ],
                    "additionalProperties": false
                  }
                },
                "theme": {
                  "type": "object",
                  "properties": {
                    "mode": {
                      "anyOf": [
                        {
                          "const": "dark",
                          "type": "string"
                        },
                        {
                          "const": "light",
                          "type": "string"
                        },
                        {
                          "const": "system",
                          "type": "string"
                        }
                      ]
                    },
                    "font": {
                      "anyOf": [
                        {
                          "const": "system",
                          "type": "string"
                        },
                        {
                          "const": "serif",
                          "type": "string"
                        },
                        {
                          "const": "mono",
                          "type": "string"
                        }
                      ]
                    },
                    "fontSize": {
                      "type": "number"
                    },
                    "spacing": {
                      "type": "number"
                    },
                    "radius": {
                      "type": "number"
                    },
                    "background": {
                      "type": "string"
                    },
                    "foreground": {
                      "type": "string"
                    },
                    "accent": {
                      "type": "string"
                    },
                    "navigation": {
                      "anyOf": [
                        {
                          "const": "solid",
                          "type": "string"
                        },
                        {
                          "const": "glass",
                          "type": "string"
                        }
                      ]
                    },
                    "footer": {
                      "anyOf": [
                        {
                          "const": "compact",
                          "type": "string"
                        },
                        {
                          "const": "expanded",
                          "type": "string"
                        }
                      ]
                    },
                    "overlay": {
                      "anyOf": [
                        {
                          "const": "center",
                          "type": "string"
                        },
                        {
                          "const": "side",
                          "type": "string"
                        }
                      ]
                    },
                    "transitions": {
                      "anyOf": [
                        {
                          "const": false,
                          "type": "boolean"
                        },
                        {
                          "const": true,
                          "type": "boolean"
                        }
                      ]
                    },
                    "logo": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "string"
                        }
                      ]
                    }
                  },
                  "required": [
                    "mode",
                    "font",
                    "fontSize",
                    "spacing",
                    "radius",
                    "background",
                    "foreground",
                    "accent",
                    "navigation",
                    "footer",
                    "overlay",
                    "transitions",
                    "logo"
                  ],
                  "additionalProperties": false
                },
                "contact": {
                  "type": "object",
                  "properties": {
                    "endpoint": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "string"
                        }
                      ]
                    },
                    "alternative": {
                      "type": "string"
                    },
                    "privacy": {
                      "type": "string"
                    },
                    "fields": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "label": {
                            "type": "string"
                          },
                          "required": {
                            "anyOf": [
                              {
                                "const": false,
                                "type": "boolean"
                              },
                              {
                                "const": true,
                                "type": "boolean"
                              }
                            ]
                          }
                        },
                        "required": [
                          "id",
                          "label",
                          "required"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "honeypot": {
                      "anyOf": [
                        {
                          "const": false,
                          "type": "boolean"
                        },
                        {
                          "const": true,
                          "type": "boolean"
                        }
                      ]
                    }
                  },
                  "required": [
                    "endpoint",
                    "alternative",
                    "privacy",
                    "fields",
                    "honeypot"
                  ],
                  "additionalProperties": false
                },
                "chat": {
                  "type": "object",
                  "properties": {
                    "enabled": {
                      "anyOf": [
                        {
                          "const": false,
                          "type": "boolean"
                        },
                        {
                          "const": true,
                          "type": "boolean"
                        }
                      ]
                    },
                    "welcome": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "enabled",
                    "welcome"
                  ],
                  "additionalProperties": false
                },
                "security": {
                  "type": "object",
                  "properties": {
                    "embedOrigins": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "required": [
                    "embedOrigins"
                  ],
                  "additionalProperties": false
                },
                "deploy": {
                  "type": "object",
                  "properties": {
                    "target": {
                      "const": "static",
                      "type": "string"
                    },
                    "basePath": {
                      "type": "string"
                    },
                    "profiles": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "transport": {
                            "anyOf": [
                              {
                                "const": "local",
                                "type": "string"
                              },
                              {
                                "const": "ssh",
                                "type": "string"
                              },
                              {
                                "const": "sftp",
                                "type": "string"
                              },
                              {
                                "const": "rsync",
                                "type": "string"
                              },
                              {
                                "const": "scp",
                                "type": "string"
                              },
                              {
                                "const": "ftp",
                                "type": "string"
                              },
                              {
                                "const": "ftps",
                                "type": "string"
                              },
                              {
                                "const": "custom",
                                "type": "string"
                              }
                            ]
                          },
                          "host": {
                            "type": "string"
                          },
                          "port": {
                            "type": "number"
                          },
                          "username": {
                            "type": "string"
                          },
                          "destination": {
                            "type": "string"
                          },
                          "credentialRef": {
                            "type": "string"
                          },
                          "strategy": {
                            "anyOf": [
                              {
                                "const": "atomic",
                                "type": "string"
                              },
                              {
                                "const": "directory",
                                "type": "string"
                              }
                            ]
                          },
                          "buildProfile": {
                            "const": "production",
                            "type": "string"
                          },
                          "preDeploy": {
                            "const": "verify",
                            "type": "string"
                          },
                          "postDeploy": {
                            "const": "healthcheck",
                            "type": "string"
                          },
                          "healthCheck": {
                            "type": "object",
                            "properties": {
                              "url": {
                                "type": "string"
                              },
                              "expectedStatus": {
                                "type": "number"
                              },
                              "expectedText": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "url",
                              "expectedStatus",
                              "expectedText"
                            ],
                            "additionalProperties": false
                          },
                          "timeout": {
                            "type": "number"
                          },
                          "keepReleases": {
                            "type": "number"
                          },
                          "compression": {
                            "anyOf": [
                              {
                                "const": false,
                                "type": "boolean"
                              },
                              {
                                "const": true,
                                "type": "boolean"
                              }
                            ]
                          },
                          "clean": {
                            "anyOf": [
                              {
                                "const": false,
                                "type": "boolean"
                              },
                              {
                                "const": true,
                                "type": "boolean"
                              }
                            ]
                          },
                          "passive": {
                            "anyOf": [
                              {
                                "const": false,
                                "type": "boolean"
                              },
                              {
                                "const": true,
                                "type": "boolean"
                              }
                            ]
                          },
                          "tls": {
                            "anyOf": [
                              {
                                "const": false,
                                "type": "boolean"
                              },
                              {
                                "const": true,
                                "type": "boolean"
                              }
                            ]
                          }
                        },
                        "required": [
                          "id",
                          "name",
                          "transport",
                          "host",
                          "port",
                          "username",
                          "destination",
                          "credentialRef",
                          "strategy",
                          "buildProfile",
                          "preDeploy",
                          "postDeploy",
                          "healthCheck",
                          "timeout",
                          "keepReleases",
                          "compression",
                          "clean",
                          "passive",
                          "tls"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "target",
                    "basePath"
                  ],
                  "additionalProperties": false
                }
              },
              "required": [
                "version",
                "title",
                "locale",
                "navigation",
                "footer",
                "rooms",
                "roomInfo",
                "overlays",
                "pages",
                "assets",
                "theme",
                "contact",
                "chat",
                "security",
                "deploy"
              ],
              "additionalProperties": false
            }
          ]
        },
        "error": {
          "anyOf": [
            {
              "type": "null"
            },
            {
              "type": "string"
            }
          ]
        }
      },
      "required": [
        "source",
        "config",
        "error"
      ],
      "additionalProperties": false
    },
    "wright": {
      "type": "object",
      "properties": {
        "version": {
          "const": "wright.world/1",
          "type": "string"
        },
        "identity": {
          "type": "string"
        },
        "rooms": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "furnishing": {
                "type": "object",
                "properties": {
                  "roomProgram": {
                    "type": "object",
                    "properties": {
                      "repair": {
                        "type": "object",
                        "properties": {
                          "stage": {
                            "const": "semantic",
                            "type": "string"
                          },
                          "attempts": {
                            "type": "number"
                          },
                          "strategy": {
                            "anyOf": [
                              {
                                "const": "none",
                                "type": "string"
                              },
                              {
                                "const": "bounded-semantic-revision",
                                "type": "string"
                              }
                            ]
                          },
                          "initialFailures": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "finalState": {
                            "const": "accepted",
                            "type": "string"
                          },
                          "relaxedConstraints": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        },
                        "required": [
                          "stage",
                          "attempts",
                          "strategy",
                          "initialFailures",
                          "finalState",
                          "relaxedConstraints"
                        ],
                        "additionalProperties": false
                      },
                      "enrichment": {
                        "type": "object",
                        "properties": {
                          "provider": {
                            "type": "string"
                          },
                          "model": {
                            "type": "string"
                          },
                          "version": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "provider",
                          "model",
                          "version"
                        ],
                        "additionalProperties": false
                      },
                      "intent": {
                        "type": "object",
                        "properties": {
                          "version": {
                            "const": "qway.room-program/1",
                            "type": "string"
                          },
                          "archetype": {
                            "type": "string"
                          },
                          "archetypeRevision": {
                            "type": "string"
                          },
                          "purpose": {
                            "type": "string"
                          },
                          "capacity": {
                            "type": "number"
                          },
                          "style": {
                            "type": "string"
                          },
                          "zones": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "reference": {
                                  "type": "string"
                                },
                                "purpose": {
                                  "type": "string"
                                },
                                "priority": {
                                  "anyOf": [
                                    {
                                      "const": "required",
                                      "type": "string"
                                    },
                                    {
                                      "const": "recommended",
                                      "type": "string"
                                    },
                                    {
                                      "const": "optional",
                                      "type": "string"
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "reference",
                                "purpose",
                                "priority"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "needs": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "reference": {
                                  "type": "string"
                                },
                                "category": {
                                  "type": "string"
                                },
                                "zone": {
                                  "type": "string"
                                },
                                "quantity": {
                                  "type": "number"
                                },
                                "capacity": {
                                  "anyOf": [
                                    {
                                      "type": "null"
                                    },
                                    {
                                      "type": "number"
                                    }
                                  ]
                                },
                                "priority": {
                                  "anyOf": [
                                    {
                                      "const": "required",
                                      "type": "string"
                                    },
                                    {
                                      "const": "recommended",
                                      "type": "string"
                                    },
                                    {
                                      "const": "optional",
                                      "type": "string"
                                    }
                                  ]
                                },
                                "assetAlias": {
                                  "anyOf": [
                                    {
                                      "type": "null"
                                    },
                                    {
                                      "type": "string"
                                    }
                                  ]
                                },
                                "placement": {
                                  "anyOf": [
                                    {
                                      "const": "center",
                                      "type": "string"
                                    },
                                    {
                                      "const": "auto",
                                      "type": "string"
                                    },
                                    {
                                      "const": "perimeter",
                                      "type": "string"
                                    }
                                  ]
                                },
                                "evidence": {
                                  "type": "object",
                                  "properties": {
                                    "origin": {
                                      "anyOf": [
                                        {
                                          "const": "explicit",
                                          "type": "string"
                                        },
                                        {
                                          "const": "archetype",
                                          "type": "string"
                                        },
                                        {
                                          "const": "inferred",
                                          "type": "string"
                                        }
                                      ]
                                    },
                                    "confidence": {
                                      "type": "number"
                                    },
                                    "explanation": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "origin",
                                    "confidence",
                                    "explanation"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "reference",
                                "category",
                                "zone",
                                "quantity",
                                "capacity",
                                "priority",
                                "assetAlias",
                                "placement",
                                "evidence"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "rules": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "reference": {
                                  "type": "string"
                                },
                                "kind": {
                                  "anyOf": [
                                    {
                                      "const": "on",
                                      "type": "string"
                                    },
                                    {
                                      "const": "seating",
                                      "type": "string"
                                    },
                                    {
                                      "const": "beside",
                                      "type": "string"
                                    },
                                    {
                                      "const": "facing",
                                      "type": "string"
                                    },
                                    {
                                      "const": "near-window",
                                      "type": "string"
                                    },
                                    {
                                      "const": "wall-alignment",
                                      "type": "string"
                                    },
                                    {
                                      "const": "interior",
                                      "type": "string"
                                    },
                                    {
                                      "const": "access",
                                      "type": "string"
                                    },
                                    {
                                      "const": "visibility",
                                      "type": "string"
                                    },
                                    {
                                      "const": "clearance",
                                      "type": "string"
                                    },
                                    {
                                      "const": "circulation",
                                      "type": "string"
                                    },
                                    {
                                      "const": "minimum-dimensions",
                                      "type": "string"
                                    },
                                    {
                                      "const": "unsupported",
                                      "type": "string"
                                    }
                                  ]
                                },
                                "subjects": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                },
                                "target": {
                                  "anyOf": [
                                    {
                                      "type": "null"
                                    },
                                    {
                                      "type": "string"
                                    }
                                  ]
                                },
                                "priority": {
                                  "anyOf": [
                                    {
                                      "const": "required",
                                      "type": "string"
                                    },
                                    {
                                      "const": "recommended",
                                      "type": "string"
                                    },
                                    {
                                      "const": "optional",
                                      "type": "string"
                                    }
                                  ]
                                },
                                "strength": {
                                  "anyOf": [
                                    {
                                      "const": "hard",
                                      "type": "string"
                                    },
                                    {
                                      "const": "soft",
                                      "type": "string"
                                    }
                                  ]
                                },
                                "clearanceM": {
                                  "anyOf": [
                                    {
                                      "type": "null"
                                    },
                                    {
                                      "type": "number"
                                    }
                                  ]
                                },
                                "description": {
                                  "type": "string"
                                },
                                "evidence": {
                                  "type": "object",
                                  "properties": {
                                    "origin": {
                                      "anyOf": [
                                        {
                                          "const": "explicit",
                                          "type": "string"
                                        },
                                        {
                                          "const": "archetype",
                                          "type": "string"
                                        },
                                        {
                                          "const": "inferred",
                                          "type": "string"
                                        }
                                      ]
                                    },
                                    "confidence": {
                                      "type": "number"
                                    },
                                    "explanation": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "origin",
                                    "confidence",
                                    "explanation"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "reference",
                                "kind",
                                "subjects",
                                "target",
                                "priority",
                                "strength",
                                "clearanceM",
                                "description",
                                "evidence"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "architecture": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "reference": {
                                  "type": "string"
                                },
                                "kind": {
                                  "anyOf": [
                                    {
                                      "const": "window",
                                      "type": "string"
                                    },
                                    {
                                      "const": "portal",
                                      "type": "string"
                                    },
                                    {
                                      "const": "wall-run",
                                      "type": "string"
                                    },
                                    {
                                      "const": "open-center",
                                      "type": "string"
                                    },
                                    {
                                      "const": "natural-light",
                                      "type": "string"
                                    },
                                    {
                                      "const": "ceiling-light",
                                      "type": "string"
                                    }
                                  ]
                                },
                                "quantity": {
                                  "type": "number"
                                },
                                "priority": {
                                  "anyOf": [
                                    {
                                      "const": "required",
                                      "type": "string"
                                    },
                                    {
                                      "const": "recommended",
                                      "type": "string"
                                    },
                                    {
                                      "const": "optional",
                                      "type": "string"
                                    }
                                  ]
                                },
                                "evidence": {
                                  "type": "object",
                                  "properties": {
                                    "origin": {
                                      "anyOf": [
                                        {
                                          "const": "explicit",
                                          "type": "string"
                                        },
                                        {
                                          "const": "archetype",
                                          "type": "string"
                                        },
                                        {
                                          "const": "inferred",
                                          "type": "string"
                                        }
                                      ]
                                    },
                                    "confidence": {
                                      "type": "number"
                                    },
                                    "explanation": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "origin",
                                    "confidence",
                                    "explanation"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "reference",
                                "kind",
                                "quantity",
                                "priority",
                                "evidence"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "exclusions": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "category": {
                                  "type": "string"
                                },
                                "evidence": {
                                  "type": "object",
                                  "properties": {
                                    "origin": {
                                      "const": "explicit",
                                      "type": "string"
                                    },
                                    "confidence": {
                                      "type": "number"
                                    },
                                    "explanation": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "origin",
                                    "confidence",
                                    "explanation"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "category",
                                "evidence"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "uncertainties": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        },
                        "required": [
                          "version",
                          "archetype",
                          "archetypeRevision",
                          "purpose",
                          "capacity",
                          "style",
                          "zones",
                          "needs",
                          "rules",
                          "architecture",
                          "exclusions",
                          "uncertainties"
                        ],
                        "additionalProperties": false
                      },
                      "archetypeSnapshot": {
                        "type": "object",
                        "properties": {
                          "version": {
                            "const": "qway.room-program/1",
                            "type": "string"
                          },
                          "archetype": {
                            "type": "string"
                          },
                          "archetypeRevision": {
                            "type": "string"
                          },
                          "purpose": {
                            "type": "string"
                          },
                          "capacity": {
                            "type": "number"
                          },
                          "style": {
                            "type": "string"
                          },
                          "zones": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "reference": {
                                  "type": "string"
                                },
                                "purpose": {
                                  "type": "string"
                                },
                                "priority": {
                                  "anyOf": [
                                    {
                                      "const": "required",
                                      "type": "string"
                                    },
                                    {
                                      "const": "recommended",
                                      "type": "string"
                                    },
                                    {
                                      "const": "optional",
                                      "type": "string"
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "reference",
                                "purpose",
                                "priority"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "needs": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "reference": {
                                  "type": "string"
                                },
                                "category": {
                                  "type": "string"
                                },
                                "zone": {
                                  "type": "string"
                                },
                                "quantity": {
                                  "type": "number"
                                },
                                "capacity": {
                                  "anyOf": [
                                    {
                                      "type": "null"
                                    },
                                    {
                                      "type": "number"
                                    }
                                  ]
                                },
                                "priority": {
                                  "anyOf": [
                                    {
                                      "const": "required",
                                      "type": "string"
                                    },
                                    {
                                      "const": "recommended",
                                      "type": "string"
                                    },
                                    {
                                      "const": "optional",
                                      "type": "string"
                                    }
                                  ]
                                },
                                "assetAlias": {
                                  "anyOf": [
                                    {
                                      "type": "null"
                                    },
                                    {
                                      "type": "string"
                                    }
                                  ]
                                },
                                "placement": {
                                  "anyOf": [
                                    {
                                      "const": "center",
                                      "type": "string"
                                    },
                                    {
                                      "const": "auto",
                                      "type": "string"
                                    },
                                    {
                                      "const": "perimeter",
                                      "type": "string"
                                    }
                                  ]
                                },
                                "evidence": {
                                  "type": "object",
                                  "properties": {
                                    "origin": {
                                      "anyOf": [
                                        {
                                          "const": "explicit",
                                          "type": "string"
                                        },
                                        {
                                          "const": "archetype",
                                          "type": "string"
                                        },
                                        {
                                          "const": "inferred",
                                          "type": "string"
                                        }
                                      ]
                                    },
                                    "confidence": {
                                      "type": "number"
                                    },
                                    "explanation": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "origin",
                                    "confidence",
                                    "explanation"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "reference",
                                "category",
                                "zone",
                                "quantity",
                                "capacity",
                                "priority",
                                "assetAlias",
                                "placement",
                                "evidence"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "rules": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "reference": {
                                  "type": "string"
                                },
                                "kind": {
                                  "anyOf": [
                                    {
                                      "const": "on",
                                      "type": "string"
                                    },
                                    {
                                      "const": "seating",
                                      "type": "string"
                                    },
                                    {
                                      "const": "beside",
                                      "type": "string"
                                    },
                                    {
                                      "const": "facing",
                                      "type": "string"
                                    },
                                    {
                                      "const": "near-window",
                                      "type": "string"
                                    },
                                    {
                                      "const": "wall-alignment",
                                      "type": "string"
                                    },
                                    {
                                      "const": "interior",
                                      "type": "string"
                                    },
                                    {
                                      "const": "access",
                                      "type": "string"
                                    },
                                    {
                                      "const": "visibility",
                                      "type": "string"
                                    },
                                    {
                                      "const": "clearance",
                                      "type": "string"
                                    },
                                    {
                                      "const": "circulation",
                                      "type": "string"
                                    },
                                    {
                                      "const": "minimum-dimensions",
                                      "type": "string"
                                    },
                                    {
                                      "const": "unsupported",
                                      "type": "string"
                                    }
                                  ]
                                },
                                "subjects": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                },
                                "target": {
                                  "anyOf": [
                                    {
                                      "type": "null"
                                    },
                                    {
                                      "type": "string"
                                    }
                                  ]
                                },
                                "priority": {
                                  "anyOf": [
                                    {
                                      "const": "required",
                                      "type": "string"
                                    },
                                    {
                                      "const": "recommended",
                                      "type": "string"
                                    },
                                    {
                                      "const": "optional",
                                      "type": "string"
                                    }
                                  ]
                                },
                                "strength": {
                                  "anyOf": [
                                    {
                                      "const": "hard",
                                      "type": "string"
                                    },
                                    {
                                      "const": "soft",
                                      "type": "string"
                                    }
                                  ]
                                },
                                "clearanceM": {
                                  "anyOf": [
                                    {
                                      "type": "null"
                                    },
                                    {
                                      "type": "number"
                                    }
                                  ]
                                },
                                "description": {
                                  "type": "string"
                                },
                                "evidence": {
                                  "type": "object",
                                  "properties": {
                                    "origin": {
                                      "anyOf": [
                                        {
                                          "const": "explicit",
                                          "type": "string"
                                        },
                                        {
                                          "const": "archetype",
                                          "type": "string"
                                        },
                                        {
                                          "const": "inferred",
                                          "type": "string"
                                        }
                                      ]
                                    },
                                    "confidence": {
                                      "type": "number"
                                    },
                                    "explanation": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "origin",
                                    "confidence",
                                    "explanation"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "reference",
                                "kind",
                                "subjects",
                                "target",
                                "priority",
                                "strength",
                                "clearanceM",
                                "description",
                                "evidence"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "architecture": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "reference": {
                                  "type": "string"
                                },
                                "kind": {
                                  "anyOf": [
                                    {
                                      "const": "window",
                                      "type": "string"
                                    },
                                    {
                                      "const": "portal",
                                      "type": "string"
                                    },
                                    {
                                      "const": "wall-run",
                                      "type": "string"
                                    },
                                    {
                                      "const": "open-center",
                                      "type": "string"
                                    },
                                    {
                                      "const": "natural-light",
                                      "type": "string"
                                    },
                                    {
                                      "const": "ceiling-light",
                                      "type": "string"
                                    }
                                  ]
                                },
                                "quantity": {
                                  "type": "number"
                                },
                                "priority": {
                                  "anyOf": [
                                    {
                                      "const": "required",
                                      "type": "string"
                                    },
                                    {
                                      "const": "recommended",
                                      "type": "string"
                                    },
                                    {
                                      "const": "optional",
                                      "type": "string"
                                    }
                                  ]
                                },
                                "evidence": {
                                  "type": "object",
                                  "properties": {
                                    "origin": {
                                      "anyOf": [
                                        {
                                          "const": "explicit",
                                          "type": "string"
                                        },
                                        {
                                          "const": "archetype",
                                          "type": "string"
                                        },
                                        {
                                          "const": "inferred",
                                          "type": "string"
                                        }
                                      ]
                                    },
                                    "confidence": {
                                      "type": "number"
                                    },
                                    "explanation": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "origin",
                                    "confidence",
                                    "explanation"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "reference",
                                "kind",
                                "quantity",
                                "priority",
                                "evidence"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "exclusions": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "category": {
                                  "type": "string"
                                },
                                "evidence": {
                                  "type": "object",
                                  "properties": {
                                    "origin": {
                                      "const": "explicit",
                                      "type": "string"
                                    },
                                    "confidence": {
                                      "type": "number"
                                    },
                                    "explanation": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "origin",
                                    "confidence",
                                    "explanation"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "category",
                                "evidence"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "uncertainties": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        },
                        "required": [
                          "version",
                          "archetype",
                          "archetypeRevision",
                          "purpose",
                          "capacity",
                          "style",
                          "zones",
                          "needs",
                          "rules",
                          "architecture",
                          "exclusions",
                          "uncertainties"
                        ],
                        "additionalProperties": false
                      },
                      "bindings": {
                        "type": "object",
                        "properties": {},
                        "required": [],
                        "additionalProperties": {
                          "type": "string"
                        }
                      }
                    },
                    "required": [
                      "intent",
                      "archetypeSnapshot",
                      "bindings"
                    ],
                    "additionalProperties": false
                  },
                  "version": {
                    "const": "qway.furnishing/1",
                    "type": "string"
                  },
                  "purpose": {
                    "type": "string"
                  },
                  "capacity": {
                    "type": "number"
                  },
                  "style": {
                    "type": "string"
                  },
                  "needs": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "identity": {
                          "type": "string"
                        },
                        "category": {
                          "type": "string"
                        },
                        "quantity": {
                          "type": "number"
                        },
                        "capacity": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "type": "number"
                            }
                          ]
                        },
                        "assetAlias": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "type": "string"
                            }
                          ]
                        },
                        "placement": {
                          "anyOf": [
                            {
                              "const": "center",
                              "type": "string"
                            },
                            {
                              "const": "auto",
                              "type": "string"
                            },
                            {
                              "const": "perimeter",
                              "type": "string"
                            }
                          ]
                        },
                        "relation": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "const": "on",
                              "type": "string"
                            },
                            {
                              "const": "seating",
                              "type": "string"
                            },
                            {
                              "const": "near-window",
                              "type": "string"
                            }
                          ]
                        },
                        "target": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "type": "string"
                            }
                          ]
                        },
                        "instances": {
                          "type": "array",
                          "items": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        }
                      },
                      "required": [
                        "identity",
                        "category",
                        "quantity",
                        "capacity",
                        "assetAlias",
                        "placement",
                        "relation",
                        "target",
                        "instances"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "version",
                  "purpose",
                  "capacity",
                  "style",
                  "needs"
                ],
                "additionalProperties": false
              },
              "identity": {
                "type": "string"
              },
              "alias": {
                "type": "string",
                "maxLength": 100
              },
              "label": {
                "type": "string",
                "maxLength": 200
              },
              "level": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "parent": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "size": {
                "type": "array",
                "prefixItems": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ],
                "minItems": 3,
                "maxItems": 3,
                "items": false
              },
              "frame": {
                "type": "object",
                "properties": {
                  "position": {
                    "type": "array",
                    "prefixItems": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      }
                    ],
                    "minItems": 3,
                    "maxItems": 3,
                    "items": false
                  },
                  "quaternion": {
                    "type": "array",
                    "prefixItems": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      }
                    ],
                    "minItems": 4,
                    "maxItems": 4,
                    "items": false
                  }
                },
                "required": [
                  "position",
                  "quaternion"
                ],
                "additionalProperties": false
              },
              "backdrop": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "materialId": {
                        "type": "string"
                      },
                      "identity": {
                        "type": "string"
                      },
                      "semantic": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "source": {
                        "anyOf": [
                          {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "const": "image",
                                "type": "string"
                              },
                              "assetId": {
                                "type": "string"
                              },
                              "uri": {
                                "type": "string"
                              },
                              "mediaType": {
                                "anyOf": [
                                  {
                                    "const": "image/png",
                                    "type": "string"
                                  },
                                  {
                                    "const": "image/jpeg",
                                    "type": "string"
                                  },
                                  {
                                    "const": "image/webp",
                                    "type": "string"
                                  }
                                ]
                              },
                              "sha256": {
                                "type": "string"
                              },
                              "byteLength": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "kind",
                              "assetId",
                              "uri",
                              "mediaType",
                              "sha256",
                              "byteLength"
                            ],
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "const": "asset",
                                "type": "string"
                              },
                              "uri": {
                                "type": "null"
                              },
                              "assetId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "kind",
                              "uri",
                              "assetId"
                            ],
                            "additionalProperties": false
                          }
                        ]
                      },
                      "side": {
                        "anyOf": [
                          {
                            "const": "north",
                            "type": "string"
                          },
                          {
                            "const": "south",
                            "type": "string"
                          },
                          {
                            "const": "east",
                            "type": "string"
                          },
                          {
                            "const": "west",
                            "type": "string"
                          }
                        ]
                      },
                      "mode": {
                        "const": "architectural",
                        "type": "string"
                      },
                      "fit": {
                        "anyOf": [
                          {
                            "const": "cover",
                            "type": "string"
                          },
                          {
                            "const": "contain",
                            "type": "string"
                          }
                        ]
                      },
                      "projection": {
                        "const": "flat",
                        "type": "string"
                      },
                      "distance": {
                        "type": "number"
                      },
                      "lighting": {
                        "anyOf": [
                          {
                            "const": "unlit",
                            "type": "string"
                          },
                          {
                            "const": "lit",
                            "type": "string"
                          }
                        ]
                      },
                      "enabled": {
                        "anyOf": [
                          {
                            "const": false,
                            "type": "boolean"
                          },
                          {
                            "const": true,
                            "type": "boolean"
                          }
                        ]
                      }
                    },
                    "required": [
                      "identity",
                      "semantic",
                      "source",
                      "side",
                      "mode",
                      "fit",
                      "projection",
                      "distance",
                      "lighting",
                      "enabled"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "north": {
                        "type": "object",
                        "properties": {
                          "materialId": {
                            "type": "string"
                          },
                          "identity": {
                            "type": "string"
                          },
                          "semantic": {
                            "type": "string",
                            "maxLength": 200
                          },
                          "source": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "const": "image",
                                    "type": "string"
                                  },
                                  "assetId": {
                                    "type": "string"
                                  },
                                  "uri": {
                                    "type": "string"
                                  },
                                  "mediaType": {
                                    "anyOf": [
                                      {
                                        "const": "image/png",
                                        "type": "string"
                                      },
                                      {
                                        "const": "image/jpeg",
                                        "type": "string"
                                      },
                                      {
                                        "const": "image/webp",
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  "sha256": {
                                    "type": "string"
                                  },
                                  "byteLength": {
                                    "type": "number"
                                  }
                                },
                                "required": [
                                  "kind",
                                  "assetId",
                                  "uri",
                                  "mediaType",
                                  "sha256",
                                  "byteLength"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "const": "asset",
                                    "type": "string"
                                  },
                                  "uri": {
                                    "type": "null"
                                  },
                                  "assetId": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "kind",
                                  "uri",
                                  "assetId"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "side": {
                            "anyOf": [
                              {
                                "const": "north",
                                "type": "string"
                              },
                              {
                                "const": "south",
                                "type": "string"
                              },
                              {
                                "const": "east",
                                "type": "string"
                              },
                              {
                                "const": "west",
                                "type": "string"
                              }
                            ]
                          },
                          "mode": {
                            "const": "architectural",
                            "type": "string"
                          },
                          "fit": {
                            "anyOf": [
                              {
                                "const": "cover",
                                "type": "string"
                              },
                              {
                                "const": "contain",
                                "type": "string"
                              }
                            ]
                          },
                          "projection": {
                            "const": "flat",
                            "type": "string"
                          },
                          "distance": {
                            "type": "number"
                          },
                          "lighting": {
                            "anyOf": [
                              {
                                "const": "unlit",
                                "type": "string"
                              },
                              {
                                "const": "lit",
                                "type": "string"
                              }
                            ]
                          },
                          "enabled": {
                            "anyOf": [
                              {
                                "const": false,
                                "type": "boolean"
                              },
                              {
                                "const": true,
                                "type": "boolean"
                              }
                            ]
                          }
                        },
                        "required": [
                          "identity",
                          "semantic",
                          "source",
                          "side",
                          "mode",
                          "fit",
                          "projection",
                          "distance",
                          "lighting",
                          "enabled"
                        ],
                        "additionalProperties": false
                      },
                      "south": {
                        "type": "object",
                        "properties": {
                          "materialId": {
                            "type": "string"
                          },
                          "identity": {
                            "type": "string"
                          },
                          "semantic": {
                            "type": "string",
                            "maxLength": 200
                          },
                          "source": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "const": "image",
                                    "type": "string"
                                  },
                                  "assetId": {
                                    "type": "string"
                                  },
                                  "uri": {
                                    "type": "string"
                                  },
                                  "mediaType": {
                                    "anyOf": [
                                      {
                                        "const": "image/png",
                                        "type": "string"
                                      },
                                      {
                                        "const": "image/jpeg",
                                        "type": "string"
                                      },
                                      {
                                        "const": "image/webp",
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  "sha256": {
                                    "type": "string"
                                  },
                                  "byteLength": {
                                    "type": "number"
                                  }
                                },
                                "required": [
                                  "kind",
                                  "assetId",
                                  "uri",
                                  "mediaType",
                                  "sha256",
                                  "byteLength"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "const": "asset",
                                    "type": "string"
                                  },
                                  "uri": {
                                    "type": "null"
                                  },
                                  "assetId": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "kind",
                                  "uri",
                                  "assetId"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "side": {
                            "anyOf": [
                              {
                                "const": "north",
                                "type": "string"
                              },
                              {
                                "const": "south",
                                "type": "string"
                              },
                              {
                                "const": "east",
                                "type": "string"
                              },
                              {
                                "const": "west",
                                "type": "string"
                              }
                            ]
                          },
                          "mode": {
                            "const": "architectural",
                            "type": "string"
                          },
                          "fit": {
                            "anyOf": [
                              {
                                "const": "cover",
                                "type": "string"
                              },
                              {
                                "const": "contain",
                                "type": "string"
                              }
                            ]
                          },
                          "projection": {
                            "const": "flat",
                            "type": "string"
                          },
                          "distance": {
                            "type": "number"
                          },
                          "lighting": {
                            "anyOf": [
                              {
                                "const": "unlit",
                                "type": "string"
                              },
                              {
                                "const": "lit",
                                "type": "string"
                              }
                            ]
                          },
                          "enabled": {
                            "anyOf": [
                              {
                                "const": false,
                                "type": "boolean"
                              },
                              {
                                "const": true,
                                "type": "boolean"
                              }
                            ]
                          }
                        },
                        "required": [
                          "identity",
                          "semantic",
                          "source",
                          "side",
                          "mode",
                          "fit",
                          "projection",
                          "distance",
                          "lighting",
                          "enabled"
                        ],
                        "additionalProperties": false
                      },
                      "east": {
                        "type": "object",
                        "properties": {
                          "materialId": {
                            "type": "string"
                          },
                          "identity": {
                            "type": "string"
                          },
                          "semantic": {
                            "type": "string",
                            "maxLength": 200
                          },
                          "source": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "const": "image",
                                    "type": "string"
                                  },
                                  "assetId": {
                                    "type": "string"
                                  },
                                  "uri": {
                                    "type": "string"
                                  },
                                  "mediaType": {
                                    "anyOf": [
                                      {
                                        "const": "image/png",
                                        "type": "string"
                                      },
                                      {
                                        "const": "image/jpeg",
                                        "type": "string"
                                      },
                                      {
                                        "const": "image/webp",
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  "sha256": {
                                    "type": "string"
                                  },
                                  "byteLength": {
                                    "type": "number"
                                  }
                                },
                                "required": [
                                  "kind",
                                  "assetId",
                                  "uri",
                                  "mediaType",
                                  "sha256",
                                  "byteLength"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "const": "asset",
                                    "type": "string"
                                  },
                                  "uri": {
                                    "type": "null"
                                  },
                                  "assetId": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "kind",
                                  "uri",
                                  "assetId"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "side": {
                            "anyOf": [
                              {
                                "const": "north",
                                "type": "string"
                              },
                              {
                                "const": "south",
                                "type": "string"
                              },
                              {
                                "const": "east",
                                "type": "string"
                              },
                              {
                                "const": "west",
                                "type": "string"
                              }
                            ]
                          },
                          "mode": {
                            "const": "architectural",
                            "type": "string"
                          },
                          "fit": {
                            "anyOf": [
                              {
                                "const": "cover",
                                "type": "string"
                              },
                              {
                                "const": "contain",
                                "type": "string"
                              }
                            ]
                          },
                          "projection": {
                            "const": "flat",
                            "type": "string"
                          },
                          "distance": {
                            "type": "number"
                          },
                          "lighting": {
                            "anyOf": [
                              {
                                "const": "unlit",
                                "type": "string"
                              },
                              {
                                "const": "lit",
                                "type": "string"
                              }
                            ]
                          },
                          "enabled": {
                            "anyOf": [
                              {
                                "const": false,
                                "type": "boolean"
                              },
                              {
                                "const": true,
                                "type": "boolean"
                              }
                            ]
                          }
                        },
                        "required": [
                          "identity",
                          "semantic",
                          "source",
                          "side",
                          "mode",
                          "fit",
                          "projection",
                          "distance",
                          "lighting",
                          "enabled"
                        ],
                        "additionalProperties": false
                      },
                      "west": {
                        "type": "object",
                        "properties": {
                          "materialId": {
                            "type": "string"
                          },
                          "identity": {
                            "type": "string"
                          },
                          "semantic": {
                            "type": "string",
                            "maxLength": 200
                          },
                          "source": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "const": "image",
                                    "type": "string"
                                  },
                                  "assetId": {
                                    "type": "string"
                                  },
                                  "uri": {
                                    "type": "string"
                                  },
                                  "mediaType": {
                                    "anyOf": [
                                      {
                                        "const": "image/png",
                                        "type": "string"
                                      },
                                      {
                                        "const": "image/jpeg",
                                        "type": "string"
                                      },
                                      {
                                        "const": "image/webp",
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  "sha256": {
                                    "type": "string"
                                  },
                                  "byteLength": {
                                    "type": "number"
                                  }
                                },
                                "required": [
                                  "kind",
                                  "assetId",
                                  "uri",
                                  "mediaType",
                                  "sha256",
                                  "byteLength"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "const": "asset",
                                    "type": "string"
                                  },
                                  "uri": {
                                    "type": "null"
                                  },
                                  "assetId": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "kind",
                                  "uri",
                                  "assetId"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "side": {
                            "anyOf": [
                              {
                                "const": "north",
                                "type": "string"
                              },
                              {
                                "const": "south",
                                "type": "string"
                              },
                              {
                                "const": "east",
                                "type": "string"
                              },
                              {
                                "const": "west",
                                "type": "string"
                              }
                            ]
                          },
                          "mode": {
                            "const": "architectural",
                            "type": "string"
                          },
                          "fit": {
                            "anyOf": [
                              {
                                "const": "cover",
                                "type": "string"
                              },
                              {
                                "const": "contain",
                                "type": "string"
                              }
                            ]
                          },
                          "projection": {
                            "const": "flat",
                            "type": "string"
                          },
                          "distance": {
                            "type": "number"
                          },
                          "lighting": {
                            "anyOf": [
                              {
                                "const": "unlit",
                                "type": "string"
                              },
                              {
                                "const": "lit",
                                "type": "string"
                              }
                            ]
                          },
                          "enabled": {
                            "anyOf": [
                              {
                                "const": false,
                                "type": "boolean"
                              },
                              {
                                "const": true,
                                "type": "boolean"
                              }
                            ]
                          }
                        },
                        "required": [
                          "identity",
                          "semantic",
                          "source",
                          "side",
                          "mode",
                          "fit",
                          "projection",
                          "distance",
                          "lighting",
                          "enabled"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "required": [],
                    "additionalProperties": false
                  }
                ]
              }
            },
            "required": [
              "identity",
              "alias",
              "label",
              "level",
              "parent",
              "size",
              "frame"
            ],
            "additionalProperties": false
          }
        },
        "levels": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "identity": {
                "type": "string"
              },
              "label": {
                "type": "string"
              }
            },
            "required": [
              "identity",
              "label"
            ],
            "additionalProperties": false
          }
        },
        "portals": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "identity": {
                "type": "string"
              },
              "alias": {
                "type": "string",
                "maxLength": 100
              },
              "from": {
                "type": "string"
              },
              "to": {
                "type": "string"
              },
              "frame": {
                "type": "object",
                "properties": {
                  "position": {
                    "type": "array",
                    "prefixItems": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      }
                    ],
                    "minItems": 3,
                    "maxItems": 3,
                    "items": false
                  },
                  "quaternion": {
                    "type": "array",
                    "prefixItems": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      }
                    ],
                    "minItems": 4,
                    "maxItems": 4,
                    "items": false
                  }
                },
                "required": [
                  "position",
                  "quaternion"
                ],
                "additionalProperties": false
              },
              "width": {
                "type": "number"
              },
              "height": {
                "type": "number"
              },
              "traversable": {
                "anyOf": [
                  {
                    "const": false,
                    "type": "boolean"
                  },
                  {
                    "const": true,
                    "type": "boolean"
                  }
                ]
              },
              "door": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "string"
                  }
                ]
              }
            },
            "required": [
              "identity",
              "alias",
              "from",
              "to",
              "frame",
              "width",
              "height",
              "traversable",
              "door"
            ],
            "additionalProperties": false
          }
        },
        "entrances": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "identity": {
                "type": "string"
              },
              "alias": {
                "type": "string",
                "maxLength": 100
              },
              "room": {
                "type": "string"
              },
              "frame": {
                "type": "object",
                "properties": {
                  "position": {
                    "type": "array",
                    "prefixItems": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      }
                    ],
                    "minItems": 3,
                    "maxItems": 3,
                    "items": false
                  },
                  "quaternion": {
                    "type": "array",
                    "prefixItems": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      }
                    ],
                    "minItems": 4,
                    "maxItems": 4,
                    "items": false
                  }
                },
                "required": [
                  "position",
                  "quaternion"
                ],
                "additionalProperties": false
              },
              "width": {
                "type": "number"
              },
              "height": {
                "type": "number"
              },
              "traversable": {
                "anyOf": [
                  {
                    "const": false,
                    "type": "boolean"
                  },
                  {
                    "const": true,
                    "type": "boolean"
                  }
                ]
              },
              "door": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "string"
                  }
                ]
              }
            },
            "required": [
              "identity",
              "alias",
              "room",
              "frame",
              "width",
              "height",
              "traversable",
              "door"
            ],
            "additionalProperties": false
          }
        },
        "membership": {
          "type": "object",
          "properties": {},
          "required": [],
          "additionalProperties": {
            "type": "string"
          }
        }
      },
      "required": [
        "version",
        "identity",
        "rooms",
        "levels",
        "portals",
        "membership"
      ],
      "additionalProperties": false
    },
    "ridley": {
      "type": "object",
      "properties": {
        "personas": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "version": {
                "const": "ridley.persona/1",
                "type": "string"
              },
              "personaId": {
                "type": "string"
              },
              "profileId": {
                "type": "string"
              },
              "parentId": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "revision": {
                "type": "number"
              },
              "createdAt": {
                "type": "string"
              },
              "sha256": {
                "type": "string"
              },
              "description": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "role": {
                    "type": "string"
                  },
                  "instructions": {
                    "type": "string"
                  },
                  "knowledge": {
                    "type": "string"
                  },
                  "speakingStyle": {
                    "type": "string"
                  },
                  "language": {
                    "type": "string"
                  },
                  "allowedTopics": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "forbiddenTopics": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "emotionalBaseline": {
                    "type": "string"
                  },
                  "memory": {
                    "anyOf": [
                      {
                        "const": "none",
                        "type": "string"
                      },
                      {
                        "const": "session",
                        "type": "string"
                      }
                    ]
                  },
                  "maxTurns": {
                    "type": "number"
                  },
                  "maxHistoryChars": {
                    "type": "number"
                  }
                },
                "required": [
                  "name",
                  "role",
                  "instructions",
                  "knowledge",
                  "speakingStyle",
                  "language",
                  "allowedTopics",
                  "forbiddenTopics",
                  "emotionalBaseline",
                  "memory",
                  "maxTurns",
                  "maxHistoryChars"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "version",
              "personaId",
              "profileId",
              "parentId",
              "revision",
              "createdAt",
              "sha256",
              "description"
            ],
            "additionalProperties": false
          }
        },
        "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
          }
        },
        "version": {
          "const": "ridley.project/1",
          "type": "string"
        },
        "screenplays": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "title": {
                "type": "string",
                "maxLength": 200
              },
              "text": {
                "type": "string",
                "maxLength": 65536
              }
            },
            "required": [
              "id",
              "title",
              "text"
            ],
            "additionalProperties": false
          }
        },
        "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": 3,
                        "type": "number"
                      },
                      {
                        "const": 4,
                        "type": "number"
                      },
                      {
                        "const": 1,
                        "type": "number"
                      },
                      {
                        "const": 2,
                        "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": "none",
                        "type": "string"
                      },
                      {
                        "const": "restrained",
                        "type": "string"
                      },
                      {
                        "const": "active",
                        "type": "string"
                      }
                    ]
                  },
                  "contrast": {
                    "anyOf": [
                      {
                        "const": "soft",
                        "type": "string"
                      },
                      {
                        "const": "natural",
                        "type": "string"
                      },
                      {
                        "const": "dramatic",
                        "type": "string"
                      }
                    ]
                  }
                },
                "required": [
                  "room"
                ],
                "additionalProperties": false
              }
            }
          },
          "required": [
            "styles"
          ],
          "additionalProperties": false
        },
        "draft": {
          "type": "object",
          "properties": {
            "source": {
              "type": "string"
            },
            "sourceHash": {
              "type": "string"
            },
            "diagnostics": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "code": {
                    "type": "string"
                  },
                  "severity": {
                    "anyOf": [
                      {
                        "const": "info",
                        "type": "string"
                      },
                      {
                        "const": "error",
                        "type": "string"
                      },
                      {
                        "const": "warning",
                        "type": "string"
                      }
                    ]
                  },
                  "message": {
                    "type": "string"
                  },
                  "span": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "object",
                        "properties": {
                          "start": {
                            "type": "number"
                          },
                          "end": {
                            "type": "number"
                          },
                          "line": {
                            "type": "number"
                          },
                          "column": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "start",
                          "end",
                          "line",
                          "column"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  },
                  "identity": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  }
                },
                "required": [
                  "code",
                  "severity",
                  "message",
                  "span",
                  "identity"
                ],
                "additionalProperties": false
              }
            }
          },
          "required": [
            "source",
            "sourceHash",
            "diagnostics"
          ],
          "additionalProperties": false
        },
        "accepted": {
          "anyOf": [
            {
              "type": "null"
            },
            {
              "type": "object",
              "properties": {
                "source": {
                  "type": "string"
                },
                "document": {
                  "anyOf": [
                    {
                      "type": "null"
                    },
                    {
                      "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": 3,
                                            "type": "number"
                                          },
                                          {
                                            "const": 4,
                                            "type": "number"
                                          },
                                          {
                                            "const": 1,
                                            "type": "number"
                                          },
                                          {
                                            "const": 2,
                                            "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": "none",
                                            "type": "string"
                                          },
                                          {
                                            "const": "restrained",
                                            "type": "string"
                                          },
                                          {
                                            "const": "active",
                                            "type": "string"
                                          }
                                        ]
                                      },
                                      "contrast": {
                                        "anyOf": [
                                          {
                                            "const": "soft",
                                            "type": "string"
                                          },
                                          {
                                            "const": "natural",
                                            "type": "string"
                                          },
                                          {
                                            "const": "dramatic",
                                            "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": 3,
                                            "type": "number"
                                          },
                                          {
                                            "const": 4,
                                            "type": "number"
                                          },
                                          {
                                            "const": 1,
                                            "type": "number"
                                          },
                                          {
                                            "const": 2,
                                            "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": "none",
                                            "type": "string"
                                          },
                                          {
                                            "const": "restrained",
                                            "type": "string"
                                          },
                                          {
                                            "const": "active",
                                            "type": "string"
                                          }
                                        ]
                                      },
                                      "contrast": {
                                        "anyOf": [
                                          {
                                            "const": "soft",
                                            "type": "string"
                                          },
                                          {
                                            "const": "natural",
                                            "type": "string"
                                          },
                                          {
                                            "const": "dramatic",
                                            "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",
                                          "properties": {
                                            "model": {
                                              "const": "gpt-4o-mini-tts-2025-12-15",
                                              "type": "string"
                                            },
                                            "voice": {
                                              "type": "string",
                                              "enum": [
                                                "alloy",
                                                "ash",
                                                "ballad",
                                                "coral",
                                                "echo",
                                                "fable",
                                                "nova",
                                                "onyx",
                                                "sage",
                                                "shimmer",
                                                "verse",
                                                "marin",
                                                "cedar"
                                              ]
                                            },
                                            "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
                                            }
                                          },
                                          "required": [
                                            "model",
                                            "voice",
                                            "language",
                                            "instructions",
                                            "speed"
                                          ],
                                          "additionalProperties": false
                                        },
                                        "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
                    }
                  ]
                },
                "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": 3,
                                    "type": "number"
                                  },
                                  {
                                    "const": 4,
                                    "type": "number"
                                  },
                                  {
                                    "const": 1,
                                    "type": "number"
                                  },
                                  {
                                    "const": 2,
                                    "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": "none",
                                    "type": "string"
                                  },
                                  {
                                    "const": "restrained",
                                    "type": "string"
                                  },
                                  {
                                    "const": "active",
                                    "type": "string"
                                  }
                                ]
                              },
                              "contrast": {
                                "anyOf": [
                                  {
                                    "const": "soft",
                                    "type": "string"
                                  },
                                  {
                                    "const": "natural",
                                    "type": "string"
                                  },
                                  {
                                    "const": "dramatic",
                                    "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": 3,
                                    "type": "number"
                                  },
                                  {
                                    "const": 4,
                                    "type": "number"
                                  },
                                  {
                                    "const": 1,
                                    "type": "number"
                                  },
                                  {
                                    "const": 2,
                                    "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": "none",
                                    "type": "string"
                                  },
                                  {
                                    "const": "restrained",
                                    "type": "string"
                                  },
                                  {
                                    "const": "active",
                                    "type": "string"
                                  }
                                ]
                              },
                              "contrast": {
                                "anyOf": [
                                  {
                                    "const": "soft",
                                    "type": "string"
                                  },
                                  {
                                    "const": "natural",
                                    "type": "string"
                                  },
                                  {
                                    "const": "dramatic",
                                    "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
                },
                "experience": {
                  "type": "object",
                  "properties": {
                    "personas": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "version": {
                            "const": "ridley.persona/1",
                            "type": "string"
                          },
                          "personaId": {
                            "type": "string"
                          },
                          "profileId": {
                            "type": "string"
                          },
                          "parentId": {
                            "anyOf": [
                              {
                                "type": "null"
                              },
                              {
                                "type": "string"
                              }
                            ]
                          },
                          "revision": {
                            "type": "number"
                          },
                          "createdAt": {
                            "type": "string"
                          },
                          "sha256": {
                            "type": "string"
                          },
                          "description": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "role": {
                                "type": "string"
                              },
                              "instructions": {
                                "type": "string"
                              },
                              "knowledge": {
                                "type": "string"
                              },
                              "speakingStyle": {
                                "type": "string"
                              },
                              "language": {
                                "type": "string"
                              },
                              "allowedTopics": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "forbiddenTopics": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "emotionalBaseline": {
                                "type": "string"
                              },
                              "memory": {
                                "anyOf": [
                                  {
                                    "const": "none",
                                    "type": "string"
                                  },
                                  {
                                    "const": "session",
                                    "type": "string"
                                  }
                                ]
                              },
                              "maxTurns": {
                                "type": "number"
                              },
                              "maxHistoryChars": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "name",
                              "role",
                              "instructions",
                              "knowledge",
                              "speakingStyle",
                              "language",
                              "allowedTopics",
                              "forbiddenTopics",
                              "emotionalBaseline",
                              "memory",
                              "maxTurns",
                              "maxHistoryChars"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "version",
                          "personaId",
                          "profileId",
                          "parentId",
                          "revision",
                          "createdAt",
                          "sha256",
                          "description"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "npcs": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "actor": {
                            "type": "string"
                          },
                          "profileId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "actor",
                          "profileId"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "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.experience",
                      "type": "string"
                    },
                    "version": {
                      "const": "1.0.0",
                      "type": "string"
                    },
                    "compiler": {
                      "const": "ridley.experience/1",
                      "type": "string"
                    },
                    "worldSceneId": {
                      "type": "string"
                    },
                    "worldSourceHash": {
                      "type": "string"
                    },
                    "sourceHash": {
                      "type": "string"
                    },
                    "bindings": {
                      "type": "object",
                      "properties": {},
                      "required": [],
                      "additionalProperties": {
                        "type": "string"
                      }
                    },
                    "initial": {
                      "type": "string"
                    },
                    "states": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "audio": {
                            "type": "array",
                            "items": {
                              "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
                            }
                          },
                          "id": {
                            "type": "string"
                          },
                          "mode": {
                            "anyOf": [
                              {
                                "const": "cinematic",
                                "type": "string"
                              },
                              {
                                "const": "interactive",
                                "type": "string"
                              },
                              {
                                "const": "conversation",
                                "type": "string"
                              }
                            ]
                          },
                          "conversation": {
                            "type": "object",
                            "properties": {
                              "actor": {
                                "type": "string"
                              },
                              "profileId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "actor",
                              "profileId"
                            ],
                            "additionalProperties": false
                          },
                          "cinematic": {
                            "anyOf": [
                              {
                                "type": "null"
                              },
                              {
                                "type": "string"
                              }
                            ]
                          },
                          "control": {
                            "anyOf": [
                              {
                                "type": "null"
                              },
                              {
                                "type": "string"
                              }
                            ]
                          },
                          "camera": {
                            "anyOf": [
                              {
                                "const": "third-person",
                                "type": "string"
                              },
                              {
                                "const": "first-person",
                                "type": "string"
                              },
                              {
                                "const": "overhead",
                                "type": "string"
                              },
                              {
                                "const": "overview",
                                "type": "string"
                              }
                            ]
                          },
                          "userCamera": {
                            "anyOf": [
                              {
                                "const": false,
                                "type": "boolean"
                              },
                              {
                                "const": true,
                                "type": "boolean"
                              }
                            ]
                          },
                          "followers": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "actor": {
                                  "type": "string"
                                },
                                "target": {
                                  "type": "string"
                                },
                                "distance": {
                                  "type": "number"
                                },
                                "delay": {
                                  "type": "number"
                                },
                                "speed": {
                                  "type": "number"
                                }
                              },
                              "required": [
                                "actor",
                                "target",
                                "distance",
                                "delay",
                                "speed"
                              ],
                              "additionalProperties": false
                            }
                          }
                        },
                        "required": [
                          "id",
                          "mode",
                          "cinematic",
                          "control",
                          "camera",
                          "userCamera",
                          "followers"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "transitions": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "from": {
                            "type": "string"
                          },
                          "to": {
                            "type": "string"
                          },
                          "event": {
                            "type": "string"
                          },
                          "subject": {
                            "anyOf": [
                              {
                                "type": "null"
                              },
                              {
                                "type": "string"
                              }
                            ]
                          },
                          "target": {
                            "anyOf": [
                              {
                                "type": "null"
                              },
                              {
                                "type": "string"
                              }
                            ]
                          },
                          "once": {
                            "anyOf": [
                              {
                                "const": false,
                                "type": "boolean"
                              },
                              {
                                "const": true,
                                "type": "boolean"
                              }
                            ]
                          }
                        },
                        "required": [
                          "id",
                          "from",
                          "to",
                          "event",
                          "subject",
                          "target",
                          "once"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "schema",
                    "version",
                    "compiler",
                    "worldSceneId",
                    "worldSourceHash",
                    "sourceHash",
                    "bindings",
                    "initial",
                    "states",
                    "transitions"
                  ],
                  "additionalProperties": false
                }
              },
              "required": [
                "source",
                "document",
                "direction"
              ],
              "additionalProperties": false
            }
          ]
        }
      },
      "required": [
        "version",
        "screenplays",
        "draft",
        "accepted"
      ],
      "additionalProperties": false
    },
    "schema": {
      "const": "quay.project",
      "type": "string"
    },
    "schemaVersion": {
      "const": "2.0.0-draft.1",
      "type": "string"
    },
    "projectId": {
      "type": "string"
    },
    "revision": {
      "type": "number"
    },
    "createdAt": {
      "type": "string"
    },
    "updatedAt": {
      "type": "string"
    },
    "draft": {
      "type": "object",
      "properties": {
        "source": {
          "type": "string"
        },
        "sourceHash": {
          "type": "string"
        },
        "diagnostics": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string"
              },
              "severity": {
                "anyOf": [
                  {
                    "const": "info",
                    "type": "string"
                  },
                  {
                    "const": "error",
                    "type": "string"
                  },
                  {
                    "const": "warning",
                    "type": "string"
                  }
                ]
              },
              "message": {
                "type": "string"
              },
              "span": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "start": {
                        "type": "number"
                      },
                      "end": {
                        "type": "number"
                      },
                      "line": {
                        "type": "number"
                      },
                      "column": {
                        "type": "number"
                      }
                    },
                    "required": [
                      "start",
                      "end",
                      "line",
                      "column"
                    ],
                    "additionalProperties": false
                  }
                ]
              },
              "identity": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "string"
                  }
                ]
              }
            },
            "required": [
              "code",
              "severity",
              "message",
              "span",
              "identity"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "source",
        "sourceHash",
        "diagnostics"
      ],
      "additionalProperties": false
    },
    "accepted": {
      "anyOf": [
        {
          "type": "null"
        },
        {
          "type": "object",
          "properties": {
            "source": {
              "type": "string"
            },
            "sourceHash": {
              "type": "string"
            },
            "bindings": {
              "type": "object",
              "properties": {},
              "required": [],
              "additionalProperties": {
                "type": "string"
              }
            },
            "dependencies": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "assetId": {
                    "type": "string"
                  },
                  "manifestId": {
                    "type": "string"
                  },
                  "analysisRevision": {
                    "type": "string"
                  },
                  "contentHash": {
                    "type": "string"
                  }
                },
                "required": [
                  "assetId",
                  "manifestId",
                  "analysisRevision",
                  "contentHash"
                ],
                "additionalProperties": false
              }
            },
            "versions": {
              "type": "object",
              "properties": {
                "compiler": {
                  "const": "quay.compiler/1",
                  "type": "string"
                },
                "layout": {
                  "anyOf": [
                    {
                      "const": "quay.legacy-layout-adapter/1",
                      "type": "string"
                    },
                    {
                      "const": "quay.semantic-layout/1",
                      "type": "string"
                    },
                    {
                      "const": "quay.semantic-layout/2",
                      "type": "string"
                    }
                  ]
                },
                "policy": {
                  "anyOf": [
                    {
                      "const": "quay.static-policy/1",
                      "type": "string"
                    },
                    {
                      "const": "quay.physical-policy/1",
                      "type": "string"
                    }
                  ]
                }
              },
              "required": [
                "compiler",
                "layout",
                "policy"
              ],
              "additionalProperties": false
            },
            "scene": {
              "type": "object",
              "properties": {
                "wright": {
                  "type": "object",
                  "properties": {
                    "version": {
                      "const": "wright.resolved/1",
                      "type": "string"
                    },
                    "topology": {
                      "type": "object",
                      "properties": {
                        "version": {
                          "const": "wright.world/1",
                          "type": "string"
                        },
                        "identity": {
                          "type": "string"
                        },
                        "rooms": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "furnishing": {
                                "type": "object",
                                "properties": {
                                  "roomProgram": {
                                    "type": "object",
                                    "properties": {
                                      "repair": {
                                        "type": "object",
                                        "properties": {
                                          "stage": {
                                            "const": "semantic",
                                            "type": "string"
                                          },
                                          "attempts": {
                                            "type": "number"
                                          },
                                          "strategy": {
                                            "anyOf": [
                                              {
                                                "const": "none",
                                                "type": "string"
                                              },
                                              {
                                                "const": "bounded-semantic-revision",
                                                "type": "string"
                                              }
                                            ]
                                          },
                                          "initialFailures": {
                                            "type": "array",
                                            "items": {
                                              "type": "string"
                                            }
                                          },
                                          "finalState": {
                                            "const": "accepted",
                                            "type": "string"
                                          },
                                          "relaxedConstraints": {
                                            "type": "array",
                                            "items": {
                                              "type": "string"
                                            }
                                          }
                                        },
                                        "required": [
                                          "stage",
                                          "attempts",
                                          "strategy",
                                          "initialFailures",
                                          "finalState",
                                          "relaxedConstraints"
                                        ],
                                        "additionalProperties": false
                                      },
                                      "enrichment": {
                                        "type": "object",
                                        "properties": {
                                          "provider": {
                                            "type": "string"
                                          },
                                          "model": {
                                            "type": "string"
                                          },
                                          "version": {
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "provider",
                                          "model",
                                          "version"
                                        ],
                                        "additionalProperties": false
                                      },
                                      "intent": {
                                        "type": "object",
                                        "properties": {
                                          "version": {
                                            "const": "qway.room-program/1",
                                            "type": "string"
                                          },
                                          "archetype": {
                                            "type": "string"
                                          },
                                          "archetypeRevision": {
                                            "type": "string"
                                          },
                                          "purpose": {
                                            "type": "string"
                                          },
                                          "capacity": {
                                            "type": "number"
                                          },
                                          "style": {
                                            "type": "string"
                                          },
                                          "zones": {
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "properties": {
                                                "reference": {
                                                  "type": "string"
                                                },
                                                "purpose": {
                                                  "type": "string"
                                                },
                                                "priority": {
                                                  "anyOf": [
                                                    {
                                                      "const": "required",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "recommended",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "optional",
                                                      "type": "string"
                                                    }
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "reference",
                                                "purpose",
                                                "priority"
                                              ],
                                              "additionalProperties": false
                                            }
                                          },
                                          "needs": {
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "properties": {
                                                "reference": {
                                                  "type": "string"
                                                },
                                                "category": {
                                                  "type": "string"
                                                },
                                                "zone": {
                                                  "type": "string"
                                                },
                                                "quantity": {
                                                  "type": "number"
                                                },
                                                "capacity": {
                                                  "anyOf": [
                                                    {
                                                      "type": "null"
                                                    },
                                                    {
                                                      "type": "number"
                                                    }
                                                  ]
                                                },
                                                "priority": {
                                                  "anyOf": [
                                                    {
                                                      "const": "required",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "recommended",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "optional",
                                                      "type": "string"
                                                    }
                                                  ]
                                                },
                                                "assetAlias": {
                                                  "anyOf": [
                                                    {
                                                      "type": "null"
                                                    },
                                                    {
                                                      "type": "string"
                                                    }
                                                  ]
                                                },
                                                "placement": {
                                                  "anyOf": [
                                                    {
                                                      "const": "center",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "auto",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "perimeter",
                                                      "type": "string"
                                                    }
                                                  ]
                                                },
                                                "evidence": {
                                                  "type": "object",
                                                  "properties": {
                                                    "origin": {
                                                      "anyOf": [
                                                        {
                                                          "const": "explicit",
                                                          "type": "string"
                                                        },
                                                        {
                                                          "const": "archetype",
                                                          "type": "string"
                                                        },
                                                        {
                                                          "const": "inferred",
                                                          "type": "string"
                                                        }
                                                      ]
                                                    },
                                                    "confidence": {
                                                      "type": "number"
                                                    },
                                                    "explanation": {
                                                      "type": "string"
                                                    }
                                                  },
                                                  "required": [
                                                    "origin",
                                                    "confidence",
                                                    "explanation"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              },
                                              "required": [
                                                "reference",
                                                "category",
                                                "zone",
                                                "quantity",
                                                "capacity",
                                                "priority",
                                                "assetAlias",
                                                "placement",
                                                "evidence"
                                              ],
                                              "additionalProperties": false
                                            }
                                          },
                                          "rules": {
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "properties": {
                                                "reference": {
                                                  "type": "string"
                                                },
                                                "kind": {
                                                  "anyOf": [
                                                    {
                                                      "const": "on",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "seating",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "beside",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "facing",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "near-window",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "wall-alignment",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "interior",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "access",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "visibility",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "clearance",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "circulation",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "minimum-dimensions",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "unsupported",
                                                      "type": "string"
                                                    }
                                                  ]
                                                },
                                                "subjects": {
                                                  "type": "array",
                                                  "items": {
                                                    "type": "string"
                                                  }
                                                },
                                                "target": {
                                                  "anyOf": [
                                                    {
                                                      "type": "null"
                                                    },
                                                    {
                                                      "type": "string"
                                                    }
                                                  ]
                                                },
                                                "priority": {
                                                  "anyOf": [
                                                    {
                                                      "const": "required",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "recommended",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "optional",
                                                      "type": "string"
                                                    }
                                                  ]
                                                },
                                                "strength": {
                                                  "anyOf": [
                                                    {
                                                      "const": "hard",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "soft",
                                                      "type": "string"
                                                    }
                                                  ]
                                                },
                                                "clearanceM": {
                                                  "anyOf": [
                                                    {
                                                      "type": "null"
                                                    },
                                                    {
                                                      "type": "number"
                                                    }
                                                  ]
                                                },
                                                "description": {
                                                  "type": "string"
                                                },
                                                "evidence": {
                                                  "type": "object",
                                                  "properties": {
                                                    "origin": {
                                                      "anyOf": [
                                                        {
                                                          "const": "explicit",
                                                          "type": "string"
                                                        },
                                                        {
                                                          "const": "archetype",
                                                          "type": "string"
                                                        },
                                                        {
                                                          "const": "inferred",
                                                          "type": "string"
                                                        }
                                                      ]
                                                    },
                                                    "confidence": {
                                                      "type": "number"
                                                    },
                                                    "explanation": {
                                                      "type": "string"
                                                    }
                                                  },
                                                  "required": [
                                                    "origin",
                                                    "confidence",
                                                    "explanation"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              },
                                              "required": [
                                                "reference",
                                                "kind",
                                                "subjects",
                                                "target",
                                                "priority",
                                                "strength",
                                                "clearanceM",
                                                "description",
                                                "evidence"
                                              ],
                                              "additionalProperties": false
                                            }
                                          },
                                          "architecture": {
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "properties": {
                                                "reference": {
                                                  "type": "string"
                                                },
                                                "kind": {
                                                  "anyOf": [
                                                    {
                                                      "const": "window",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "portal",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "wall-run",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "open-center",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "natural-light",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "ceiling-light",
                                                      "type": "string"
                                                    }
                                                  ]
                                                },
                                                "quantity": {
                                                  "type": "number"
                                                },
                                                "priority": {
                                                  "anyOf": [
                                                    {
                                                      "const": "required",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "recommended",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "optional",
                                                      "type": "string"
                                                    }
                                                  ]
                                                },
                                                "evidence": {
                                                  "type": "object",
                                                  "properties": {
                                                    "origin": {
                                                      "anyOf": [
                                                        {
                                                          "const": "explicit",
                                                          "type": "string"
                                                        },
                                                        {
                                                          "const": "archetype",
                                                          "type": "string"
                                                        },
                                                        {
                                                          "const": "inferred",
                                                          "type": "string"
                                                        }
                                                      ]
                                                    },
                                                    "confidence": {
                                                      "type": "number"
                                                    },
                                                    "explanation": {
                                                      "type": "string"
                                                    }
                                                  },
                                                  "required": [
                                                    "origin",
                                                    "confidence",
                                                    "explanation"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              },
                                              "required": [
                                                "reference",
                                                "kind",
                                                "quantity",
                                                "priority",
                                                "evidence"
                                              ],
                                              "additionalProperties": false
                                            }
                                          },
                                          "exclusions": {
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "properties": {
                                                "category": {
                                                  "type": "string"
                                                },
                                                "evidence": {
                                                  "type": "object",
                                                  "properties": {
                                                    "origin": {
                                                      "const": "explicit",
                                                      "type": "string"
                                                    },
                                                    "confidence": {
                                                      "type": "number"
                                                    },
                                                    "explanation": {
                                                      "type": "string"
                                                    }
                                                  },
                                                  "required": [
                                                    "origin",
                                                    "confidence",
                                                    "explanation"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              },
                                              "required": [
                                                "category",
                                                "evidence"
                                              ],
                                              "additionalProperties": false
                                            }
                                          },
                                          "uncertainties": {
                                            "type": "array",
                                            "items": {
                                              "type": "string"
                                            }
                                          }
                                        },
                                        "required": [
                                          "version",
                                          "archetype",
                                          "archetypeRevision",
                                          "purpose",
                                          "capacity",
                                          "style",
                                          "zones",
                                          "needs",
                                          "rules",
                                          "architecture",
                                          "exclusions",
                                          "uncertainties"
                                        ],
                                        "additionalProperties": false
                                      },
                                      "archetypeSnapshot": {
                                        "type": "object",
                                        "properties": {
                                          "version": {
                                            "const": "qway.room-program/1",
                                            "type": "string"
                                          },
                                          "archetype": {
                                            "type": "string"
                                          },
                                          "archetypeRevision": {
                                            "type": "string"
                                          },
                                          "purpose": {
                                            "type": "string"
                                          },
                                          "capacity": {
                                            "type": "number"
                                          },
                                          "style": {
                                            "type": "string"
                                          },
                                          "zones": {
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "properties": {
                                                "reference": {
                                                  "type": "string"
                                                },
                                                "purpose": {
                                                  "type": "string"
                                                },
                                                "priority": {
                                                  "anyOf": [
                                                    {
                                                      "const": "required",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "recommended",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "optional",
                                                      "type": "string"
                                                    }
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "reference",
                                                "purpose",
                                                "priority"
                                              ],
                                              "additionalProperties": false
                                            }
                                          },
                                          "needs": {
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "properties": {
                                                "reference": {
                                                  "type": "string"
                                                },
                                                "category": {
                                                  "type": "string"
                                                },
                                                "zone": {
                                                  "type": "string"
                                                },
                                                "quantity": {
                                                  "type": "number"
                                                },
                                                "capacity": {
                                                  "anyOf": [
                                                    {
                                                      "type": "null"
                                                    },
                                                    {
                                                      "type": "number"
                                                    }
                                                  ]
                                                },
                                                "priority": {
                                                  "anyOf": [
                                                    {
                                                      "const": "required",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "recommended",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "optional",
                                                      "type": "string"
                                                    }
                                                  ]
                                                },
                                                "assetAlias": {
                                                  "anyOf": [
                                                    {
                                                      "type": "null"
                                                    },
                                                    {
                                                      "type": "string"
                                                    }
                                                  ]
                                                },
                                                "placement": {
                                                  "anyOf": [
                                                    {
                                                      "const": "center",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "auto",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "perimeter",
                                                      "type": "string"
                                                    }
                                                  ]
                                                },
                                                "evidence": {
                                                  "type": "object",
                                                  "properties": {
                                                    "origin": {
                                                      "anyOf": [
                                                        {
                                                          "const": "explicit",
                                                          "type": "string"
                                                        },
                                                        {
                                                          "const": "archetype",
                                                          "type": "string"
                                                        },
                                                        {
                                                          "const": "inferred",
                                                          "type": "string"
                                                        }
                                                      ]
                                                    },
                                                    "confidence": {
                                                      "type": "number"
                                                    },
                                                    "explanation": {
                                                      "type": "string"
                                                    }
                                                  },
                                                  "required": [
                                                    "origin",
                                                    "confidence",
                                                    "explanation"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              },
                                              "required": [
                                                "reference",
                                                "category",
                                                "zone",
                                                "quantity",
                                                "capacity",
                                                "priority",
                                                "assetAlias",
                                                "placement",
                                                "evidence"
                                              ],
                                              "additionalProperties": false
                                            }
                                          },
                                          "rules": {
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "properties": {
                                                "reference": {
                                                  "type": "string"
                                                },
                                                "kind": {
                                                  "anyOf": [
                                                    {
                                                      "const": "on",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "seating",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "beside",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "facing",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "near-window",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "wall-alignment",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "interior",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "access",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "visibility",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "clearance",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "circulation",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "minimum-dimensions",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "unsupported",
                                                      "type": "string"
                                                    }
                                                  ]
                                                },
                                                "subjects": {
                                                  "type": "array",
                                                  "items": {
                                                    "type": "string"
                                                  }
                                                },
                                                "target": {
                                                  "anyOf": [
                                                    {
                                                      "type": "null"
                                                    },
                                                    {
                                                      "type": "string"
                                                    }
                                                  ]
                                                },
                                                "priority": {
                                                  "anyOf": [
                                                    {
                                                      "const": "required",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "recommended",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "optional",
                                                      "type": "string"
                                                    }
                                                  ]
                                                },
                                                "strength": {
                                                  "anyOf": [
                                                    {
                                                      "const": "hard",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "soft",
                                                      "type": "string"
                                                    }
                                                  ]
                                                },
                                                "clearanceM": {
                                                  "anyOf": [
                                                    {
                                                      "type": "null"
                                                    },
                                                    {
                                                      "type": "number"
                                                    }
                                                  ]
                                                },
                                                "description": {
                                                  "type": "string"
                                                },
                                                "evidence": {
                                                  "type": "object",
                                                  "properties": {
                                                    "origin": {
                                                      "anyOf": [
                                                        {
                                                          "const": "explicit",
                                                          "type": "string"
                                                        },
                                                        {
                                                          "const": "archetype",
                                                          "type": "string"
                                                        },
                                                        {
                                                          "const": "inferred",
                                                          "type": "string"
                                                        }
                                                      ]
                                                    },
                                                    "confidence": {
                                                      "type": "number"
                                                    },
                                                    "explanation": {
                                                      "type": "string"
                                                    }
                                                  },
                                                  "required": [
                                                    "origin",
                                                    "confidence",
                                                    "explanation"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              },
                                              "required": [
                                                "reference",
                                                "kind",
                                                "subjects",
                                                "target",
                                                "priority",
                                                "strength",
                                                "clearanceM",
                                                "description",
                                                "evidence"
                                              ],
                                              "additionalProperties": false
                                            }
                                          },
                                          "architecture": {
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "properties": {
                                                "reference": {
                                                  "type": "string"
                                                },
                                                "kind": {
                                                  "anyOf": [
                                                    {
                                                      "const": "window",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "portal",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "wall-run",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "open-center",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "natural-light",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "ceiling-light",
                                                      "type": "string"
                                                    }
                                                  ]
                                                },
                                                "quantity": {
                                                  "type": "number"
                                                },
                                                "priority": {
                                                  "anyOf": [
                                                    {
                                                      "const": "required",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "recommended",
                                                      "type": "string"
                                                    },
                                                    {
                                                      "const": "optional",
                                                      "type": "string"
                                                    }
                                                  ]
                                                },
                                                "evidence": {
                                                  "type": "object",
                                                  "properties": {
                                                    "origin": {
                                                      "anyOf": [
                                                        {
                                                          "const": "explicit",
                                                          "type": "string"
                                                        },
                                                        {
                                                          "const": "archetype",
                                                          "type": "string"
                                                        },
                                                        {
                                                          "const": "inferred",
                                                          "type": "string"
                                                        }
                                                      ]
                                                    },
                                                    "confidence": {
                                                      "type": "number"
                                                    },
                                                    "explanation": {
                                                      "type": "string"
                                                    }
                                                  },
                                                  "required": [
                                                    "origin",
                                                    "confidence",
                                                    "explanation"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              },
                                              "required": [
                                                "reference",
                                                "kind",
                                                "quantity",
                                                "priority",
                                                "evidence"
                                              ],
                                              "additionalProperties": false
                                            }
                                          },
                                          "exclusions": {
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "properties": {
                                                "category": {
                                                  "type": "string"
                                                },
                                                "evidence": {
                                                  "type": "object",
                                                  "properties": {
                                                    "origin": {
                                                      "const": "explicit",
                                                      "type": "string"
                                                    },
                                                    "confidence": {
                                                      "type": "number"
                                                    },
                                                    "explanation": {
                                                      "type": "string"
                                                    }
                                                  },
                                                  "required": [
                                                    "origin",
                                                    "confidence",
                                                    "explanation"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              },
                                              "required": [
                                                "category",
                                                "evidence"
                                              ],
                                              "additionalProperties": false
                                            }
                                          },
                                          "uncertainties": {
                                            "type": "array",
                                            "items": {
                                              "type": "string"
                                            }
                                          }
                                        },
                                        "required": [
                                          "version",
                                          "archetype",
                                          "archetypeRevision",
                                          "purpose",
                                          "capacity",
                                          "style",
                                          "zones",
                                          "needs",
                                          "rules",
                                          "architecture",
                                          "exclusions",
                                          "uncertainties"
                                        ],
                                        "additionalProperties": false
                                      },
                                      "bindings": {
                                        "type": "object",
                                        "properties": {},
                                        "required": [],
                                        "additionalProperties": {
                                          "type": "string"
                                        }
                                      }
                                    },
                                    "required": [
                                      "intent",
                                      "archetypeSnapshot",
                                      "bindings"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "version": {
                                    "const": "qway.furnishing/1",
                                    "type": "string"
                                  },
                                  "purpose": {
                                    "type": "string"
                                  },
                                  "capacity": {
                                    "type": "number"
                                  },
                                  "style": {
                                    "type": "string"
                                  },
                                  "needs": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "identity": {
                                          "type": "string"
                                        },
                                        "category": {
                                          "type": "string"
                                        },
                                        "quantity": {
                                          "type": "number"
                                        },
                                        "capacity": {
                                          "anyOf": [
                                            {
                                              "type": "null"
                                            },
                                            {
                                              "type": "number"
                                            }
                                          ]
                                        },
                                        "assetAlias": {
                                          "anyOf": [
                                            {
                                              "type": "null"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ]
                                        },
                                        "placement": {
                                          "anyOf": [
                                            {
                                              "const": "center",
                                              "type": "string"
                                            },
                                            {
                                              "const": "auto",
                                              "type": "string"
                                            },
                                            {
                                              "const": "perimeter",
                                              "type": "string"
                                            }
                                          ]
                                        },
                                        "relation": {
                                          "anyOf": [
                                            {
                                              "type": "null"
                                            },
                                            {
                                              "const": "on",
                                              "type": "string"
                                            },
                                            {
                                              "const": "seating",
                                              "type": "string"
                                            },
                                            {
                                              "const": "near-window",
                                              "type": "string"
                                            }
                                          ]
                                        },
                                        "target": {
                                          "anyOf": [
                                            {
                                              "type": "null"
                                            },
                                            {
                                              "type": "string"
                                            }
                                          ]
                                        },
                                        "instances": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": "string"
                                            }
                                          }
                                        }
                                      },
                                      "required": [
                                        "identity",
                                        "category",
                                        "quantity",
                                        "capacity",
                                        "assetAlias",
                                        "placement",
                                        "relation",
                                        "target",
                                        "instances"
                                      ],
                                      "additionalProperties": false
                                    }
                                  }
                                },
                                "required": [
                                  "version",
                                  "purpose",
                                  "capacity",
                                  "style",
                                  "needs"
                                ],
                                "additionalProperties": false
                              },
                              "identity": {
                                "type": "string"
                              },
                              "alias": {
                                "type": "string",
                                "maxLength": 100
                              },
                              "label": {
                                "type": "string",
                                "maxLength": 200
                              },
                              "level": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "parent": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "size": {
                                "type": "array",
                                "prefixItems": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  }
                                ],
                                "minItems": 3,
                                "maxItems": 3,
                                "items": false
                              },
                              "frame": {
                                "type": "object",
                                "properties": {
                                  "position": {
                                    "type": "array",
                                    "prefixItems": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "number"
                                      }
                                    ],
                                    "minItems": 3,
                                    "maxItems": 3,
                                    "items": false
                                  },
                                  "quaternion": {
                                    "type": "array",
                                    "prefixItems": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "number"
                                      }
                                    ],
                                    "minItems": 4,
                                    "maxItems": 4,
                                    "items": false
                                  }
                                },
                                "required": [
                                  "position",
                                  "quaternion"
                                ],
                                "additionalProperties": false
                              },
                              "backdrop": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "materialId": {
                                        "type": "string"
                                      },
                                      "identity": {
                                        "type": "string"
                                      },
                                      "semantic": {
                                        "type": "string",
                                        "maxLength": 200
                                      },
                                      "source": {
                                        "anyOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "const": "image",
                                                "type": "string"
                                              },
                                              "assetId": {
                                                "type": "string"
                                              },
                                              "uri": {
                                                "type": "string"
                                              },
                                              "mediaType": {
                                                "anyOf": [
                                                  {
                                                    "const": "image/png",
                                                    "type": "string"
                                                  },
                                                  {
                                                    "const": "image/jpeg",
                                                    "type": "string"
                                                  },
                                                  {
                                                    "const": "image/webp",
                                                    "type": "string"
                                                  }
                                                ]
                                              },
                                              "sha256": {
                                                "type": "string"
                                              },
                                              "byteLength": {
                                                "type": "number"
                                              }
                                            },
                                            "required": [
                                              "kind",
                                              "assetId",
                                              "uri",
                                              "mediaType",
                                              "sha256",
                                              "byteLength"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "const": "asset",
                                                "type": "string"
                                              },
                                              "uri": {
                                                "type": "null"
                                              },
                                              "assetId": {
                                                "type": "string"
                                              }
                                            },
                                            "required": [
                                              "kind",
                                              "uri",
                                              "assetId"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      },
                                      "side": {
                                        "anyOf": [
                                          {
                                            "const": "north",
                                            "type": "string"
                                          },
                                          {
                                            "const": "south",
                                            "type": "string"
                                          },
                                          {
                                            "const": "east",
                                            "type": "string"
                                          },
                                          {
                                            "const": "west",
                                            "type": "string"
                                          }
                                        ]
                                      },
                                      "mode": {
                                        "const": "architectural",
                                        "type": "string"
                                      },
                                      "fit": {
                                        "anyOf": [
                                          {
                                            "const": "cover",
                                            "type": "string"
                                          },
                                          {
                                            "const": "contain",
                                            "type": "string"
                                          }
                                        ]
                                      },
                                      "projection": {
                                        "const": "flat",
                                        "type": "string"
                                      },
                                      "distance": {
                                        "type": "number"
                                      },
                                      "lighting": {
                                        "anyOf": [
                                          {
                                            "const": "unlit",
                                            "type": "string"
                                          },
                                          {
                                            "const": "lit",
                                            "type": "string"
                                          }
                                        ]
                                      },
                                      "enabled": {
                                        "anyOf": [
                                          {
                                            "const": false,
                                            "type": "boolean"
                                          },
                                          {
                                            "const": true,
                                            "type": "boolean"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "identity",
                                      "semantic",
                                      "source",
                                      "side",
                                      "mode",
                                      "fit",
                                      "projection",
                                      "distance",
                                      "lighting",
                                      "enabled"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "north": {
                                        "type": "object",
                                        "properties": {
                                          "materialId": {
                                            "type": "string"
                                          },
                                          "identity": {
                                            "type": "string"
                                          },
                                          "semantic": {
                                            "type": "string",
                                            "maxLength": 200
                                          },
                                          "source": {
                                            "anyOf": [
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "const": "image",
                                                    "type": "string"
                                                  },
                                                  "assetId": {
                                                    "type": "string"
                                                  },
                                                  "uri": {
                                                    "type": "string"
                                                  },
                                                  "mediaType": {
                                                    "anyOf": [
                                                      {
                                                        "const": "image/png",
                                                        "type": "string"
                                                      },
                                                      {
                                                        "const": "image/jpeg",
                                                        "type": "string"
                                                      },
                                                      {
                                                        "const": "image/webp",
                                                        "type": "string"
                                                      }
                                                    ]
                                                  },
                                                  "sha256": {
                                                    "type": "string"
                                                  },
                                                  "byteLength": {
                                                    "type": "number"
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "assetId",
                                                  "uri",
                                                  "mediaType",
                                                  "sha256",
                                                  "byteLength"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "const": "asset",
                                                    "type": "string"
                                                  },
                                                  "uri": {
                                                    "type": "null"
                                                  },
                                                  "assetId": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "uri",
                                                  "assetId"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          },
                                          "side": {
                                            "anyOf": [
                                              {
                                                "const": "north",
                                                "type": "string"
                                              },
                                              {
                                                "const": "south",
                                                "type": "string"
                                              },
                                              {
                                                "const": "east",
                                                "type": "string"
                                              },
                                              {
                                                "const": "west",
                                                "type": "string"
                                              }
                                            ]
                                          },
                                          "mode": {
                                            "const": "architectural",
                                            "type": "string"
                                          },
                                          "fit": {
                                            "anyOf": [
                                              {
                                                "const": "cover",
                                                "type": "string"
                                              },
                                              {
                                                "const": "contain",
                                                "type": "string"
                                              }
                                            ]
                                          },
                                          "projection": {
                                            "const": "flat",
                                            "type": "string"
                                          },
                                          "distance": {
                                            "type": "number"
                                          },
                                          "lighting": {
                                            "anyOf": [
                                              {
                                                "const": "unlit",
                                                "type": "string"
                                              },
                                              {
                                                "const": "lit",
                                                "type": "string"
                                              }
                                            ]
                                          },
                                          "enabled": {
                                            "anyOf": [
                                              {
                                                "const": false,
                                                "type": "boolean"
                                              },
                                              {
                                                "const": true,
                                                "type": "boolean"
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "identity",
                                          "semantic",
                                          "source",
                                          "side",
                                          "mode",
                                          "fit",
                                          "projection",
                                          "distance",
                                          "lighting",
                                          "enabled"
                                        ],
                                        "additionalProperties": false
                                      },
                                      "south": {
                                        "type": "object",
                                        "properties": {
                                          "materialId": {
                                            "type": "string"
                                          },
                                          "identity": {
                                            "type": "string"
                                          },
                                          "semantic": {
                                            "type": "string",
                                            "maxLength": 200
                                          },
                                          "source": {
                                            "anyOf": [
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "const": "image",
                                                    "type": "string"
                                                  },
                                                  "assetId": {
                                                    "type": "string"
                                                  },
                                                  "uri": {
                                                    "type": "string"
                                                  },
                                                  "mediaType": {
                                                    "anyOf": [
                                                      {
                                                        "const": "image/png",
                                                        "type": "string"
                                                      },
                                                      {
                                                        "const": "image/jpeg",
                                                        "type": "string"
                                                      },
                                                      {
                                                        "const": "image/webp",
                                                        "type": "string"
                                                      }
                                                    ]
                                                  },
                                                  "sha256": {
                                                    "type": "string"
                                                  },
                                                  "byteLength": {
                                                    "type": "number"
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "assetId",
                                                  "uri",
                                                  "mediaType",
                                                  "sha256",
                                                  "byteLength"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "const": "asset",
                                                    "type": "string"
                                                  },
                                                  "uri": {
                                                    "type": "null"
                                                  },
                                                  "assetId": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "uri",
                                                  "assetId"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          },
                                          "side": {
                                            "anyOf": [
                                              {
                                                "const": "north",
                                                "type": "string"
                                              },
                                              {
                                                "const": "south",
                                                "type": "string"
                                              },
                                              {
                                                "const": "east",
                                                "type": "string"
                                              },
                                              {
                                                "const": "west",
                                                "type": "string"
                                              }
                                            ]
                                          },
                                          "mode": {
                                            "const": "architectural",
                                            "type": "string"
                                          },
                                          "fit": {
                                            "anyOf": [
                                              {
                                                "const": "cover",
                                                "type": "string"
                                              },
                                              {
                                                "const": "contain",
                                                "type": "string"
                                              }
                                            ]
                                          },
                                          "projection": {
                                            "const": "flat",
                                            "type": "string"
                                          },
                                          "distance": {
                                            "type": "number"
                                          },
                                          "lighting": {
                                            "anyOf": [
                                              {
                                                "const": "unlit",
                                                "type": "string"
                                              },
                                              {
                                                "const": "lit",
                                                "type": "string"
                                              }
                                            ]
                                          },
                                          "enabled": {
                                            "anyOf": [
                                              {
                                                "const": false,
                                                "type": "boolean"
                                              },
                                              {
                                                "const": true,
                                                "type": "boolean"
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "identity",
                                          "semantic",
                                          "source",
                                          "side",
                                          "mode",
                                          "fit",
                                          "projection",
                                          "distance",
                                          "lighting",
                                          "enabled"
                                        ],
                                        "additionalProperties": false
                                      },
                                      "east": {
                                        "type": "object",
                                        "properties": {
                                          "materialId": {
                                            "type": "string"
                                          },
                                          "identity": {
                                            "type": "string"
                                          },
                                          "semantic": {
                                            "type": "string",
                                            "maxLength": 200
                                          },
                                          "source": {
                                            "anyOf": [
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "const": "image",
                                                    "type": "string"
                                                  },
                                                  "assetId": {
                                                    "type": "string"
                                                  },
                                                  "uri": {
                                                    "type": "string"
                                                  },
                                                  "mediaType": {
                                                    "anyOf": [
                                                      {
                                                        "const": "image/png",
                                                        "type": "string"
                                                      },
                                                      {
                                                        "const": "image/jpeg",
                                                        "type": "string"
                                                      },
                                                      {
                                                        "const": "image/webp",
                                                        "type": "string"
                                                      }
                                                    ]
                                                  },
                                                  "sha256": {
                                                    "type": "string"
                                                  },
                                                  "byteLength": {
                                                    "type": "number"
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "assetId",
                                                  "uri",
                                                  "mediaType",
                                                  "sha256",
                                                  "byteLength"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "const": "asset",
                                                    "type": "string"
                                                  },
                                                  "uri": {
                                                    "type": "null"
                                                  },
                                                  "assetId": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "uri",
                                                  "assetId"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          },
                                          "side": {
                                            "anyOf": [
                                              {
                                                "const": "north",
                                                "type": "string"
                                              },
                                              {
                                                "const": "south",
                                                "type": "string"
                                              },
                                              {
                                                "const": "east",
                                                "type": "string"
                                              },
                                              {
                                                "const": "west",
                                                "type": "string"
                                              }
                                            ]
                                          },
                                          "mode": {
                                            "const": "architectural",
                                            "type": "string"
                                          },
                                          "fit": {
                                            "anyOf": [
                                              {
                                                "const": "cover",
                                                "type": "string"
                                              },
                                              {
                                                "const": "contain",
                                                "type": "string"
                                              }
                                            ]
                                          },
                                          "projection": {
                                            "const": "flat",
                                            "type": "string"
                                          },
                                          "distance": {
                                            "type": "number"
                                          },
                                          "lighting": {
                                            "anyOf": [
                                              {
                                                "const": "unlit",
                                                "type": "string"
                                              },
                                              {
                                                "const": "lit",
                                                "type": "string"
                                              }
                                            ]
                                          },
                                          "enabled": {
                                            "anyOf": [
                                              {
                                                "const": false,
                                                "type": "boolean"
                                              },
                                              {
                                                "const": true,
                                                "type": "boolean"
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "identity",
                                          "semantic",
                                          "source",
                                          "side",
                                          "mode",
                                          "fit",
                                          "projection",
                                          "distance",
                                          "lighting",
                                          "enabled"
                                        ],
                                        "additionalProperties": false
                                      },
                                      "west": {
                                        "type": "object",
                                        "properties": {
                                          "materialId": {
                                            "type": "string"
                                          },
                                          "identity": {
                                            "type": "string"
                                          },
                                          "semantic": {
                                            "type": "string",
                                            "maxLength": 200
                                          },
                                          "source": {
                                            "anyOf": [
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "const": "image",
                                                    "type": "string"
                                                  },
                                                  "assetId": {
                                                    "type": "string"
                                                  },
                                                  "uri": {
                                                    "type": "string"
                                                  },
                                                  "mediaType": {
                                                    "anyOf": [
                                                      {
                                                        "const": "image/png",
                                                        "type": "string"
                                                      },
                                                      {
                                                        "const": "image/jpeg",
                                                        "type": "string"
                                                      },
                                                      {
                                                        "const": "image/webp",
                                                        "type": "string"
                                                      }
                                                    ]
                                                  },
                                                  "sha256": {
                                                    "type": "string"
                                                  },
                                                  "byteLength": {
                                                    "type": "number"
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "assetId",
                                                  "uri",
                                                  "mediaType",
                                                  "sha256",
                                                  "byteLength"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "const": "asset",
                                                    "type": "string"
                                                  },
                                                  "uri": {
                                                    "type": "null"
                                                  },
                                                  "assetId": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "uri",
                                                  "assetId"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          },
                                          "side": {
                                            "anyOf": [
                                              {
                                                "const": "north",
                                                "type": "string"
                                              },
                                              {
                                                "const": "south",
                                                "type": "string"
                                              },
                                              {
                                                "const": "east",
                                                "type": "string"
                                              },
                                              {
                                                "const": "west",
                                                "type": "string"
                                              }
                                            ]
                                          },
                                          "mode": {
                                            "const": "architectural",
                                            "type": "string"
                                          },
                                          "fit": {
                                            "anyOf": [
                                              {
                                                "const": "cover",
                                                "type": "string"
                                              },
                                              {
                                                "const": "contain",
                                                "type": "string"
                                              }
                                            ]
                                          },
                                          "projection": {
                                            "const": "flat",
                                            "type": "string"
                                          },
                                          "distance": {
                                            "type": "number"
                                          },
                                          "lighting": {
                                            "anyOf": [
                                              {
                                                "const": "unlit",
                                                "type": "string"
                                              },
                                              {
                                                "const": "lit",
                                                "type": "string"
                                              }
                                            ]
                                          },
                                          "enabled": {
                                            "anyOf": [
                                              {
                                                "const": false,
                                                "type": "boolean"
                                              },
                                              {
                                                "const": true,
                                                "type": "boolean"
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "identity",
                                          "semantic",
                                          "source",
                                          "side",
                                          "mode",
                                          "fit",
                                          "projection",
                                          "distance",
                                          "lighting",
                                          "enabled"
                                        ],
                                        "additionalProperties": false
                                      }
                                    },
                                    "required": [],
                                    "additionalProperties": false
                                  }
                                ]
                              }
                            },
                            "required": [
                              "identity",
                              "alias",
                              "label",
                              "level",
                              "parent",
                              "size",
                              "frame"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "levels": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "identity": {
                                "type": "string"
                              },
                              "label": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "identity",
                              "label"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "portals": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "identity": {
                                "type": "string"
                              },
                              "alias": {
                                "type": "string",
                                "maxLength": 100
                              },
                              "from": {
                                "type": "string"
                              },
                              "to": {
                                "type": "string"
                              },
                              "frame": {
                                "type": "object",
                                "properties": {
                                  "position": {
                                    "type": "array",
                                    "prefixItems": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "number"
                                      }
                                    ],
                                    "minItems": 3,
                                    "maxItems": 3,
                                    "items": false
                                  },
                                  "quaternion": {
                                    "type": "array",
                                    "prefixItems": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "number"
                                      }
                                    ],
                                    "minItems": 4,
                                    "maxItems": 4,
                                    "items": false
                                  }
                                },
                                "required": [
                                  "position",
                                  "quaternion"
                                ],
                                "additionalProperties": false
                              },
                              "width": {
                                "type": "number"
                              },
                              "height": {
                                "type": "number"
                              },
                              "traversable": {
                                "anyOf": [
                                  {
                                    "const": false,
                                    "type": "boolean"
                                  },
                                  {
                                    "const": true,
                                    "type": "boolean"
                                  }
                                ]
                              },
                              "door": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "identity",
                              "alias",
                              "from",
                              "to",
                              "frame",
                              "width",
                              "height",
                              "traversable",
                              "door"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "entrances": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "identity": {
                                "type": "string"
                              },
                              "alias": {
                                "type": "string",
                                "maxLength": 100
                              },
                              "room": {
                                "type": "string"
                              },
                              "frame": {
                                "type": "object",
                                "properties": {
                                  "position": {
                                    "type": "array",
                                    "prefixItems": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "number"
                                      }
                                    ],
                                    "minItems": 3,
                                    "maxItems": 3,
                                    "items": false
                                  },
                                  "quaternion": {
                                    "type": "array",
                                    "prefixItems": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "number"
                                      }
                                    ],
                                    "minItems": 4,
                                    "maxItems": 4,
                                    "items": false
                                  }
                                },
                                "required": [
                                  "position",
                                  "quaternion"
                                ],
                                "additionalProperties": false
                              },
                              "width": {
                                "type": "number"
                              },
                              "height": {
                                "type": "number"
                              },
                              "traversable": {
                                "anyOf": [
                                  {
                                    "const": false,
                                    "type": "boolean"
                                  },
                                  {
                                    "const": true,
                                    "type": "boolean"
                                  }
                                ]
                              },
                              "door": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "identity",
                              "alias",
                              "room",
                              "frame",
                              "width",
                              "height",
                              "traversable",
                              "door"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "membership": {
                          "type": "object",
                          "properties": {},
                          "required": [],
                          "additionalProperties": {
                            "type": "string"
                          }
                        }
                      },
                      "required": [
                        "version",
                        "identity",
                        "rooms",
                        "levels",
                        "portals",
                        "membership"
                      ],
                      "additionalProperties": false
                    },
                    "worldFrames": {
                      "type": "object",
                      "properties": {},
                      "required": [],
                      "additionalProperties": {
                        "type": "object",
                        "properties": {
                          "position": {
                            "type": "array",
                            "prefixItems": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "number"
                              },
                              {
                                "type": "number"
                              }
                            ],
                            "minItems": 3,
                            "maxItems": 3,
                            "items": false
                          },
                          "quaternion": {
                            "type": "array",
                            "prefixItems": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "number"
                              },
                              {
                                "type": "number"
                              },
                              {
                                "type": "number"
                              }
                            ],
                            "minItems": 4,
                            "maxItems": 4,
                            "items": false
                          }
                        },
                        "required": [
                          "position",
                          "quaternion"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "localPoses": {
                      "type": "object",
                      "properties": {},
                      "required": [],
                      "additionalProperties": {
                        "type": "object",
                        "properties": {
                          "position": {
                            "type": "array",
                            "prefixItems": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "number"
                              },
                              {
                                "type": "number"
                              }
                            ],
                            "minItems": 3,
                            "maxItems": 3,
                            "items": false
                          },
                          "quaternion": {
                            "type": "array",
                            "prefixItems": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "number"
                              },
                              {
                                "type": "number"
                              },
                              {
                                "type": "number"
                              }
                            ],
                            "minItems": 4,
                            "maxItems": 4,
                            "items": false
                          },
                          "scale": {
                            "type": "array",
                            "prefixItems": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "number"
                              },
                              {
                                "type": "number"
                              }
                            ],
                            "minItems": 3,
                            "maxItems": 3,
                            "items": false
                          }
                        },
                        "required": [
                          "position",
                          "quaternion",
                          "scale"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "programVerification": {
                      "type": "object",
                      "properties": {
                        "policy": {
                          "anyOf": [
                            {
                              "const": "qway.room-program-geometry/1",
                              "type": "string"
                            },
                            {
                              "const": "qway.room-program-geometry/2",
                              "type": "string"
                            },
                            {
                              "const": "qway.room-program-geometry/3",
                              "type": "string"
                            }
                          ]
                        },
                        "actor": {
                          "type": "object",
                          "properties": {
                            "radiusM": {
                              "type": "number"
                            },
                            "heightM": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "radiusM",
                            "heightM"
                          ],
                          "additionalProperties": false
                        },
                        "rooms": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "room": {
                                "type": "string"
                              },
                              "archetypeRevision": {
                                "type": "string"
                              },
                              "layout": {
                                "type": "object",
                                "properties": {
                                  "policy": {
                                    "const": "qway.room-program-layout/1",
                                    "type": "string"
                                  },
                                  "strategy": {
                                    "const": "bounded-geometric-search",
                                    "type": "string"
                                  },
                                  "candidateBudget": {
                                    "type": "number"
                                  },
                                  "candidatesTested": {
                                    "type": "number"
                                  },
                                  "passesPerformed": {
                                    "type": "number"
                                  },
                                  "initialRules": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "reference": {
                                          "type": "string"
                                        },
                                        "status": {
                                          "anyOf": [
                                            {
                                              "const": "unsupported",
                                              "type": "string"
                                            },
                                            {
                                              "const": "satisfied",
                                              "type": "string"
                                            },
                                            {
                                              "const": "failed",
                                              "type": "string"
                                            },
                                            {
                                              "const": "unknown",
                                              "type": "string"
                                            }
                                          ]
                                        }
                                      },
                                      "required": [
                                        "reference",
                                        "status"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "changedInstances": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "relaxedConstraints": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "termination": {
                                    "anyOf": [
                                      {
                                        "const": "stationary",
                                        "type": "string"
                                      },
                                      {
                                        "const": "budget-exhausted",
                                        "type": "string"
                                      },
                                      {
                                        "const": "pass-limit",
                                        "type": "string"
                                      },
                                      {
                                        "const": "zero-score",
                                        "type": "string"
                                      }
                                    ]
                                  }
                                },
                                "required": [
                                  "policy",
                                  "strategy",
                                  "candidateBudget",
                                  "candidatesTested",
                                  "passesPerformed",
                                  "initialRules",
                                  "changedInstances",
                                  "relaxedConstraints",
                                  "termination"
                                ],
                                "additionalProperties": false
                              },
                              "inventory": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "reference": {
                                      "type": "string"
                                    },
                                    "priority": {
                                      "anyOf": [
                                        {
                                          "const": "required",
                                          "type": "string"
                                        },
                                        {
                                          "const": "recommended",
                                          "type": "string"
                                        },
                                        {
                                          "const": "optional",
                                          "type": "string"
                                        }
                                      ]
                                    },
                                    "requestedUnits": {
                                      "type": "number"
                                    },
                                    "resolvedUnits": {
                                      "type": "number"
                                    },
                                    "status": {
                                      "anyOf": [
                                        {
                                          "const": "unsupported",
                                          "type": "string"
                                        },
                                        {
                                          "const": "satisfied",
                                          "type": "string"
                                        },
                                        {
                                          "const": "failed",
                                          "type": "string"
                                        },
                                        {
                                          "const": "unknown",
                                          "type": "string"
                                        }
                                      ]
                                    }
                                  },
                                  "required": [
                                    "reference",
                                    "priority",
                                    "requestedUnits",
                                    "resolvedUnits",
                                    "status"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "rules": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "reference": {
                                      "type": "string"
                                    },
                                    "kind": {
                                      "anyOf": [
                                        {
                                          "const": "on",
                                          "type": "string"
                                        },
                                        {
                                          "const": "seating",
                                          "type": "string"
                                        },
                                        {
                                          "const": "beside",
                                          "type": "string"
                                        },
                                        {
                                          "const": "facing",
                                          "type": "string"
                                        },
                                        {
                                          "const": "near-window",
                                          "type": "string"
                                        },
                                        {
                                          "const": "wall-alignment",
                                          "type": "string"
                                        },
                                        {
                                          "const": "interior",
                                          "type": "string"
                                        },
                                        {
                                          "const": "access",
                                          "type": "string"
                                        },
                                        {
                                          "const": "visibility",
                                          "type": "string"
                                        },
                                        {
                                          "const": "clearance",
                                          "type": "string"
                                        },
                                        {
                                          "const": "circulation",
                                          "type": "string"
                                        },
                                        {
                                          "const": "minimum-dimensions",
                                          "type": "string"
                                        },
                                        {
                                          "const": "unsupported",
                                          "type": "string"
                                        }
                                      ]
                                    },
                                    "priority": {
                                      "anyOf": [
                                        {
                                          "const": "required",
                                          "type": "string"
                                        },
                                        {
                                          "const": "recommended",
                                          "type": "string"
                                        },
                                        {
                                          "const": "optional",
                                          "type": "string"
                                        }
                                      ]
                                    },
                                    "strength": {
                                      "anyOf": [
                                        {
                                          "const": "hard",
                                          "type": "string"
                                        },
                                        {
                                          "const": "soft",
                                          "type": "string"
                                        }
                                      ]
                                    },
                                    "status": {
                                      "anyOf": [
                                        {
                                          "const": "unsupported",
                                          "type": "string"
                                        },
                                        {
                                          "const": "satisfied",
                                          "type": "string"
                                        },
                                        {
                                          "const": "failed",
                                          "type": "string"
                                        },
                                        {
                                          "const": "unknown",
                                          "type": "string"
                                        }
                                      ]
                                    },
                                    "message": {
                                      "type": "string",
                                      "maxLength": 2000
                                    },
                                    "pairs": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "subject": {
                                            "type": "string"
                                          },
                                          "target": {
                                            "anyOf": [
                                              {
                                                "type": "null"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          },
                                          "status": {
                                            "anyOf": [
                                              {
                                                "const": "unsupported",
                                                "type": "string"
                                              },
                                              {
                                                "const": "satisfied",
                                                "type": "string"
                                              },
                                              {
                                                "const": "failed",
                                                "type": "string"
                                              },
                                              {
                                                "const": "unknown",
                                                "type": "string"
                                              }
                                            ]
                                          },
                                          "message": {
                                            "type": "string",
                                            "maxLength": 2000
                                          },
                                          "residuals": {
                                            "type": "object",
                                            "properties": {},
                                            "required": [],
                                            "additionalProperties": {
                                              "type": "number"
                                            }
                                          }
                                        },
                                        "required": [
                                          "subject",
                                          "target",
                                          "status",
                                          "message",
                                          "residuals"
                                        ],
                                        "additionalProperties": false
                                      }
                                    }
                                  },
                                  "required": [
                                    "reference",
                                    "kind",
                                    "priority",
                                    "strength",
                                    "status",
                                    "message",
                                    "pairs"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "architecture": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "reference": {
                                      "type": "string"
                                    },
                                    "kind": {
                                      "anyOf": [
                                        {
                                          "const": "window",
                                          "type": "string"
                                        },
                                        {
                                          "const": "portal",
                                          "type": "string"
                                        },
                                        {
                                          "const": "wall-run",
                                          "type": "string"
                                        },
                                        {
                                          "const": "open-center",
                                          "type": "string"
                                        },
                                        {
                                          "const": "natural-light",
                                          "type": "string"
                                        },
                                        {
                                          "const": "ceiling-light",
                                          "type": "string"
                                        }
                                      ]
                                    },
                                    "priority": {
                                      "anyOf": [
                                        {
                                          "const": "required",
                                          "type": "string"
                                        },
                                        {
                                          "const": "recommended",
                                          "type": "string"
                                        },
                                        {
                                          "const": "optional",
                                          "type": "string"
                                        }
                                      ]
                                    },
                                    "requested": {
                                      "type": "number"
                                    },
                                    "verified": {
                                      "type": "number"
                                    },
                                    "status": {
                                      "anyOf": [
                                        {
                                          "const": "unsupported",
                                          "type": "string"
                                        },
                                        {
                                          "const": "satisfied",
                                          "type": "string"
                                        },
                                        {
                                          "const": "failed",
                                          "type": "string"
                                        },
                                        {
                                          "const": "unknown",
                                          "type": "string"
                                        }
                                      ]
                                    },
                                    "message": {
                                      "type": "string",
                                      "maxLength": 2000
                                    }
                                  },
                                  "required": [
                                    "reference",
                                    "kind",
                                    "priority",
                                    "requested",
                                    "verified",
                                    "status",
                                    "message"
                                  ],
                                  "additionalProperties": false
                                }
                              }
                            },
                            "required": [
                              "room",
                              "archetypeRevision",
                              "inventory",
                              "rules",
                              "architecture"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "policy",
                        "actor",
                        "rooms"
                      ],
                      "additionalProperties": false
                    },
                    "verification": {
                      "type": "object",
                      "properties": {
                        "policy": {
                          "const": "wright.portal-geometry/1",
                          "type": "string"
                        },
                        "actor": {
                          "type": "object",
                          "properties": {
                            "radius": {
                              "type": "number"
                            },
                            "height": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "radius",
                            "height"
                          ],
                          "additionalProperties": false
                        },
                        "portals": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "identity": {
                                "type": "string"
                              },
                              "requestedAperture": {
                                "anyOf": [
                                  {
                                    "const": "unknown",
                                    "type": "string"
                                  },
                                  {
                                    "const": "clear",
                                    "type": "string"
                                  },
                                  {
                                    "const": "collision",
                                    "type": "string"
                                  }
                                ]
                              },
                              "actorPassage": {
                                "anyOf": [
                                  {
                                    "const": "unknown",
                                    "type": "string"
                                  },
                                  {
                                    "const": "clear",
                                    "type": "string"
                                  },
                                  {
                                    "const": "collision",
                                    "type": "string"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "identity",
                              "requestedAperture",
                              "actorPassage"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "entrances": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "identity": {
                                "type": "string"
                              },
                              "requestedAperture": {
                                "anyOf": [
                                  {
                                    "const": "unknown",
                                    "type": "string"
                                  },
                                  {
                                    "const": "clear",
                                    "type": "string"
                                  },
                                  {
                                    "const": "collision",
                                    "type": "string"
                                  }
                                ]
                              },
                              "actorPassage": {
                                "anyOf": [
                                  {
                                    "const": "unknown",
                                    "type": "string"
                                  },
                                  {
                                    "const": "clear",
                                    "type": "string"
                                  },
                                  {
                                    "const": "collision",
                                    "type": "string"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "identity",
                              "requestedAperture",
                              "actorPassage"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "circulation": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "room": {
                                "type": "string"
                              },
                              "status": {
                                "anyOf": [
                                  {
                                    "const": "unsupported",
                                    "type": "string"
                                  },
                                  {
                                    "const": "ready",
                                    "type": "string"
                                  },
                                  {
                                    "const": "unresolved",
                                    "type": "string"
                                  },
                                  {
                                    "const": "not-requested",
                                    "type": "string"
                                  }
                                ]
                              },
                              "entryCount": {
                                "type": "number"
                              },
                              "reachableSamples": {
                                "type": "number"
                              },
                              "routeOutcomes": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            },
                            "required": [
                              "room",
                              "status",
                              "entryCount",
                              "reachableSamples",
                              "routeOutcomes"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "navigationBoxes": {
                          "type": "object",
                          "properties": {},
                          "required": [],
                          "additionalProperties": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "min": {
                                  "type": "array",
                                  "prefixItems": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "number"
                                    }
                                  ],
                                  "minItems": 3,
                                  "maxItems": 3,
                                  "items": false
                                },
                                "max": {
                                  "type": "array",
                                  "prefixItems": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "number"
                                    }
                                  ],
                                  "minItems": 3,
                                  "maxItems": 3,
                                  "items": false
                                }
                              },
                              "required": [
                                "min",
                                "max"
                              ],
                              "additionalProperties": false
                            }
                          }
                        }
                      },
                      "required": [
                        "policy",
                        "actor",
                        "portals",
                        "circulation",
                        "navigationBoxes"
                      ],
                      "additionalProperties": false
                    },
                    "diagnostics": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "code": {
                            "type": "string"
                          },
                          "severity": {
                            "anyOf": [
                              {
                                "const": "error",
                                "type": "string"
                              },
                              {
                                "const": "warning",
                                "type": "string"
                              }
                            ]
                          },
                          "identity": {
                            "anyOf": [
                              {
                                "type": "null"
                              },
                              {
                                "type": "string"
                              }
                            ]
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "code",
                          "severity",
                          "identity",
                          "message"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "version",
                    "topology",
                    "worldFrames",
                    "localPoses",
                    "diagnostics"
                  ],
                  "additionalProperties": false
                },
                "schema": {
                  "const": "quay.scene",
                  "type": "string"
                },
                "schemaVersion": {
                  "const": "2.0.0-draft.1",
                  "type": "string"
                },
                "semantic": {
                  "type": "object",
                  "properties": {
                    "materials": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "version": {
                            "const": "quay.material/1",
                            "type": "string"
                          },
                          "identity": {
                            "type": "string"
                          },
                          "alias": {
                            "type": "string"
                          },
                          "label": {
                            "type": "string"
                          },
                          "description": {
                            "type": "string"
                          },
                          "category": {
                            "anyOf": [
                              {
                                "const": "glass",
                                "type": "string"
                              },
                              {
                                "const": "generic",
                                "type": "string"
                              },
                              {
                                "const": "wood",
                                "type": "string"
                              },
                              {
                                "const": "metal",
                                "type": "string"
                              },
                              {
                                "const": "stone",
                                "type": "string"
                              },
                              {
                                "const": "concrete",
                                "type": "string"
                              },
                              {
                                "const": "ceramic",
                                "type": "string"
                              },
                              {
                                "const": "fabric",
                                "type": "string"
                              },
                              {
                                "const": "paper",
                                "type": "string"
                              },
                              {
                                "const": "plastic",
                                "type": "string"
                              },
                              {
                                "const": "paint",
                                "type": "string"
                              }
                            ]
                          },
                          "shader": {
                            "anyOf": [
                              {
                                "const": "unlit",
                                "type": "string"
                              },
                              {
                                "const": "standard",
                                "type": "string"
                              }
                            ]
                          },
                          "color": {
                            "type": "string"
                          },
                          "roughness": {
                            "type": "number"
                          },
                          "metalness": {
                            "type": "number"
                          },
                          "emissive": {
                            "type": "string"
                          },
                          "emissiveIntensity": {
                            "type": "number"
                          },
                          "opacity": {
                            "type": "number"
                          },
                          "alphaMode": {
                            "anyOf": [
                              {
                                "const": "opaque",
                                "type": "string"
                              },
                              {
                                "const": "mask",
                                "type": "string"
                              },
                              {
                                "const": "blend",
                                "type": "string"
                              }
                            ]
                          },
                          "alphaCutoff": {
                            "type": "number"
                          },
                          "side": {
                            "anyOf": [
                              {
                                "const": "back",
                                "type": "string"
                              },
                              {
                                "const": "front",
                                "type": "string"
                              },
                              {
                                "const": "double",
                                "type": "string"
                              }
                            ]
                          },
                          "preset": {
                            "anyOf": [
                              {
                                "type": "null"
                              },
                              {
                                "type": "string"
                              }
                            ]
                          },
                          "maps": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "slot": {
                                  "anyOf": [
                                    {
                                      "const": "color",
                                      "type": "string"
                                    },
                                    {
                                      "const": "normal",
                                      "type": "string"
                                    },
                                    {
                                      "const": "roughness",
                                      "type": "string"
                                    },
                                    {
                                      "const": "metalness",
                                      "type": "string"
                                    },
                                    {
                                      "const": "emissive",
                                      "type": "string"
                                    },
                                    {
                                      "const": "occlusion",
                                      "type": "string"
                                    },
                                    {
                                      "const": "alpha",
                                      "type": "string"
                                    }
                                  ]
                                },
                                "image": {
                                  "type": "object",
                                  "properties": {
                                    "assetId": {
                                      "type": "string"
                                    },
                                    "uri": {
                                      "type": "string"
                                    },
                                    "sha256": {
                                      "type": "string"
                                    },
                                    "byteLength": {
                                      "type": "number"
                                    },
                                    "mediaType": {
                                      "anyOf": [
                                        {
                                          "const": "image/png",
                                          "type": "string"
                                        },
                                        {
                                          "const": "image/jpeg",
                                          "type": "string"
                                        },
                                        {
                                          "const": "image/webp",
                                          "type": "string"
                                        }
                                      ]
                                    },
                                    "displayName": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "assetId",
                                    "uri",
                                    "sha256",
                                    "byteLength",
                                    "mediaType",
                                    "displayName"
                                  ],
                                  "additionalProperties": false
                                },
                                "repeat": {
                                  "type": "array",
                                  "prefixItems": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "number"
                                    }
                                  ],
                                  "minItems": 2,
                                  "maxItems": 2,
                                  "items": false
                                },
                                "offset": {
                                  "type": "array",
                                  "prefixItems": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "number"
                                    }
                                  ],
                                  "minItems": 2,
                                  "maxItems": 2,
                                  "items": false
                                },
                                "rotation": {
                                  "type": "number"
                                },
                                "wrap": {
                                  "anyOf": [
                                    {
                                      "const": "repeat",
                                      "type": "string"
                                    },
                                    {
                                      "const": "clamp",
                                      "type": "string"
                                    },
                                    {
                                      "const": "mirror",
                                      "type": "string"
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "slot",
                                "image",
                                "repeat",
                                "offset",
                                "rotation",
                                "wrap"
                              ],
                              "additionalProperties": false
                            }
                          }
                        },
                        "required": [
                          "version",
                          "identity",
                          "alias",
                          "label",
                          "description",
                          "category",
                          "shader",
                          "color",
                          "roughness",
                          "metalness",
                          "emissive",
                          "emissiveIntensity",
                          "opacity",
                          "alphaMode",
                          "alphaCutoff",
                          "side",
                          "preset",
                          "maps"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "assetPolicy": {
                      "const": "project-user-standard",
                      "type": "string"
                    },
                    "composition": {
                      "const": "quay.room-composition/1",
                      "type": "string"
                    },
                    "version": {
                      "const": "quay.semantic/1",
                      "type": "string"
                    },
                    "sceneId": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "seed": {
                      "type": "number"
                    },
                    "room": {
                      "type": "object",
                      "properties": {
                        "identity": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "type": "string"
                            }
                          ]
                        },
                        "size": {
                          "type": "array",
                          "prefixItems": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "number"
                            }
                          ],
                          "minItems": 3,
                          "maxItems": 3,
                          "items": false
                        }
                      },
                      "required": [
                        "identity",
                        "size"
                      ],
                      "additionalProperties": false
                    },
                    "profile": {
                      "anyOf": [
                        {
                          "const": "static",
                          "type": "string"
                        },
                        {
                          "const": "physical",
                          "type": "string"
                        }
                      ]
                    },
                    "objects": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "materialId": {
                            "type": "string"
                          },
                          "region": {
                            "anyOf": [
                              {
                                "const": "center",
                                "type": "string"
                              },
                              {
                                "const": "perimeter",
                                "type": "string"
                              }
                            ]
                          },
                          "actor": {
                            "type": "object",
                            "properties": {
                              "policy": {
                                "const": "quay.actor-box/1",
                                "type": "string"
                              },
                              "size": {
                                "type": "array",
                                "prefixItems": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  }
                                ],
                                "minItems": 3,
                                "maxItems": 3,
                                "items": false
                              },
                              "eye": {
                                "type": "array",
                                "prefixItems": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  }
                                ],
                                "minItems": 3,
                                "maxItems": 3,
                                "items": false
                              },
                              "manipulationOrigin": {
                                "type": "array",
                                "prefixItems": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  }
                                ],
                                "minItems": 3,
                                "maxItems": 3,
                                "items": false
                              },
                              "reachM": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "policy",
                              "size",
                              "eye",
                              "manipulationOrigin",
                              "reachM"
                            ],
                            "additionalProperties": false
                          },
                          "animation": {
                            "type": "object",
                            "properties": {
                              "policy": {
                                "const": "quay.animation/1",
                                "type": "string"
                              },
                              "clipIndex": {
                                "type": "number"
                              },
                              "clipName": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "mode": {
                                "anyOf": [
                                  {
                                    "const": "in-place",
                                    "type": "string"
                                  },
                                  {
                                    "const": "articulated",
                                    "type": "string"
                                  }
                                ]
                              },
                              "speed": {
                                "type": "number"
                              },
                              "loop": {
                                "anyOf": [
                                  {
                                    "const": false,
                                    "type": "boolean"
                                  },
                                  {
                                    "const": true,
                                    "type": "boolean"
                                  }
                                ]
                              },
                              "offsetSeconds": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "policy",
                              "clipIndex",
                              "clipName",
                              "mode",
                              "speed",
                              "loop",
                              "offsetSeconds"
                            ],
                            "additionalProperties": false
                          },
                          "normalization": {
                            "type": "object",
                            "properties": {
                              "rawBounds": {
                                "type": "object",
                                "properties": {
                                  "min": {
                                    "type": "array",
                                    "prefixItems": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "number"
                                      }
                                    ],
                                    "minItems": 3,
                                    "maxItems": 3,
                                    "items": false
                                  },
                                  "max": {
                                    "type": "array",
                                    "prefixItems": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "number"
                                      }
                                    ],
                                    "minItems": 3,
                                    "maxItems": 3,
                                    "items": false
                                  }
                                },
                                "required": [
                                  "min",
                                  "max"
                                ],
                                "additionalProperties": false
                              },
                              "scale": {
                                "type": "array",
                                "prefixItems": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  }
                                ],
                                "minItems": 3,
                                "maxItems": 3,
                                "items": false
                              },
                              "baseOffset": {
                                "type": "array",
                                "prefixItems": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  }
                                ],
                                "minItems": 3,
                                "maxItems": 3,
                                "items": false
                              },
                              "forwardCorrection": {
                                "type": "array",
                                "prefixItems": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  }
                                ],
                                "minItems": 4,
                                "maxItems": 4,
                                "items": false
                              }
                            },
                            "required": [
                              "rawBounds",
                              "scale",
                              "baseOffset",
                              "forwardCorrection"
                            ],
                            "additionalProperties": false
                          },
                          "orientation": {
                            "type": "object",
                            "properties": {
                              "policy": {
                                "anyOf": [
                                  {
                                    "const": "quay.orientation/1",
                                    "type": "string"
                                  },
                                  {
                                    "const": "quay.orientation/2",
                                    "type": "string"
                                  }
                                ]
                              },
                              "quaternion": {
                                "type": "array",
                                "prefixItems": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  }
                                ],
                                "minItems": 4,
                                "maxItems": 4,
                                "items": false
                              },
                              "up": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "front": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "confidence": {
                                "type": "number"
                              },
                              "evidence": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            },
                            "required": [
                              "policy",
                              "quaternion",
                              "up",
                              "front",
                              "confidence",
                              "evidence"
                            ],
                            "additionalProperties": false
                          },
                          "identity": {
                            "type": "string"
                          },
                          "alias": {
                            "type": "string"
                          },
                          "label": {
                            "type": "string"
                          },
                          "notes": {
                            "type": "string",
                            "maxLength": 2000
                          },
                          "assetId": {
                            "type": "string"
                          },
                          "manifestId": {
                            "type": "string"
                          },
                          "role": {
                            "type": "string"
                          },
                          "visible": {
                            "anyOf": [
                              {
                                "const": false,
                                "type": "boolean"
                              },
                              {
                                "const": true,
                                "type": "boolean"
                              }
                            ]
                          },
                          "pose": {
                            "type": "object",
                            "properties": {
                              "position": {
                                "type": "array",
                                "prefixItems": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  }
                                ],
                                "minItems": 3,
                                "maxItems": 3,
                                "items": false
                              },
                              "quaternion": {
                                "type": "array",
                                "prefixItems": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  }
                                ],
                                "minItems": 4,
                                "maxItems": 4,
                                "items": false
                              },
                              "scale": {
                                "type": "array",
                                "prefixItems": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  }
                                ],
                                "minItems": 3,
                                "maxItems": 3,
                                "items": false
                              }
                            },
                            "required": [],
                            "additionalProperties": false
                          },
                          "size": {
                            "anyOf": [
                              {
                                "type": "null"
                              },
                              {
                                "type": "array",
                                "prefixItems": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  }
                                ],
                                "minItems": 3,
                                "maxItems": 3,
                                "items": false
                              }
                            ]
                          },
                          "sizing": {
                            "type": "object",
                            "properties": {
                              "measurement": {
                                "type": "object",
                                "properties": {
                                  "reference": {
                                    "anyOf": [
                                      {
                                        "const": "whole-bounds",
                                        "type": "string"
                                      },
                                      {
                                        "const": "withers",
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  "targetM": {
                                    "type": "number"
                                  },
                                  "sourceReferenceM": {
                                    "type": "number"
                                  },
                                  "method": {
                                    "anyOf": [
                                      {
                                        "const": "measured-bounds",
                                        "type": "string"
                                      },
                                      {
                                        "const": "rig-shoulder-envelope-approximation/1",
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  "confidence": {
                                    "type": "number"
                                  },
                                  "evidence": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  }
                                },
                                "required": [
                                  "reference",
                                  "targetM",
                                  "sourceReferenceM",
                                  "method",
                                  "confidence",
                                  "evidence"
                                ],
                                "additionalProperties": false
                              },
                              "policy": {
                                "const": "quay.sizing/1",
                                "type": "string"
                              },
                              "measuredDimensions": {
                                "type": "array",
                                "prefixItems": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  }
                                ],
                                "minItems": 3,
                                "maxItems": 3,
                                "items": false
                              },
                              "orientedDimensions": {
                                "type": "array",
                                "prefixItems": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  }
                                ],
                                "minItems": 3,
                                "maxItems": 3,
                                "items": false
                              },
                              "chosenDimensions": {
                                "type": "array",
                                "prefixItems": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  }
                                ],
                                "minItems": 3,
                                "maxItems": 3,
                                "items": false
                              },
                              "finalSceneDimensions": {
                                "type": "array",
                                "prefixItems": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  }
                                ],
                                "minItems": 3,
                                "maxItems": 3,
                                "items": false
                              },
                              "uniformScale": {
                                "type": "number"
                              },
                              "profile": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "schema": {
                                        "const": "quay.archetype",
                                        "type": "string"
                                      },
                                      "schemaVersion": {
                                        "const": "1.0.0",
                                        "type": "string"
                                      },
                                      "profileId": {
                                        "type": "string"
                                      },
                                      "revision": {
                                        "type": "number"
                                      },
                                      "parentId": {
                                        "anyOf": [
                                          {
                                            "type": "null"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ]
                                      },
                                      "semanticClass": {
                                        "type": "string"
                                      },
                                      "status": {
                                        "anyOf": [
                                          {
                                            "const": "accepted",
                                            "type": "string"
                                          },
                                          {
                                            "const": "suggested",
                                            "type": "string"
                                          },
                                          {
                                            "const": "rejected",
                                            "type": "string"
                                          },
                                          {
                                            "const": "user-corrected",
                                            "type": "string"
                                          }
                                        ]
                                      },
                                      "dimensions": {
                                        "type": "object",
                                        "properties": {
                                          "width": {
                                            "anyOf": [
                                              {
                                                "type": "null"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "minM": {
                                                    "type": "number"
                                                  },
                                                  "typicalM": {
                                                    "type": "number"
                                                  },
                                                  "maxM": {
                                                    "type": "number"
                                                  },
                                                  "reference": {
                                                    "anyOf": [
                                                      {
                                                        "const": "whole-bounds",
                                                        "type": "string"
                                                      },
                                                      {
                                                        "const": "withers",
                                                        "type": "string"
                                                      },
                                                      {
                                                        "const": "seat",
                                                        "type": "string"
                                                      },
                                                      {
                                                        "const": "worktop",
                                                        "type": "string"
                                                      },
                                                      {
                                                        "const": "opening",
                                                        "type": "string"
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "minM",
                                                  "typicalM",
                                                  "maxM",
                                                  "reference"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          },
                                          "height": {
                                            "anyOf": [
                                              {
                                                "type": "null"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "minM": {
                                                    "type": "number"
                                                  },
                                                  "typicalM": {
                                                    "type": "number"
                                                  },
                                                  "maxM": {
                                                    "type": "number"
                                                  },
                                                  "reference": {
                                                    "anyOf": [
                                                      {
                                                        "const": "whole-bounds",
                                                        "type": "string"
                                                      },
                                                      {
                                                        "const": "withers",
                                                        "type": "string"
                                                      },
                                                      {
                                                        "const": "seat",
                                                        "type": "string"
                                                      },
                                                      {
                                                        "const": "worktop",
                                                        "type": "string"
                                                      },
                                                      {
                                                        "const": "opening",
                                                        "type": "string"
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "minM",
                                                  "typicalM",
                                                  "maxM",
                                                  "reference"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          },
                                          "depth": {
                                            "anyOf": [
                                              {
                                                "type": "null"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "minM": {
                                                    "type": "number"
                                                  },
                                                  "typicalM": {
                                                    "type": "number"
                                                  },
                                                  "maxM": {
                                                    "type": "number"
                                                  },
                                                  "reference": {
                                                    "anyOf": [
                                                      {
                                                        "const": "whole-bounds",
                                                        "type": "string"
                                                      },
                                                      {
                                                        "const": "withers",
                                                        "type": "string"
                                                      },
                                                      {
                                                        "const": "seat",
                                                        "type": "string"
                                                      },
                                                      {
                                                        "const": "worktop",
                                                        "type": "string"
                                                      },
                                                      {
                                                        "const": "opening",
                                                        "type": "string"
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "minM",
                                                  "typicalM",
                                                  "maxM",
                                                  "reference"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "width",
                                          "height",
                                          "depth"
                                        ],
                                        "additionalProperties": false
                                      },
                                      "preferredDimension": {
                                        "anyOf": [
                                          {
                                            "type": "null"
                                          },
                                          {
                                            "const": "width",
                                            "type": "string"
                                          },
                                          {
                                            "const": "height",
                                            "type": "string"
                                          },
                                          {
                                            "const": "depth",
                                            "type": "string"
                                          }
                                        ]
                                      },
                                      "grounding": {
                                        "anyOf": [
                                          {
                                            "const": "architectural",
                                            "type": "string"
                                          },
                                          {
                                            "const": "unknown",
                                            "type": "string"
                                          },
                                          {
                                            "const": "floor",
                                            "type": "string"
                                          },
                                          {
                                            "const": "support",
                                            "type": "string"
                                          }
                                        ]
                                      },
                                      "orientation": {
                                        "type": "object",
                                        "properties": {
                                          "up": {
                                            "anyOf": [
                                              {
                                                "type": "null"
                                              },
                                              {
                                                "const": "+Y",
                                                "type": "string"
                                              },
                                              {
                                                "const": "+Z",
                                                "type": "string"
                                              },
                                              {
                                                "const": "+X",
                                                "type": "string"
                                              },
                                              {
                                                "const": "-Y",
                                                "type": "string"
                                              },
                                              {
                                                "const": "-Z",
                                                "type": "string"
                                              },
                                              {
                                                "const": "-X",
                                                "type": "string"
                                              }
                                            ]
                                          },
                                          "forward": {
                                            "anyOf": [
                                              {
                                                "type": "null"
                                              },
                                              {
                                                "const": "+Z",
                                                "type": "string"
                                              },
                                              {
                                                "const": "+X",
                                                "type": "string"
                                              },
                                              {
                                                "const": "-Z",
                                                "type": "string"
                                              },
                                              {
                                                "const": "-X",
                                                "type": "string"
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "up",
                                          "forward"
                                        ],
                                        "additionalProperties": false
                                      },
                                      "affordances": {
                                        "type": "array",
                                        "items": {
                                          "type": "string"
                                        }
                                      },
                                      "clearances": {
                                        "type": "object",
                                        "properties": {
                                          "usableSideM": {
                                            "anyOf": [
                                              {
                                                "type": "null"
                                              },
                                              {
                                                "type": "number"
                                              }
                                            ]
                                          },
                                          "circulationM": {
                                            "anyOf": [
                                              {
                                                "type": "null"
                                              },
                                              {
                                                "type": "number"
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "usableSideM",
                                          "circulationM"
                                        ],
                                        "additionalProperties": false
                                      },
                                      "relationHints": {
                                        "type": "array",
                                        "items": {
                                          "type": "string"
                                        }
                                      },
                                      "provenance": {
                                        "type": "object",
                                        "properties": {
                                          "source": {
                                            "anyOf": [
                                              {
                                                "const": "standard",
                                                "type": "string"
                                              },
                                              {
                                                "const": "curated",
                                                "type": "string"
                                              },
                                              {
                                                "const": "ai_inferred",
                                                "type": "string"
                                              },
                                              {
                                                "const": "user_confirmed",
                                                "type": "string"
                                              },
                                              {
                                                "const": "project_specific",
                                                "type": "string"
                                              }
                                            ]
                                          },
                                          "producer": {
                                            "type": "string"
                                          },
                                          "model": {
                                            "anyOf": [
                                              {
                                                "type": "null"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          },
                                          "inferenceVersion": {
                                            "type": "string"
                                          },
                                          "requestedClass": {
                                            "anyOf": [
                                              {
                                                "type": "null"
                                              },
                                              {
                                                "type": "string"
                                              }
                                            ]
                                          },
                                          "confidence": {
                                            "type": "number"
                                          },
                                          "createdAt": {
                                            "type": "string"
                                          },
                                          "evidence": {
                                            "type": "array",
                                            "items": {
                                              "type": "string"
                                            }
                                          }
                                        },
                                        "required": [
                                          "source",
                                          "producer",
                                          "model",
                                          "inferenceVersion",
                                          "requestedClass",
                                          "confidence",
                                          "createdAt",
                                          "evidence"
                                        ],
                                        "additionalProperties": false
                                      }
                                    },
                                    "required": [
                                      "schema",
                                      "schemaVersion",
                                      "profileId",
                                      "revision",
                                      "parentId",
                                      "semanticClass",
                                      "status",
                                      "dimensions",
                                      "preferredDimension",
                                      "grounding",
                                      "orientation",
                                      "affordances",
                                      "clearances",
                                      "relationHints",
                                      "provenance"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "source": {
                                "anyOf": [
                                  {
                                    "const": "archetype",
                                    "type": "string"
                                  },
                                  {
                                    "const": "instance",
                                    "type": "string"
                                  },
                                  {
                                    "const": "conservative-fallback",
                                    "type": "string"
                                  }
                                ]
                              },
                              "plausibility": {
                                "anyOf": [
                                  {
                                    "const": "unknown",
                                    "type": "string"
                                  },
                                  {
                                    "const": "plausible",
                                    "type": "string"
                                  },
                                  {
                                    "const": "implausible",
                                    "type": "string"
                                  }
                                ]
                              },
                              "diagnostics": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            },
                            "required": [
                              "policy",
                              "measuredDimensions",
                              "orientedDimensions",
                              "chosenDimensions",
                              "uniformScale",
                              "profile",
                              "source",
                              "plausibility",
                              "diagnostics"
                            ],
                            "additionalProperties": false
                          },
                          "architecture": {
                            "type": "object",
                            "properties": {
                              "boundary": {
                                "anyOf": [
                                  {
                                    "const": "back",
                                    "type": "string"
                                  },
                                  {
                                    "const": "front",
                                    "type": "string"
                                  },
                                  {
                                    "const": "left",
                                    "type": "string"
                                  },
                                  {
                                    "const": "right",
                                    "type": "string"
                                  }
                                ]
                              },
                              "section": {
                                "anyOf": [
                                  {
                                    "const": "full",
                                    "type": "string"
                                  },
                                  {
                                    "const": "opening-left",
                                    "type": "string"
                                  },
                                  {
                                    "const": "opening-right",
                                    "type": "string"
                                  },
                                  {
                                    "const": "opening-header",
                                    "type": "string"
                                  },
                                  {
                                    "const": "opening-sill",
                                    "type": "string"
                                  }
                                ]
                              },
                              "opening": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "boundary",
                              "section",
                              "opening"
                            ],
                            "additionalProperties": false
                          },
                          "physics": {
                            "type": "object",
                            "properties": {
                              "motion": {
                                "anyOf": [
                                  {
                                    "const": "static",
                                    "type": "string"
                                  },
                                  {
                                    "const": "dynamic",
                                    "type": "string"
                                  },
                                  {
                                    "const": "kinematic",
                                    "type": "string"
                                  }
                                ]
                              },
                              "collision": {
                                "anyOf": [
                                  {
                                    "const": "none",
                                    "type": "string"
                                  },
                                  {
                                    "const": "solid",
                                    "type": "string"
                                  },
                                  {
                                    "const": "sensor",
                                    "type": "string"
                                  }
                                ]
                              },
                              "controller": {
                                "anyOf": [
                                  {
                                    "const": "none",
                                    "type": "string"
                                  },
                                  {
                                    "const": "character",
                                    "type": "string"
                                  }
                                ]
                              },
                              "collider": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "identity": {
                                        "type": "string"
                                      },
                                      "manifestId": {
                                        "anyOf": [
                                          {
                                            "type": "null"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ]
                                      },
                                      "featureId": {
                                        "anyOf": [
                                          {
                                            "type": "null"
                                          },
                                          {
                                            "type": "string"
                                          }
                                        ]
                                      },
                                      "kind": {
                                        "anyOf": [
                                          {
                                            "const": "object",
                                            "type": "string"
                                          },
                                          {
                                            "const": "component",
                                            "type": "string"
                                          },
                                          {
                                            "const": "surface",
                                            "type": "string"
                                          },
                                          {
                                            "const": "collider",
                                            "type": "string"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "identity",
                                      "manifestId",
                                      "featureId",
                                      "kind"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "shape": {
                                "anyOf": [
                                  {
                                    "const": "auto",
                                    "type": "string"
                                  },
                                  {
                                    "const": "box",
                                    "type": "string"
                                  },
                                  {
                                    "const": "convex-hull",
                                    "type": "string"
                                  },
                                  {
                                    "const": "decomposition",
                                    "type": "string"
                                  },
                                  {
                                    "const": "triangle-mesh",
                                    "type": "string"
                                  }
                                ]
                              },
                              "massKg": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "number"
                                  }
                                ]
                              },
                              "friction": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "number"
                                  }
                                ]
                              },
                              "restitution": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "number"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {},
                                "required": [],
                                "additionalProperties": {
                                  "anyOf": [
                                    {
                                      "const": "instance",
                                      "type": "string"
                                    },
                                    {
                                      "const": "asset-override",
                                      "type": "string"
                                    },
                                    {
                                      "const": "profile",
                                      "type": "string"
                                    },
                                    {
                                      "const": "inference",
                                      "type": "string"
                                    },
                                    {
                                      "const": "fallback",
                                      "type": "string"
                                    }
                                  ]
                                }
                              }
                            },
                            "required": [
                              "motion",
                              "collision",
                              "controller",
                              "collider",
                              "massKg",
                              "friction",
                              "restitution",
                              "provenance"
                            ],
                            "additionalProperties": false
                          },
                          "interaction": {
                            "type": "object",
                            "properties": {
                              "capabilities": {
                                "type": "array",
                                "items": {
                                  "anyOf": [
                                    {
                                      "const": "animate",
                                      "type": "string"
                                    },
                                    {
                                      "const": "grab",
                                      "type": "string"
                                    },
                                    {
                                      "const": "open",
                                      "type": "string"
                                    },
                                    {
                                      "const": "close",
                                      "type": "string"
                                    },
                                    {
                                      "const": "toggle",
                                      "type": "string"
                                    },
                                    {
                                      "const": "walk",
                                      "type": "string"
                                    }
                                  ]
                                }
                              },
                              "enabled": {
                                "anyOf": [
                                  {
                                    "const": false,
                                    "type": "boolean"
                                  },
                                  {
                                    "const": true,
                                    "type": "boolean"
                                  }
                                ]
                              },
                              "cooldownSeconds": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "capabilities",
                              "enabled",
                              "cooldownSeconds"
                            ],
                            "additionalProperties": false
                          },
                          "span": {
                            "type": "object",
                            "properties": {
                              "start": {
                                "type": "number"
                              },
                              "end": {
                                "type": "number"
                              },
                              "line": {
                                "type": "number"
                              },
                              "column": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "start",
                              "end",
                              "line",
                              "column"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "identity",
                          "alias",
                          "label",
                          "assetId",
                          "manifestId",
                          "role",
                          "visible",
                          "pose",
                          "size",
                          "physics",
                          "interaction",
                          "span"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "wallImages": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "materialId": {
                            "type": "string"
                          },
                          "identity": {
                            "type": "string"
                          },
                          "alias": {
                            "type": "string"
                          },
                          "label": {
                            "type": "string"
                          },
                          "assetId": {
                            "type": "string"
                          },
                          "wallInstanceId": {
                            "type": "string"
                          },
                          "uri": {
                            "type": "string"
                          },
                          "sha256": {
                            "type": "string"
                          },
                          "byteLength": {
                            "type": "number"
                          },
                          "mediaType": {
                            "anyOf": [
                              {
                                "const": "image/png",
                                "type": "string"
                              },
                              {
                                "const": "image/jpeg",
                                "type": "string"
                              },
                              {
                                "const": "image/webp",
                                "type": "string"
                              }
                            ]
                          },
                          "displayName": {
                            "type": "string"
                          },
                          "position": {
                            "type": "array",
                            "prefixItems": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "number"
                              }
                            ],
                            "minItems": 2,
                            "maxItems": 2,
                            "items": false
                          },
                          "size": {
                            "type": "array",
                            "prefixItems": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "number"
                              }
                            ],
                            "minItems": 2,
                            "maxItems": 2,
                            "items": false
                          },
                          "surfaceOffset": {
                            "type": "number"
                          },
                          "preserveAspectRatio": {
                            "anyOf": [
                              {
                                "const": false,
                                "type": "boolean"
                              },
                              {
                                "const": true,
                                "type": "boolean"
                              }
                            ]
                          },
                          "span": {
                            "type": "object",
                            "properties": {
                              "start": {
                                "type": "number"
                              },
                              "end": {
                                "type": "number"
                              },
                              "line": {
                                "type": "number"
                              },
                              "column": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "start",
                              "end",
                              "line",
                              "column"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "identity",
                          "alias",
                          "label",
                          "assetId",
                          "wallInstanceId",
                          "uri",
                          "sha256",
                          "byteLength",
                          "mediaType",
                          "displayName",
                          "position",
                          "size",
                          "surfaceOffset",
                          "preserveAspectRatio",
                          "span"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "interactiveLabels": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "identity": {
                            "type": "string"
                          },
                          "alias": {
                            "type": "string"
                          },
                          "parentObjectId": {
                            "type": "string"
                          },
                          "text": {
                            "type": "string",
                            "maxLength": 200
                          },
                          "icon": {
                            "anyOf": [
                              {
                                "type": "null"
                              },
                              {
                                "type": "string"
                              }
                            ]
                          },
                          "anchor": {
                            "anyOf": [
                              {
                                "const": "center",
                                "type": "string"
                              },
                              {
                                "const": "custom",
                                "type": "string"
                              },
                              {
                                "const": "front",
                                "type": "string"
                              },
                              {
                                "const": "left",
                                "type": "string"
                              },
                              {
                                "const": "right",
                                "type": "string"
                              },
                              {
                                "const": "above",
                                "type": "string"
                              }
                            ]
                          },
                          "offset": {
                            "type": "array",
                            "prefixItems": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "number"
                              },
                              {
                                "type": "number"
                              }
                            ],
                            "minItems": 3,
                            "maxItems": 3,
                            "items": false
                          },
                          "maxDistance": {
                            "anyOf": [
                              {
                                "type": "null"
                              },
                              {
                                "type": "number"
                              }
                            ]
                          },
                          "billboard": {
                            "anyOf": [
                              {
                                "const": false,
                                "type": "boolean"
                              },
                              {
                                "const": true,
                                "type": "boolean"
                              }
                            ]
                          },
                          "theme": {
                            "anyOf": [
                              {
                                "const": "warm",
                                "type": "string"
                              },
                              {
                                "const": "cool",
                                "type": "string"
                              },
                              {
                                "const": "default",
                                "type": "string"
                              }
                            ]
                          },
                          "action": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "const": "none",
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "kind"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "anyOf": [
                                      {
                                        "const": "html",
                                        "type": "string"
                                      },
                                      {
                                        "const": "pdf",
                                        "type": "string"
                                      },
                                      {
                                        "const": "audio",
                                        "type": "string"
                                      },
                                      {
                                        "const": "video",
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  "assetId": {
                                    "type": "string"
                                  },
                                  "uri": {
                                    "type": "string"
                                  },
                                  "sha256": {
                                    "type": "string"
                                  },
                                  "byteLength": {
                                    "type": "number"
                                  },
                                  "mediaType": {
                                    "type": "string"
                                  },
                                  "displayName": {
                                    "type": "string"
                                  },
                                  "title": {
                                    "anyOf": [
                                      {
                                        "type": "null"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  "posterUri": {
                                    "anyOf": [
                                      {
                                        "type": "null"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  "captionsUri": {
                                    "anyOf": [
                                      {
                                        "type": "null"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  "autoplay": {
                                    "anyOf": [
                                      {
                                        "const": false,
                                        "type": "boolean"
                                      },
                                      {
                                        "const": true,
                                        "type": "boolean"
                                      }
                                    ]
                                  },
                                  "loop": {
                                    "anyOf": [
                                      {
                                        "const": false,
                                        "type": "boolean"
                                      },
                                      {
                                        "const": true,
                                        "type": "boolean"
                                      }
                                    ]
                                  },
                                  "muted": {
                                    "anyOf": [
                                      {
                                        "const": false,
                                        "type": "boolean"
                                      },
                                      {
                                        "const": true,
                                        "type": "boolean"
                                      }
                                    ]
                                  },
                                  "volume": {
                                    "type": "number"
                                  },
                                  "restartOnOpen": {
                                    "anyOf": [
                                      {
                                        "const": false,
                                        "type": "boolean"
                                      },
                                      {
                                        "const": true,
                                        "type": "boolean"
                                      }
                                    ]
                                  },
                                  "startSeconds": {
                                    "type": "number"
                                  },
                                  "endSeconds": {
                                    "anyOf": [
                                      {
                                        "type": "null"
                                      },
                                      {
                                        "type": "number"
                                      }
                                    ]
                                  }
                                },
                                "required": [
                                  "kind",
                                  "assetId",
                                  "uri",
                                  "sha256",
                                  "byteLength",
                                  "mediaType",
                                  "displayName",
                                  "title",
                                  "posterUri",
                                  "captionsUri",
                                  "autoplay",
                                  "loop",
                                  "muted",
                                  "volume",
                                  "restartOnOpen",
                                  "startSeconds",
                                  "endSeconds"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "const": "ridley",
                                    "type": "string"
                                  },
                                  "target": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "kind",
                                  "target"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "const": "external-link",
                                    "type": "string"
                                  },
                                  "url": {
                                    "type": "string",
                                    "maxLength": 2048
                                  }
                                },
                                "required": [
                                  "kind",
                                  "url"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "span": {
                            "type": "object",
                            "properties": {
                              "start": {
                                "type": "number"
                              },
                              "end": {
                                "type": "number"
                              },
                              "line": {
                                "type": "number"
                              },
                              "column": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "start",
                              "end",
                              "line",
                              "column"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "identity",
                          "alias",
                          "parentObjectId",
                          "text",
                          "icon",
                          "anchor",
                          "offset",
                          "maxDistance",
                          "billboard",
                          "theme",
                          "action",
                          "span"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "relations": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "identity": {
                            "type": "string"
                          },
                          "kind": {
                            "anyOf": [
                              {
                                "const": "on",
                                "type": "string"
                              },
                              {
                                "const": "beside",
                                "type": "string"
                              },
                              {
                                "const": "facing",
                                "type": "string"
                              },
                              {
                                "const": "inside",
                                "type": "string"
                              },
                              {
                                "const": "against",
                                "type": "string"
                              },
                              {
                                "const": "attached-to",
                                "type": "string"
                              },
                              {
                                "const": "keep-clear",
                                "type": "string"
                              },
                              {
                                "const": "reachable-from",
                                "type": "string"
                              }
                            ]
                          },
                          "subject": {
                            "type": "object",
                            "properties": {
                              "identity": {
                                "type": "string"
                              },
                              "manifestId": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "featureId": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "kind": {
                                "anyOf": [
                                  {
                                    "const": "object",
                                    "type": "string"
                                  },
                                  {
                                    "const": "component",
                                    "type": "string"
                                  },
                                  {
                                    "const": "surface",
                                    "type": "string"
                                  },
                                  {
                                    "const": "collider",
                                    "type": "string"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "identity",
                              "manifestId",
                              "featureId",
                              "kind"
                            ],
                            "additionalProperties": false
                          },
                          "target": {
                            "anyOf": [
                              {
                                "type": "null"
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "identity": {
                                    "type": "string"
                                  },
                                  "manifestId": {
                                    "anyOf": [
                                      {
                                        "type": "null"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  "featureId": {
                                    "anyOf": [
                                      {
                                        "type": "null"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  "kind": {
                                    "anyOf": [
                                      {
                                        "const": "object",
                                        "type": "string"
                                      },
                                      {
                                        "const": "component",
                                        "type": "string"
                                      },
                                      {
                                        "const": "surface",
                                        "type": "string"
                                      },
                                      {
                                        "const": "collider",
                                        "type": "string"
                                      }
                                    ]
                                  }
                                },
                                "required": [
                                  "identity",
                                  "manifestId",
                                  "featureId",
                                  "kind"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "temporal": {
                            "anyOf": [
                              {
                                "const": "initial",
                                "type": "string"
                              },
                              {
                                "const": "monitor",
                                "type": "string"
                              },
                              {
                                "const": "maintain",
                                "type": "string"
                              }
                            ]
                          },
                          "strength": {
                            "anyOf": [
                              {
                                "const": "hard",
                                "type": "string"
                              },
                              {
                                "const": "soft",
                                "type": "string"
                              }
                            ]
                          },
                          "weight": {
                            "type": "number"
                          },
                          "parameters": {
                            "type": "object",
                            "properties": {},
                            "required": [],
                            "additionalProperties": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "number"
                                },
                                {
                                  "type": "array",
                                  "items": {
                                    "type": "number"
                                  }
                                }
                              ]
                            }
                          },
                          "sourceCommand": {
                            "type": "string"
                          },
                          "span": {
                            "type": "object",
                            "properties": {
                              "start": {
                                "type": "number"
                              },
                              "end": {
                                "type": "number"
                              },
                              "line": {
                                "type": "number"
                              },
                              "column": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "start",
                              "end",
                              "line",
                              "column"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "identity",
                          "kind",
                          "subject",
                          "target",
                          "temporal",
                          "strength",
                          "weight",
                          "parameters",
                          "sourceCommand",
                          "span"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "bindings": {
                      "type": "object",
                      "properties": {},
                      "required": [],
                      "additionalProperties": {
                        "type": "string"
                      }
                    },
                    "dependencies": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "assetId": {
                            "type": "string"
                          },
                          "manifestId": {
                            "type": "string"
                          },
                          "analysisRevision": {
                            "type": "string"
                          },
                          "contentHash": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "assetId",
                          "manifestId",
                          "analysisRevision",
                          "contentHash"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "versions": {
                      "type": "object",
                      "properties": {
                        "compiler": {
                          "const": "quay.compiler/1",
                          "type": "string"
                        },
                        "layout": {
                          "anyOf": [
                            {
                              "const": "quay.legacy-layout-adapter/1",
                              "type": "string"
                            },
                            {
                              "const": "quay.semantic-layout/1",
                              "type": "string"
                            },
                            {
                              "const": "quay.semantic-layout/2",
                              "type": "string"
                            }
                          ]
                        },
                        "policy": {
                          "anyOf": [
                            {
                              "const": "quay.static-policy/1",
                              "type": "string"
                            },
                            {
                              "const": "quay.physical-policy/1",
                              "type": "string"
                            }
                          ]
                        }
                      },
                      "required": [
                        "compiler",
                        "layout",
                        "policy"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "version",
                    "sceneId",
                    "name",
                    "seed",
                    "room",
                    "profile",
                    "objects",
                    "relations",
                    "bindings",
                    "dependencies",
                    "versions"
                  ],
                  "additionalProperties": false
                },
                "projection": {
                  "type": "object",
                  "properties": {
                    "materials": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "version": {
                            "const": "quay.material/1",
                            "type": "string"
                          },
                          "identity": {
                            "type": "string"
                          },
                          "alias": {
                            "type": "string"
                          },
                          "label": {
                            "type": "string"
                          },
                          "description": {
                            "type": "string"
                          },
                          "category": {
                            "anyOf": [
                              {
                                "const": "glass",
                                "type": "string"
                              },
                              {
                                "const": "generic",
                                "type": "string"
                              },
                              {
                                "const": "wood",
                                "type": "string"
                              },
                              {
                                "const": "metal",
                                "type": "string"
                              },
                              {
                                "const": "stone",
                                "type": "string"
                              },
                              {
                                "const": "concrete",
                                "type": "string"
                              },
                              {
                                "const": "ceramic",
                                "type": "string"
                              },
                              {
                                "const": "fabric",
                                "type": "string"
                              },
                              {
                                "const": "paper",
                                "type": "string"
                              },
                              {
                                "const": "plastic",
                                "type": "string"
                              },
                              {
                                "const": "paint",
                                "type": "string"
                              }
                            ]
                          },
                          "shader": {
                            "anyOf": [
                              {
                                "const": "unlit",
                                "type": "string"
                              },
                              {
                                "const": "standard",
                                "type": "string"
                              }
                            ]
                          },
                          "color": {
                            "type": "string"
                          },
                          "roughness": {
                            "type": "number"
                          },
                          "metalness": {
                            "type": "number"
                          },
                          "emissive": {
                            "type": "string"
                          },
                          "emissiveIntensity": {
                            "type": "number"
                          },
                          "opacity": {
                            "type": "number"
                          },
                          "alphaMode": {
                            "anyOf": [
                              {
                                "const": "opaque",
                                "type": "string"
                              },
                              {
                                "const": "mask",
                                "type": "string"
                              },
                              {
                                "const": "blend",
                                "type": "string"
                              }
                            ]
                          },
                          "alphaCutoff": {
                            "type": "number"
                          },
                          "side": {
                            "anyOf": [
                              {
                                "const": "back",
                                "type": "string"
                              },
                              {
                                "const": "front",
                                "type": "string"
                              },
                              {
                                "const": "double",
                                "type": "string"
                              }
                            ]
                          },
                          "preset": {
                            "anyOf": [
                              {
                                "type": "null"
                              },
                              {
                                "type": "string"
                              }
                            ]
                          },
                          "maps": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "slot": {
                                  "anyOf": [
                                    {
                                      "const": "color",
                                      "type": "string"
                                    },
                                    {
                                      "const": "normal",
                                      "type": "string"
                                    },
                                    {
                                      "const": "roughness",
                                      "type": "string"
                                    },
                                    {
                                      "const": "metalness",
                                      "type": "string"
                                    },
                                    {
                                      "const": "emissive",
                                      "type": "string"
                                    },
                                    {
                                      "const": "occlusion",
                                      "type": "string"
                                    },
                                    {
                                      "const": "alpha",
                                      "type": "string"
                                    }
                                  ]
                                },
                                "image": {
                                  "type": "object",
                                  "properties": {
                                    "assetId": {
                                      "type": "string"
                                    },
                                    "uri": {
                                      "type": "string"
                                    },
                                    "sha256": {
                                      "type": "string"
                                    },
                                    "byteLength": {
                                      "type": "number"
                                    },
                                    "mediaType": {
                                      "anyOf": [
                                        {
                                          "const": "image/png",
                                          "type": "string"
                                        },
                                        {
                                          "const": "image/jpeg",
                                          "type": "string"
                                        },
                                        {
                                          "const": "image/webp",
                                          "type": "string"
                                        }
                                      ]
                                    },
                                    "displayName": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "assetId",
                                    "uri",
                                    "sha256",
                                    "byteLength",
                                    "mediaType",
                                    "displayName"
                                  ],
                                  "additionalProperties": false
                                },
                                "repeat": {
                                  "type": "array",
                                  "prefixItems": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "number"
                                    }
                                  ],
                                  "minItems": 2,
                                  "maxItems": 2,
                                  "items": false
                                },
                                "offset": {
                                  "type": "array",
                                  "prefixItems": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "number"
                                    }
                                  ],
                                  "minItems": 2,
                                  "maxItems": 2,
                                  "items": false
                                },
                                "rotation": {
                                  "type": "number"
                                },
                                "wrap": {
                                  "anyOf": [
                                    {
                                      "const": "repeat",
                                      "type": "string"
                                    },
                                    {
                                      "const": "clamp",
                                      "type": "string"
                                    },
                                    {
                                      "const": "mirror",
                                      "type": "string"
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "slot",
                                "image",
                                "repeat",
                                "offset",
                                "rotation",
                                "wrap"
                              ],
                              "additionalProperties": false
                            }
                          }
                        },
                        "required": [
                          "version",
                          "identity",
                          "alias",
                          "label",
                          "description",
                          "category",
                          "shader",
                          "color",
                          "roughness",
                          "metalness",
                          "emissive",
                          "emissiveIntensity",
                          "opacity",
                          "alphaMode",
                          "alphaCutoff",
                          "side",
                          "preset",
                          "maps"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "schema": {
                      "const": "quay.scene",
                      "type": "string"
                    },
                    "schemaVersion": {
                      "const": "1.0.0",
                      "type": "string"
                    },
                    "sceneId": {
                      "type": "string"
                    },
                    "revision": {
                      "type": "number"
                    },
                    "name": {
                      "type": "string"
                    },
                    "createdAt": {
                      "type": "string"
                    },
                    "updatedAt": {
                      "type": "string"
                    },
                    "units": {
                      "const": "metres",
                      "type": "string"
                    },
                    "coordinateSystem": {
                      "const": "right-handed-y-up-negative-z-forward",
                      "type": "string"
                    },
                    "seed": {
                      "type": "number"
                    },
                    "environment": {
                      "type": "object",
                      "properties": {
                        "room": {
                          "type": "object",
                          "properties": {
                            "width": {
                              "type": "number"
                            },
                            "depth": {
                              "type": "number"
                            },
                            "height": {
                              "type": "number"
                            },
                            "floorY": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "width",
                            "depth",
                            "height",
                            "floorY"
                          ],
                          "additionalProperties": false
                        },
                        "background": {
                          "type": "string"
                        },
                        "fog": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "type": "object",
                              "properties": {
                                "color": {
                                  "type": "string"
                                },
                                "near": {
                                  "type": "number"
                                },
                                "far": {
                                  "type": "number"
                                }
                              },
                              "required": [
                                "color",
                                "near",
                                "far"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "floor": {
                          "type": "object",
                          "properties": {
                            "visible": {
                              "anyOf": [
                                {
                                  "const": false,
                                  "type": "boolean"
                                },
                                {
                                  "const": true,
                                  "type": "boolean"
                                }
                              ]
                            },
                            "color": {
                              "type": "string"
                            },
                            "receiveShadow": {
                              "anyOf": [
                                {
                                  "const": false,
                                  "type": "boolean"
                                },
                                {
                                  "const": true,
                                  "type": "boolean"
                                }
                              ]
                            },
                            "gridVisible": {
                              "anyOf": [
                                {
                                  "const": false,
                                  "type": "boolean"
                                },
                                {
                                  "const": true,
                                  "type": "boolean"
                                }
                              ]
                            }
                          },
                          "required": [
                            "visible",
                            "color",
                            "receiveShadow",
                            "gridVisible"
                          ],
                          "additionalProperties": false
                        },
                        "lights": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "type": {
                                "anyOf": [
                                  {
                                    "const": "ambient",
                                    "type": "string"
                                  },
                                  {
                                    "const": "hemisphere",
                                    "type": "string"
                                  },
                                  {
                                    "const": "directional",
                                    "type": "string"
                                  },
                                  {
                                    "const": "point",
                                    "type": "string"
                                  }
                                ]
                              },
                              "color": {
                                "type": "string"
                              },
                              "groundColor": {
                                "type": "string"
                              },
                              "intensity": {
                                "type": "number"
                              },
                              "position": {
                                "type": "array",
                                "prefixItems": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  }
                                ],
                                "minItems": 3,
                                "maxItems": 3,
                                "items": false
                              },
                              "castShadow": {
                                "anyOf": [
                                  {
                                    "const": false,
                                    "type": "boolean"
                                  },
                                  {
                                    "const": true,
                                    "type": "boolean"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "type",
                              "color",
                              "intensity",
                              "position",
                              "castShadow"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "room",
                        "background",
                        "fog",
                        "floor",
                        "lights"
                      ],
                      "additionalProperties": false
                    },
                    "assets": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "library": {
                            "type": "object",
                            "properties": {
                              "version": {
                                "const": "quay.asset-library/1",
                                "type": "string"
                              },
                              "alias": {
                                "type": "string"
                              },
                              "scope": {
                                "anyOf": [
                                  {
                                    "const": "project",
                                    "type": "string"
                                  },
                                  {
                                    "const": "standard",
                                    "type": "string"
                                  },
                                  {
                                    "const": "user",
                                    "type": "string"
                                  }
                                ]
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "origin": {
                                "type": "object",
                                "properties": {
                                  "provider": {
                                    "type": "string"
                                  },
                                  "originalAssetId": {
                                    "type": "string"
                                  },
                                  "originalUrl": {
                                    "anyOf": [
                                      {
                                        "type": "null"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  "author": {
                                    "anyOf": [
                                      {
                                        "type": "null"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  "license": {
                                    "type": "string"
                                  },
                                  "attributionRequired": {
                                    "anyOf": [
                                      {
                                        "const": false,
                                        "type": "boolean"
                                      },
                                      {
                                        "const": true,
                                        "type": "boolean"
                                      }
                                    ]
                                  },
                                  "originalFilename": {
                                    "type": "string"
                                  },
                                  "downloadedAt": {
                                    "type": "string"
                                  },
                                  "contentHash": {
                                    "type": "string"
                                  },
                                  "sourceHash": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "provider",
                                  "originalAssetId",
                                  "originalUrl",
                                  "author",
                                  "license",
                                  "attributionRequired",
                                  "originalFilename",
                                  "downloadedAt",
                                  "contentHash",
                                  "sourceHash"
                                ],
                                "additionalProperties": false
                              },
                              "semantics": {
                                "type": "object",
                                "properties": {
                                  "taxonomy": {
                                    "const": "quay.asset-taxonomy/1",
                                    "type": "string"
                                  },
                                  "category": {
                                    "type": "string"
                                  },
                                  "styles": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "roomTypes": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "affordances": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "capacity": {
                                    "anyOf": [
                                      {
                                        "type": "null"
                                      },
                                      {
                                        "type": "number"
                                      }
                                    ]
                                  },
                                  "confidence": {
                                    "type": "number"
                                  },
                                  "state": {
                                    "anyOf": [
                                      {
                                        "const": "accepted",
                                        "type": "string"
                                      },
                                      {
                                        "const": "unknown",
                                        "type": "string"
                                      },
                                      {
                                        "const": "suggested",
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  "producer": {
                                    "type": "string"
                                  },
                                  "model": {
                                    "anyOf": [
                                      {
                                        "type": "null"
                                      },
                                      {
                                        "type": "string"
                                      }
                                    ]
                                  }
                                },
                                "required": [
                                  "taxonomy",
                                  "category",
                                  "styles",
                                  "roomTypes",
                                  "affordances",
                                  "capacity",
                                  "confidence",
                                  "state",
                                  "producer",
                                  "model"
                                ],
                                "additionalProperties": false
                              },
                              "manifestId": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "archetypeId": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "cost": {
                                "type": "object",
                                "properties": {
                                  "triangles": {
                                    "anyOf": [
                                      {
                                        "type": "null"
                                      },
                                      {
                                        "type": "number"
                                      }
                                    ]
                                  },
                                  "materials": {
                                    "anyOf": [
                                      {
                                        "type": "null"
                                      },
                                      {
                                        "type": "number"
                                      }
                                    ]
                                  },
                                  "textureBytes": {
                                    "anyOf": [
                                      {
                                        "type": "null"
                                      },
                                      {
                                        "type": "number"
                                      }
                                    ]
                                  },
                                  "texturePixels": {
                                    "anyOf": [
                                      {
                                        "type": "null"
                                      },
                                      {
                                        "type": "number"
                                      }
                                    ]
                                  }
                                },
                                "required": [
                                  "triangles",
                                  "materials",
                                  "textureBytes",
                                  "texturePixels"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "version",
                              "alias",
                              "scope",
                              "projectId",
                              "origin",
                              "semantics",
                              "manifestId",
                              "archetypeId",
                              "cost"
                            ],
                            "additionalProperties": false
                          },
                          "assetId": {
                            "type": "string"
                          },
                          "uri": {
                            "type": "string"
                          },
                          "sha256": {
                            "type": "string"
                          },
                          "byteLength": {
                            "type": "number"
                          },
                          "mediaType": {
                            "const": "model/gltf-binary",
                            "type": "string"
                          },
                          "displayName": {
                            "type": "string"
                          },
                          "description": {
                            "type": "string"
                          },
                          "category": {
                            "type": "string"
                          },
                          "canonicalSize": {
                            "type": "array",
                            "prefixItems": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "number"
                              },
                              {
                                "type": "number"
                              }
                            ],
                            "minItems": 3,
                            "maxItems": 3,
                            "items": false
                          },
                          "normalization": {
                            "type": "object",
                            "properties": {
                              "rawBounds": {
                                "type": "object",
                                "properties": {
                                  "min": {
                                    "type": "array",
                                    "prefixItems": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "number"
                                      }
                                    ],
                                    "minItems": 3,
                                    "maxItems": 3,
                                    "items": false
                                  },
                                  "max": {
                                    "type": "array",
                                    "prefixItems": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "number"
                                      }
                                    ],
                                    "minItems": 3,
                                    "maxItems": 3,
                                    "items": false
                                  }
                                },
                                "required": [
                                  "min",
                                  "max"
                                ],
                                "additionalProperties": false
                              },
                              "scale": {
                                "type": "array",
                                "prefixItems": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  }
                                ],
                                "minItems": 3,
                                "maxItems": 3,
                                "items": false
                              },
                              "baseOffset": {
                                "type": "array",
                                "prefixItems": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  }
                                ],
                                "minItems": 3,
                                "maxItems": 3,
                                "items": false
                              },
                              "forwardCorrection": {
                                "type": "array",
                                "prefixItems": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  }
                                ],
                                "minItems": 4,
                                "maxItems": 4,
                                "items": false
                              }
                            },
                            "required": [
                              "rawBounds",
                              "scale",
                              "baseOffset",
                              "forwardCorrection"
                            ],
                            "additionalProperties": false
                          },
                          "placement": {
                            "anyOf": [
                              {
                                "const": "floor_only",
                                "type": "string"
                              },
                              {
                                "const": "support_only",
                                "type": "string"
                              },
                              {
                                "const": "floor_or_support",
                                "type": "string"
                              }
                            ]
                          },
                          "supportsObjects": {
                            "anyOf": [
                              {
                                "const": false,
                                "type": "boolean"
                              },
                              {
                                "const": true,
                                "type": "boolean"
                              }
                            ]
                          },
                          "wallAlignment": {
                            "anyOf": [
                              {
                                "type": "null"
                              },
                              {
                                "const": "center",
                                "type": "string"
                              },
                              {
                                "const": "left",
                                "type": "string"
                              },
                              {
                                "const": "right",
                                "type": "string"
                              }
                            ]
                          },
                          "availability": {
                            "anyOf": [
                              {
                                "const": "local",
                                "type": "string"
                              },
                              {
                                "const": "global",
                                "type": "string"
                              }
                            ]
                          },
                          "roomId": {
                            "anyOf": [
                              {
                                "type": "null"
                              },
                              {
                                "type": "string"
                              }
                            ]
                          },
                          "supportSurfaces": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "surfaceId": {
                                  "type": "string"
                                },
                                "label": {
                                  "type": "string"
                                },
                                "center": {
                                  "type": "array",
                                  "prefixItems": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "number"
                                    }
                                  ],
                                  "minItems": 3,
                                  "maxItems": 3,
                                  "items": false
                                },
                                "normal": {
                                  "type": "array",
                                  "prefixItems": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "number"
                                    }
                                  ],
                                  "minItems": 3,
                                  "maxItems": 3,
                                  "items": false
                                },
                                "size": {
                                  "type": "array",
                                  "prefixItems": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "number"
                                    }
                                  ],
                                  "minItems": 2,
                                  "maxItems": 2,
                                  "items": false
                                },
                                "source": {
                                  "anyOf": [
                                    {
                                      "const": "bounds",
                                      "type": "string"
                                    },
                                    {
                                      "const": "mesh",
                                      "type": "string"
                                    },
                                    {
                                      "const": "manual",
                                      "type": "string"
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "surfaceId",
                                "label",
                                "center",
                                "normal",
                                "size",
                                "source"
                              ],
                              "additionalProperties": false
                            }
                          }
                        },
                        "required": [
                          "assetId",
                          "uri",
                          "sha256",
                          "byteLength",
                          "mediaType",
                          "displayName",
                          "description",
                          "category",
                          "canonicalSize",
                          "normalization",
                          "placement",
                          "supportsObjects",
                          "supportSurfaces"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "imageAssets": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "assetId": {
                            "type": "string"
                          },
                          "uri": {
                            "type": "string"
                          },
                          "sha256": {
                            "type": "string"
                          },
                          "byteLength": {
                            "type": "number"
                          },
                          "mediaType": {
                            "anyOf": [
                              {
                                "const": "image/png",
                                "type": "string"
                              },
                              {
                                "const": "image/jpeg",
                                "type": "string"
                              },
                              {
                                "const": "image/webp",
                                "type": "string"
                              }
                            ]
                          },
                          "displayName": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "assetId",
                          "uri",
                          "sha256",
                          "byteLength",
                          "mediaType",
                          "displayName"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "instances": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "materialId": {
                            "type": "string"
                          },
                          "normalization": {
                            "type": "object",
                            "properties": {
                              "rawBounds": {
                                "type": "object",
                                "properties": {
                                  "min": {
                                    "type": "array",
                                    "prefixItems": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "number"
                                      }
                                    ],
                                    "minItems": 3,
                                    "maxItems": 3,
                                    "items": false
                                  },
                                  "max": {
                                    "type": "array",
                                    "prefixItems": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "number"
                                      }
                                    ],
                                    "minItems": 3,
                                    "maxItems": 3,
                                    "items": false
                                  }
                                },
                                "required": [
                                  "min",
                                  "max"
                                ],
                                "additionalProperties": false
                              },
                              "scale": {
                                "type": "array",
                                "prefixItems": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  }
                                ],
                                "minItems": 3,
                                "maxItems": 3,
                                "items": false
                              },
                              "baseOffset": {
                                "type": "array",
                                "prefixItems": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  }
                                ],
                                "minItems": 3,
                                "maxItems": 3,
                                "items": false
                              },
                              "forwardCorrection": {
                                "type": "array",
                                "prefixItems": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  }
                                ],
                                "minItems": 4,
                                "maxItems": 4,
                                "items": false
                              }
                            },
                            "required": [
                              "rawBounds",
                              "scale",
                              "baseOffset",
                              "forwardCorrection"
                            ],
                            "additionalProperties": false
                          },
                          "instanceId": {
                            "type": "string"
                          },
                          "assetId": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "transform": {
                            "type": "object",
                            "properties": {
                              "position": {
                                "type": "array",
                                "prefixItems": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  }
                                ],
                                "minItems": 3,
                                "maxItems": 3,
                                "items": false
                              },
                              "quaternion": {
                                "type": "array",
                                "prefixItems": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  }
                                ],
                                "minItems": 4,
                                "maxItems": 4,
                                "items": false
                              },
                              "scale": {
                                "type": "array",
                                "prefixItems": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  }
                                ],
                                "minItems": 3,
                                "maxItems": 3,
                                "items": false
                              }
                            },
                            "required": [
                              "position",
                              "quaternion",
                              "scale"
                            ],
                            "additionalProperties": false
                          },
                          "visible": {
                            "anyOf": [
                              {
                                "const": false,
                                "type": "boolean"
                              },
                              {
                                "const": true,
                                "type": "boolean"
                              }
                            ]
                          },
                          "castShadow": {
                            "anyOf": [
                              {
                                "const": false,
                                "type": "boolean"
                              },
                              {
                                "const": true,
                                "type": "boolean"
                              }
                            ]
                          },
                          "receiveShadow": {
                            "anyOf": [
                              {
                                "const": false,
                                "type": "boolean"
                              },
                              {
                                "const": true,
                                "type": "boolean"
                              }
                            ]
                          },
                          "locked": {
                            "anyOf": [
                              {
                                "const": false,
                                "type": "boolean"
                              },
                              {
                                "const": true,
                                "type": "boolean"
                              }
                            ]
                          },
                          "placement": {
                            "type": "object",
                            "properties": {
                              "source": {
                                "anyOf": [
                                  {
                                    "const": "manual",
                                    "type": "string"
                                  },
                                  {
                                    "const": "solver",
                                    "type": "string"
                                  },
                                  {
                                    "const": "imported",
                                    "type": "string"
                                  }
                                ]
                              },
                              "supportingInstanceId": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "supportSurfaceId": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "solverStatus": {
                                "anyOf": [
                                  {
                                    "const": "unresolved",
                                    "type": "string"
                                  },
                                  {
                                    "const": "fallback",
                                    "type": "string"
                                  },
                                  {
                                    "const": "placed",
                                    "type": "string"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "source",
                              "supportingInstanceId",
                              "supportSurfaceId",
                              "solverStatus"
                            ],
                            "additionalProperties": false
                          },
                          "tags": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "wallImage": {
                            "type": "object",
                            "properties": {
                              "wallInstanceId": {
                                "type": "string"
                              },
                              "assetId": {
                                "type": "string"
                              },
                              "position": {
                                "type": "array",
                                "prefixItems": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  }
                                ],
                                "minItems": 2,
                                "maxItems": 2,
                                "items": false
                              },
                              "size": {
                                "type": "array",
                                "prefixItems": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "number"
                                  }
                                ],
                                "minItems": 2,
                                "maxItems": 2,
                                "items": false
                              },
                              "surfaceOffset": {
                                "type": "number"
                              },
                              "preserveAspectRatio": {
                                "anyOf": [
                                  {
                                    "const": false,
                                    "type": "boolean"
                                  },
                                  {
                                    "const": true,
                                    "type": "boolean"
                                  }
                                ]
                              },
                              "surface": {
                                "anyOf": [
                                  {
                                    "const": "floor",
                                    "type": "string"
                                  },
                                  {
                                    "const": "wall",
                                    "type": "string"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "wallInstanceId",
                              "assetId",
                              "position",
                              "size",
                              "surfaceOffset",
                              "preserveAspectRatio"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "instanceId",
                          "assetId",
                          "name",
                          "transform",
                          "visible",
                          "castShadow",
                          "receiveShadow",
                          "locked",
                          "placement",
                          "tags"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "relations": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "relationId": {
                            "type": "string"
                          },
                          "type": {
                            "anyOf": [
                              {
                                "const": "ON",
                                "type": "string"
                              },
                              {
                                "const": "NEAR",
                                "type": "string"
                              },
                              {
                                "const": "LEFT_OF",
                                "type": "string"
                              },
                              {
                                "const": "RIGHT_OF",
                                "type": "string"
                              },
                              {
                                "const": "IN_FRONT_OF",
                                "type": "string"
                              },
                              {
                                "const": "BEHIND",
                                "type": "string"
                              },
                              {
                                "const": "FACING",
                                "type": "string"
                              },
                              {
                                "const": "CENTERED_ON",
                                "type": "string"
                              },
                              {
                                "const": "ALIGNED_WITH",
                                "type": "string"
                              },
                              {
                                "const": "AGAINST_WALL",
                                "type": "string"
                              },
                              {
                                "const": "KEEP_CLEAR_OF",
                                "type": "string"
                              }
                            ]
                          },
                          "subjectInstanceId": {
                            "type": "string"
                          },
                          "targetInstanceId": {
                            "anyOf": [
                              {
                                "type": "null"
                              },
                              {
                                "type": "string"
                              }
                            ]
                          },
                          "strength": {
                            "anyOf": [
                              {
                                "const": "hard",
                                "type": "string"
                              },
                              {
                                "const": "soft",
                                "type": "string"
                              }
                            ]
                          },
                          "status": {
                            "anyOf": [
                              {
                                "const": "satisfied",
                                "type": "string"
                              },
                              {
                                "const": "unresolved",
                                "type": "string"
                              },
                              {
                                "const": "degraded",
                                "type": "string"
                              }
                            ]
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "relationId",
                          "type",
                          "subjectInstanceId",
                          "targetInstanceId",
                          "strength",
                          "status",
                          "message"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "diagnostics": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "code": {
                            "type": "string"
                          },
                          "severity": {
                            "anyOf": [
                              {
                                "const": "info",
                                "type": "string"
                              },
                              {
                                "const": "error",
                                "type": "string"
                              },
                              {
                                "const": "warning",
                                "type": "string"
                              }
                            ]
                          },
                          "message": {
                            "type": "string"
                          },
                          "instanceIds": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "relationId": {
                            "anyOf": [
                              {
                                "type": "null"
                              },
                              {
                                "type": "string"
                              }
                            ]
                          },
                          "measurements": {
                            "type": "object",
                            "properties": {},
                            "required": [],
                            "additionalProperties": {
                              "type": "number"
                            }
                          }
                        },
                        "required": [
                          "code",
                          "severity",
                          "message",
                          "instanceIds",
                          "relationId"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "unplacedInstanceIds": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "camera": {
                      "type": "object",
                      "properties": {
                        "type": {
                          "const": "perspective",
                          "type": "string"
                        },
                        "position": {
                          "type": "array",
                          "prefixItems": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "number"
                            }
                          ],
                          "minItems": 3,
                          "maxItems": 3,
                          "items": false
                        },
                        "target": {
                          "type": "array",
                          "prefixItems": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "number"
                            }
                          ],
                          "minItems": 3,
                          "maxItems": 3,
                          "items": false
                        },
                        "up": {
                          "type": "array",
                          "prefixItems": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "number"
                            }
                          ],
                          "minItems": 3,
                          "maxItems": 3,
                          "items": false
                        },
                        "fovDegrees": {
                          "type": "number"
                        },
                        "near": {
                          "type": "number"
                        },
                        "far": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "type",
                        "position",
                        "target",
                        "up",
                        "fovDegrees",
                        "near",
                        "far"
                      ],
                      "additionalProperties": false
                    },
                    "provenance": {
                      "type": "object",
                      "properties": {
                        "createdBy": {
                          "anyOf": [
                            {
                              "const": "quay",
                              "type": "string"
                            },
                            {
                              "const": "import",
                              "type": "string"
                            }
                          ]
                        },
                        "planner": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "type": "object",
                              "properties": {
                                "provider": {
                                  "anyOf": [
                                    {
                                      "const": "openai",
                                      "type": "string"
                                    },
                                    {
                                      "const": "fake",
                                      "type": "string"
                                    }
                                  ]
                                },
                                "model": {
                                  "type": "string"
                                },
                                "promptTemplateVersion": {
                                  "type": "string"
                                },
                                "requestId": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "provider",
                                "model",
                                "promptTemplateVersion",
                                "requestId"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "layoutEngineVersion": {
                          "type": "string"
                        },
                        "threeVersion": {
                          "type": "string"
                        },
                        "sourcePrompt": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "createdBy",
                        "planner",
                        "layoutEngineVersion",
                        "threeVersion",
                        "sourcePrompt"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "schema",
                    "schemaVersion",
                    "sceneId",
                    "revision",
                    "name",
                    "createdAt",
                    "updatedAt",
                    "units",
                    "coordinateSystem",
                    "seed",
                    "environment",
                    "assets",
                    "instances",
                    "relations",
                    "diagnostics",
                    "unplacedInstanceIds",
                    "camera",
                    "provenance"
                  ],
                  "additionalProperties": false
                },
                "evaluations": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "identity": {
                        "type": "string"
                      },
                      "status": {
                        "anyOf": [
                          {
                            "const": "unsupported",
                            "type": "string"
                          },
                          {
                            "const": "satisfied",
                            "type": "string"
                          },
                          {
                            "const": "failed",
                            "type": "string"
                          },
                          {
                            "const": "unknown",
                            "type": "string"
                          }
                        ]
                      },
                      "message": {
                        "type": "string"
                      },
                      "residuals": {
                        "type": "object",
                        "properties": {},
                        "required": [],
                        "additionalProperties": {
                          "type": "number"
                        }
                      }
                    },
                    "required": [
                      "identity",
                      "status",
                      "message",
                      "residuals"
                    ],
                    "additionalProperties": false
                  }
                },
                "diagnostics": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "code": {
                        "type": "string"
                      },
                      "severity": {
                        "anyOf": [
                          {
                            "const": "info",
                            "type": "string"
                          },
                          {
                            "const": "error",
                            "type": "string"
                          },
                          {
                            "const": "warning",
                            "type": "string"
                          }
                        ]
                      },
                      "message": {
                        "type": "string"
                      },
                      "span": {
                        "anyOf": [
                          {
                            "type": "null"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "start": {
                                "type": "number"
                              },
                              "end": {
                                "type": "number"
                              },
                              "line": {
                                "type": "number"
                              },
                              "column": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "start",
                              "end",
                              "line",
                              "column"
                            ],
                            "additionalProperties": false
                          }
                        ]
                      },
                      "identity": {
                        "anyOf": [
                          {
                            "type": "null"
                          },
                          {
                            "type": "string"
                          }
                        ]
                      }
                    },
                    "required": [
                      "code",
                      "severity",
                      "message",
                      "span",
                      "identity"
                    ],
                    "additionalProperties": false
                  }
                },
                "provenance": {
                  "type": "object",
                  "properties": {
                    "sourceHash": {
                      "type": "string"
                    },
                    "versions": {
                      "type": "object",
                      "properties": {
                        "compiler": {
                          "const": "quay.compiler/1",
                          "type": "string"
                        },
                        "layout": {
                          "anyOf": [
                            {
                              "const": "quay.legacy-layout-adapter/1",
                              "type": "string"
                            },
                            {
                              "const": "quay.semantic-layout/1",
                              "type": "string"
                            },
                            {
                              "const": "quay.semantic-layout/2",
                              "type": "string"
                            }
                          ]
                        },
                        "policy": {
                          "anyOf": [
                            {
                              "const": "quay.static-policy/1",
                              "type": "string"
                            },
                            {
                              "const": "quay.physical-policy/1",
                              "type": "string"
                            }
                          ]
                        }
                      },
                      "required": [
                        "compiler",
                        "layout",
                        "policy"
                      ],
                      "additionalProperties": false
                    },
                    "dependencies": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "assetId": {
                            "type": "string"
                          },
                          "manifestId": {
                            "type": "string"
                          },
                          "analysisRevision": {
                            "type": "string"
                          },
                          "contentHash": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "assetId",
                          "manifestId",
                          "analysisRevision",
                          "contentHash"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "sourceHash",
                    "versions",
                    "dependencies"
                  ],
                  "additionalProperties": false
                },
                "readiness": {
                  "const": "static-preview",
                  "type": "string"
                },
                "physics": {
                  "type": "object",
                  "properties": {
                    "version": {
                      "const": "quay.physics-preparation/1",
                      "type": "string"
                    },
                    "ready": {
                      "anyOf": [
                        {
                          "const": false,
                          "type": "boolean"
                        },
                        {
                          "const": true,
                          "type": "boolean"
                        }
                      ]
                    },
                    "gravity": {
                      "type": "array",
                      "prefixItems": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "number"
                        }
                      ],
                      "minItems": 3,
                      "maxItems": 3,
                      "items": false
                    },
                    "stepSeconds": {
                      "type": "number"
                    },
                    "maxCatchUpSteps": {
                      "type": "number"
                    },
                    "bodies": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "instanceId": {
                            "type": "string"
                          },
                          "motion": {
                            "anyOf": [
                              {
                                "const": "static",
                                "type": "string"
                              },
                              {
                                "const": "dynamic",
                                "type": "string"
                              },
                              {
                                "const": "kinematic",
                                "type": "string"
                              }
                            ]
                          },
                          "collision": {
                            "anyOf": [
                              {
                                "const": "none",
                                "type": "string"
                              },
                              {
                                "const": "solid",
                                "type": "string"
                              },
                              {
                                "const": "sensor",
                                "type": "string"
                              }
                            ]
                          },
                          "controller": {
                            "anyOf": [
                              {
                                "const": "none",
                                "type": "string"
                              },
                              {
                                "const": "character",
                                "type": "string"
                              }
                            ]
                          },
                          "role": {
                            "type": "string"
                          },
                          "canGrab": {
                            "anyOf": [
                              {
                                "const": false,
                                "type": "boolean"
                              },
                              {
                                "const": true,
                                "type": "boolean"
                              }
                            ]
                          },
                          "massKg": {
                            "type": "number"
                          },
                          "friction": {
                            "type": "number"
                          },
                          "restitution": {
                            "type": "number"
                          },
                          "colliders": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "shape": {
                                  "anyOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "const": "box",
                                          "type": "string"
                                        },
                                        "center": {
                                          "type": "array",
                                          "prefixItems": [
                                            {
                                              "type": "number"
                                            },
                                            {
                                              "type": "number"
                                            },
                                            {
                                              "type": "number"
                                            }
                                          ],
                                          "minItems": 3,
                                          "maxItems": 3,
                                          "items": false
                                        },
                                        "halfExtents": {
                                          "type": "array",
                                          "prefixItems": [
                                            {
                                              "type": "number"
                                            },
                                            {
                                              "type": "number"
                                            },
                                            {
                                              "type": "number"
                                            }
                                          ],
                                          "minItems": 3,
                                          "maxItems": 3,
                                          "items": false
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "center",
                                        "halfExtents"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "const": "convex",
                                          "type": "string"
                                        },
                                        "vertices": {
                                          "type": "array",
                                          "items": {
                                            "type": "number"
                                          }
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "vertices"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "const": "triangle-mesh",
                                          "type": "string"
                                        },
                                        "vertices": {
                                          "type": "array",
                                          "items": {
                                            "type": "number"
                                          }
                                        },
                                        "indices": {
                                          "type": "array",
                                          "items": {
                                            "type": "number"
                                          }
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "vertices",
                                        "indices"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                },
                                "volumeM3": {
                                  "type": "number"
                                },
                                "evidence": {
                                  "type": "string"
                                },
                                "approximate": {
                                  "anyOf": [
                                    {
                                      "const": false,
                                      "type": "boolean"
                                    },
                                    {
                                      "const": true,
                                      "type": "boolean"
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "shape",
                                "volumeM3",
                                "evidence",
                                "approximate"
                              ],
                              "additionalProperties": false
                            }
                          }
                        },
                        "required": [
                          "instanceId",
                          "motion",
                          "collision",
                          "controller",
                          "role",
                          "canGrab",
                          "massKg",
                          "friction",
                          "restitution",
                          "colliders"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "diagnostics": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "code": {
                            "type": "string"
                          },
                          "severity": {
                            "anyOf": [
                              {
                                "const": "error",
                                "type": "string"
                              },
                              {
                                "const": "warning",
                                "type": "string"
                              }
                            ]
                          },
                          "instanceId": {
                            "anyOf": [
                              {
                                "type": "null"
                              },
                              {
                                "type": "string"
                              }
                            ]
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "code",
                          "severity",
                          "instanceId",
                          "message"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "version",
                    "ready",
                    "gravity",
                    "stepSeconds",
                    "maxCatchUpSteps",
                    "bodies",
                    "diagnostics"
                  ],
                  "additionalProperties": false
                }
              },
              "required": [
                "schema",
                "schemaVersion",
                "semantic",
                "projection",
                "evaluations",
                "diagnostics",
                "provenance",
                "readiness"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "source",
            "sourceHash",
            "bindings",
            "dependencies",
            "versions",
            "scene"
          ],
          "additionalProperties": false
        }
      ]
    }
  },
  "required": [
    "schema",
    "schemaVersion",
    "projectId",
    "revision",
    "createdAt",
    "updatedAt",
    "draft",
    "accepted"
  ],
  "additionalProperties": false
}

rams.schema.json

Download rams.schema.json

Root propertyRequiredConstraint
presentationno{"type":"object","properties":{"template":{"const":"portfolio","type":"string"},"monogram":{"type":"string"},"rooms":{"type":"array","items":{"type":"object","properties":{"stableRoomId":{"type":"string"},"slug":{"type":"string"},"canonicalPath":{"type":"string"},"navigationTitle":{"type":"string"},"title":{"type":"string"},"subtitle":{"type":"string"},"seoTitle":{"type":"string"},"seoDescription":{"type":"string"},"html":{"type":"string"}},"required":["stableRoomId","slug","canonicalPath","navigationTitle","title","subtitle","seoTitle","seoDescription","html"],"additionalProperties":false}},"welcomeAudio":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"landscapeOnMobile":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"introState":{"anyOf":[{"type":"null"},{"type":"string"}]}},"required":["template","monogram","rooms","welcomeAudio","landscapeOnMobile","introState"],"additionalProperties":false}
versionyes{"const":"rams.site/1","type":"string"}
titleyes{"type":"string"}
localeyes{"anyOf":[{"const":"it","type":"string"},{"const":"en","type":"string"}]}
navigationyes{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"action":{"anyOf":[{"type":"object","properties":{"kind":{"anyOf":[{"const":"navigate","type":"string"},{"const":"focus","type":"string"},{"const":"overlay","type":"string"},{"const":"page","type":"string"},{"const":"info","type":"string"},{"const":"world-action","type":"string"},{"const":"cinematic","type":"string"}]},"target":{"type":"string"}},"required":["kind","target"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"external","type":"string"},"url":{"type":"string"}},"required":["kind","url"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"back","type":"string"}},"required":["kind"],"additionalProperties":false}]}},"required":["label","action"],"additionalProperties":false}}
footeryes{"type":"object","properties":{"text":{"type":"string"},"links":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"action":{"anyOf":[{"type":"object","properties":{"kind":{"anyOf":[{"const":"navigate","type":"string"},{"const":"focus","type":"string"},{"const":"overlay","type":"string"},{"const":"page","type":"string"},{"const":"info","type":"string"},{"const":"world-action","type":"string"},{"const":"cinematic","type":"string"}]},"target":{"type":"string"}},"required":["kind","target"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"external","type":"string"},"url":{"type":"string"}},"required":["kind","url"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"back","type":"string"}},"required":["kind"],"additionalProperties":false}]}},"required":["label","action"],"additionalProperties":false}},"branding":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]}},"required":["text","links","branding"],"additionalProperties":false}
roomsyes{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"description":{"type":"string"},"descriptionSource":{"anyOf":[{"const":"generated","type":"string"},{"const":"authored","type":"string"}]},"image":{"anyOf":[{"type":"null"},{"type":"string"}]},"actions":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"action":{"anyOf":[{"type":"object","properties":{"kind":{"anyOf":[{"const":"navigate","type":"string"},{"const":"focus","type":"string"},{"const":"overlay","type":"string"},{"const":"page","type":"string"},{"const":"info","type":"string"},{"const":"world-action","type":"string"},{"const":"cinematic","type":"string"}]},"target":{"type":"string"}},"required":["kind","target"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"external","type":"string"},"url":{"type":"string"}},"required":["kind","url"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"back","type":"string"}},"required":["kind"],"additionalProperties":false}]}},"required":["label","action"],"additionalProperties":false}}},"required":["id","title","summary","description","descriptionSource","image","actions"],"additionalProperties":false}}
roomInfoyes{"anyOf":[{"const":"card","type":"string"},{"const":"panel","type":"string"},{"const":"chat","type":"string"},{"const":"none","type":"string"}]}
overlaysyes{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"kind":{"anyOf":[{"const":"text","type":"string"},{"const":"project","type":"string"},{"const":"about","type":"string"},{"const":"gallery","type":"string"},{"const":"embed","type":"string"},{"const":"html","type":"string"},{"const":"contact","type":"string"},{"const":"component","type":"string"}]},"text":{"type":"string"},"images":{"type":"array","items":{"type":"string"}},"url":{"anyOf":[{"type":"null"},{"type":"string"}]},"fragment":{"anyOf":[{"type":"null"},{"type":"object","properties":{"html":{"type":"string"},"css":{"type":"string"},"script":{"type":"string"},"security":{"anyOf":[{"const":"safe","type":"string"},{"const":"controlled-script","type":"string"}]}},"required":["html","css","script","security"],"additionalProperties":false}]},"component":{"anyOf":[{"type":"null"},{"const":"chat","type":"string"},{"const":"rooms","type":"string"}]},"actions":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"action":{"anyOf":[{"type":"object","properties":{"kind":{"anyOf":[{"const":"navigate","type":"string"},{"const":"focus","type":"string"},{"const":"overlay","type":"string"},{"const":"page","type":"string"},{"const":"info","type":"string"},{"const":"world-action","type":"string"},{"const":"cinematic","type":"string"}]},"target":{"type":"string"}},"required":["kind","target"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"external","type":"string"},"url":{"type":"string"}},"required":["kind","url"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"back","type":"string"}},"required":["kind"],"additionalProperties":false}]}},"required":["label","action"],"additionalProperties":false}}},"required":["id","title","kind","text","images","url","fragment","component","actions"],"additionalProperties":false}}
pagesyes{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"kind":{"anyOf":[{"const":"text","type":"string"},{"const":"project","type":"string"},{"const":"about","type":"string"},{"const":"gallery","type":"string"},{"const":"embed","type":"string"},{"const":"html","type":"string"},{"const":"contact","type":"string"},{"const":"component","type":"string"}]},"text":{"type":"string"},"images":{"type":"array","items":{"type":"string"}},"url":{"anyOf":[{"type":"null"},{"type":"string"}]},"fragment":{"anyOf":[{"type":"null"},{"type":"object","properties":{"html":{"type":"string"},"css":{"type":"string"},"script":{"type":"string"},"security":{"anyOf":[{"const":"safe","type":"string"},{"const":"controlled-script","type":"string"}]}},"required":["html","css","script","security"],"additionalProperties":false}]},"component":{"anyOf":[{"type":"null"},{"const":"chat","type":"string"},{"const":"rooms","type":"string"}]},"actions":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"action":{"anyOf":[{"type":"object","properties":{"kind":{"anyOf":[{"const":"navigate","type":"string"},{"const":"focus","type":"string"},{"const":"overlay","type":"string"},{"const":"page","type":"string"},{"const":"info","type":"string"},{"const":"world-action","type":"string"},{"const":"cinematic","type":"string"}]},"target":{"type":"string"}},"required":["kind","target"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"external","type":"string"},"url":{"type":"string"}},"required":["kind","url"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"back","type":"string"}},"required":["kind"],"additionalProperties":false}]}},"required":["label","action"],"additionalProperties":false}}},"required":["id","title","kind","text","images","url","fragment","component","actions"],"additionalProperties":false}}
assetsyes{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"alt":{"type":"string"},"data":{"type":"string"}},"required":["id","alt","data"],"additionalProperties":false}}
themeyes{"type":"object","properties":{"mode":{"anyOf":[{"const":"dark","type":"string"},{"const":"light","type":"string"},{"const":"system","type":"string"}]},"font":{"anyOf":[{"const":"system","type":"string"},{"const":"serif","type":"string"},{"const":"mono","type":"string"}]},"fontSize":{"type":"number"},"spacing":{"type":"number"},"radius":{"type":"number"},"background":{"type":"string"},"foreground":{"type":"string"},"accent":{"type":"string"},"navigation":{"anyOf":[{"const":"solid","type":"string"},{"const":"glass","type":"string"}]},"footer":{"anyOf":[{"const":"compact","type":"string"},{"const":"expanded","type":"string"}]},"overlay":{"anyOf":[{"const":"center","type":"string"},{"const":"side","type":"string"}]},"transitions":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"logo":{"anyOf":[{"type":"null"},{"type":"string"}]}},"required":["mode","font","fontSize","spacing","radius","background","foreground","accent","navigation","footer","overlay","transitions","logo"],"additionalProperties":false}
contactyes{"type":"object","properties":{"endpoint":{"anyOf":[{"type":"null"},{"type":"string"}]},"alternative":{"type":"string"},"privacy":{"type":"string"},"fields":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string"},"required":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]}},"required":["id","label","required"],"additionalProperties":false}},"honeypot":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]}},"required":["endpoint","alternative","privacy","fields","honeypot"],"additionalProperties":false}
chatyes{"type":"object","properties":{"enabled":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"welcome":{"type":"string"}},"required":["enabled","welcome"],"additionalProperties":false}
securityyes{"type":"object","properties":{"embedOrigins":{"type":"array","items":{"type":"string"}}},"required":["embedOrigins"],"additionalProperties":false}
deployyes{"type":"object","properties":{"target":{"const":"static","type":"string"},"basePath":{"type":"string"},"profiles":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"transport":{"anyOf":[{"const":"local","type":"string"},{"const":"ssh","type":"string"},{"const":"sftp","type":"string"},{"const":"rsync","type":"string"},{"const":"scp","type":"string"},{"const":"ftp","type":"string"},{"const":"ftps","type":"string"},{"const":"custom","type":"string"}]},"host":{"type":"string"},"port":{"type":"number"},"username":{"type":"string"},"destination":{"type":"string"},"credentialRef":{"type":"string"},"strategy":{"anyOf":[{"const":"atomic","type":"string"},{"const":"directory","type":"string"}]},"buildProfile":{"const":"production","type":"string"},"preDeploy":{"const":"verify","type":"string"},"postDeploy":{"const":"healthcheck","type":"string"},"healthCheck":{"type":"object","properties":{"url":{"type":"string"},"expectedStatus":{"type":"number"},"expectedText":{"type":"string"}},"required":["url","expectedStatus","expectedText"],"additionalProperties":false},"timeout":{"type":"number"},"keepReleases":{"type":"number"},"compression":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"clean":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"passive":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"tls":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]}},"required":["id","name","transport","host","port","username","destination","credentialRef","strategy","buildProfile","preDeploy","postDeploy","healthCheck","timeout","keepReleases","compression","clean","passive","tls"],"additionalProperties":false}}},"required":["target","basePath"],"additionalProperties":false}
Complete schema including nested definitions
JSON
{
  "type": "object",
  "properties": {
    "presentation": {
      "type": "object",
      "properties": {
        "template": {
          "const": "portfolio",
          "type": "string"
        },
        "monogram": {
          "type": "string"
        },
        "rooms": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "stableRoomId": {
                "type": "string"
              },
              "slug": {
                "type": "string"
              },
              "canonicalPath": {
                "type": "string"
              },
              "navigationTitle": {
                "type": "string"
              },
              "title": {
                "type": "string"
              },
              "subtitle": {
                "type": "string"
              },
              "seoTitle": {
                "type": "string"
              },
              "seoDescription": {
                "type": "string"
              },
              "html": {
                "type": "string"
              }
            },
            "required": [
              "stableRoomId",
              "slug",
              "canonicalPath",
              "navigationTitle",
              "title",
              "subtitle",
              "seoTitle",
              "seoDescription",
              "html"
            ],
            "additionalProperties": false
          }
        },
        "welcomeAudio": {
          "anyOf": [
            {
              "const": false,
              "type": "boolean"
            },
            {
              "const": true,
              "type": "boolean"
            }
          ]
        },
        "landscapeOnMobile": {
          "anyOf": [
            {
              "const": false,
              "type": "boolean"
            },
            {
              "const": true,
              "type": "boolean"
            }
          ]
        },
        "introState": {
          "anyOf": [
            {
              "type": "null"
            },
            {
              "type": "string"
            }
          ]
        }
      },
      "required": [
        "template",
        "monogram",
        "rooms",
        "welcomeAudio",
        "landscapeOnMobile",
        "introState"
      ],
      "additionalProperties": false
    },
    "version": {
      "const": "rams.site/1",
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "locale": {
      "anyOf": [
        {
          "const": "it",
          "type": "string"
        },
        {
          "const": "en",
          "type": "string"
        }
      ]
    },
    "navigation": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "action": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "kind": {
                    "anyOf": [
                      {
                        "const": "navigate",
                        "type": "string"
                      },
                      {
                        "const": "focus",
                        "type": "string"
                      },
                      {
                        "const": "overlay",
                        "type": "string"
                      },
                      {
                        "const": "page",
                        "type": "string"
                      },
                      {
                        "const": "info",
                        "type": "string"
                      },
                      {
                        "const": "world-action",
                        "type": "string"
                      },
                      {
                        "const": "cinematic",
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "type": "string"
                  }
                },
                "required": [
                  "kind",
                  "target"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "kind": {
                    "const": "external",
                    "type": "string"
                  },
                  "url": {
                    "type": "string"
                  }
                },
                "required": [
                  "kind",
                  "url"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "kind": {
                    "const": "back",
                    "type": "string"
                  }
                },
                "required": [
                  "kind"
                ],
                "additionalProperties": false
              }
            ]
          }
        },
        "required": [
          "label",
          "action"
        ],
        "additionalProperties": false
      }
    },
    "footer": {
      "type": "object",
      "properties": {
        "text": {
          "type": "string"
        },
        "links": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "label": {
                "type": "string"
              },
              "action": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "anyOf": [
                          {
                            "const": "navigate",
                            "type": "string"
                          },
                          {
                            "const": "focus",
                            "type": "string"
                          },
                          {
                            "const": "overlay",
                            "type": "string"
                          },
                          {
                            "const": "page",
                            "type": "string"
                          },
                          {
                            "const": "info",
                            "type": "string"
                          },
                          {
                            "const": "world-action",
                            "type": "string"
                          },
                          {
                            "const": "cinematic",
                            "type": "string"
                          }
                        ]
                      },
                      "target": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "kind",
                      "target"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "const": "external",
                        "type": "string"
                      },
                      "url": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "kind",
                      "url"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "const": "back",
                        "type": "string"
                      }
                    },
                    "required": [
                      "kind"
                    ],
                    "additionalProperties": false
                  }
                ]
              }
            },
            "required": [
              "label",
              "action"
            ],
            "additionalProperties": false
          }
        },
        "branding": {
          "anyOf": [
            {
              "const": false,
              "type": "boolean"
            },
            {
              "const": true,
              "type": "boolean"
            }
          ]
        }
      },
      "required": [
        "text",
        "links",
        "branding"
      ],
      "additionalProperties": false
    },
    "rooms": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "summary": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "descriptionSource": {
            "anyOf": [
              {
                "const": "generated",
                "type": "string"
              },
              {
                "const": "authored",
                "type": "string"
              }
            ]
          },
          "image": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "actions": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "label": {
                  "type": "string"
                },
                "action": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "kind": {
                          "anyOf": [
                            {
                              "const": "navigate",
                              "type": "string"
                            },
                            {
                              "const": "focus",
                              "type": "string"
                            },
                            {
                              "const": "overlay",
                              "type": "string"
                            },
                            {
                              "const": "page",
                              "type": "string"
                            },
                            {
                              "const": "info",
                              "type": "string"
                            },
                            {
                              "const": "world-action",
                              "type": "string"
                            },
                            {
                              "const": "cinematic",
                              "type": "string"
                            }
                          ]
                        },
                        "target": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "kind",
                        "target"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "kind": {
                          "const": "external",
                          "type": "string"
                        },
                        "url": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "kind",
                        "url"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "kind": {
                          "const": "back",
                          "type": "string"
                        }
                      },
                      "required": [
                        "kind"
                      ],
                      "additionalProperties": false
                    }
                  ]
                }
              },
              "required": [
                "label",
                "action"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "id",
          "title",
          "summary",
          "description",
          "descriptionSource",
          "image",
          "actions"
        ],
        "additionalProperties": false
      }
    },
    "roomInfo": {
      "anyOf": [
        {
          "const": "card",
          "type": "string"
        },
        {
          "const": "panel",
          "type": "string"
        },
        {
          "const": "chat",
          "type": "string"
        },
        {
          "const": "none",
          "type": "string"
        }
      ]
    },
    "overlays": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "kind": {
            "anyOf": [
              {
                "const": "text",
                "type": "string"
              },
              {
                "const": "project",
                "type": "string"
              },
              {
                "const": "about",
                "type": "string"
              },
              {
                "const": "gallery",
                "type": "string"
              },
              {
                "const": "embed",
                "type": "string"
              },
              {
                "const": "html",
                "type": "string"
              },
              {
                "const": "contact",
                "type": "string"
              },
              {
                "const": "component",
                "type": "string"
              }
            ]
          },
          "text": {
            "type": "string"
          },
          "images": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "url": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "fragment": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "object",
                "properties": {
                  "html": {
                    "type": "string"
                  },
                  "css": {
                    "type": "string"
                  },
                  "script": {
                    "type": "string"
                  },
                  "security": {
                    "anyOf": [
                      {
                        "const": "safe",
                        "type": "string"
                      },
                      {
                        "const": "controlled-script",
                        "type": "string"
                      }
                    ]
                  }
                },
                "required": [
                  "html",
                  "css",
                  "script",
                  "security"
                ],
                "additionalProperties": false
              }
            ]
          },
          "component": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "const": "chat",
                "type": "string"
              },
              {
                "const": "rooms",
                "type": "string"
              }
            ]
          },
          "actions": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "label": {
                  "type": "string"
                },
                "action": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "kind": {
                          "anyOf": [
                            {
                              "const": "navigate",
                              "type": "string"
                            },
                            {
                              "const": "focus",
                              "type": "string"
                            },
                            {
                              "const": "overlay",
                              "type": "string"
                            },
                            {
                              "const": "page",
                              "type": "string"
                            },
                            {
                              "const": "info",
                              "type": "string"
                            },
                            {
                              "const": "world-action",
                              "type": "string"
                            },
                            {
                              "const": "cinematic",
                              "type": "string"
                            }
                          ]
                        },
                        "target": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "kind",
                        "target"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "kind": {
                          "const": "external",
                          "type": "string"
                        },
                        "url": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "kind",
                        "url"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "kind": {
                          "const": "back",
                          "type": "string"
                        }
                      },
                      "required": [
                        "kind"
                      ],
                      "additionalProperties": false
                    }
                  ]
                }
              },
              "required": [
                "label",
                "action"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "id",
          "title",
          "kind",
          "text",
          "images",
          "url",
          "fragment",
          "component",
          "actions"
        ],
        "additionalProperties": false
      }
    },
    "pages": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "kind": {
            "anyOf": [
              {
                "const": "text",
                "type": "string"
              },
              {
                "const": "project",
                "type": "string"
              },
              {
                "const": "about",
                "type": "string"
              },
              {
                "const": "gallery",
                "type": "string"
              },
              {
                "const": "embed",
                "type": "string"
              },
              {
                "const": "html",
                "type": "string"
              },
              {
                "const": "contact",
                "type": "string"
              },
              {
                "const": "component",
                "type": "string"
              }
            ]
          },
          "text": {
            "type": "string"
          },
          "images": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "url": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "fragment": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "object",
                "properties": {
                  "html": {
                    "type": "string"
                  },
                  "css": {
                    "type": "string"
                  },
                  "script": {
                    "type": "string"
                  },
                  "security": {
                    "anyOf": [
                      {
                        "const": "safe",
                        "type": "string"
                      },
                      {
                        "const": "controlled-script",
                        "type": "string"
                      }
                    ]
                  }
                },
                "required": [
                  "html",
                  "css",
                  "script",
                  "security"
                ],
                "additionalProperties": false
              }
            ]
          },
          "component": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "const": "chat",
                "type": "string"
              },
              {
                "const": "rooms",
                "type": "string"
              }
            ]
          },
          "actions": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "label": {
                  "type": "string"
                },
                "action": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "kind": {
                          "anyOf": [
                            {
                              "const": "navigate",
                              "type": "string"
                            },
                            {
                              "const": "focus",
                              "type": "string"
                            },
                            {
                              "const": "overlay",
                              "type": "string"
                            },
                            {
                              "const": "page",
                              "type": "string"
                            },
                            {
                              "const": "info",
                              "type": "string"
                            },
                            {
                              "const": "world-action",
                              "type": "string"
                            },
                            {
                              "const": "cinematic",
                              "type": "string"
                            }
                          ]
                        },
                        "target": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "kind",
                        "target"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "kind": {
                          "const": "external",
                          "type": "string"
                        },
                        "url": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "kind",
                        "url"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "kind": {
                          "const": "back",
                          "type": "string"
                        }
                      },
                      "required": [
                        "kind"
                      ],
                      "additionalProperties": false
                    }
                  ]
                }
              },
              "required": [
                "label",
                "action"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "id",
          "title",
          "kind",
          "text",
          "images",
          "url",
          "fragment",
          "component",
          "actions"
        ],
        "additionalProperties": false
      }
    },
    "assets": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "alt": {
            "type": "string"
          },
          "data": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "alt",
          "data"
        ],
        "additionalProperties": false
      }
    },
    "theme": {
      "type": "object",
      "properties": {
        "mode": {
          "anyOf": [
            {
              "const": "dark",
              "type": "string"
            },
            {
              "const": "light",
              "type": "string"
            },
            {
              "const": "system",
              "type": "string"
            }
          ]
        },
        "font": {
          "anyOf": [
            {
              "const": "system",
              "type": "string"
            },
            {
              "const": "serif",
              "type": "string"
            },
            {
              "const": "mono",
              "type": "string"
            }
          ]
        },
        "fontSize": {
          "type": "number"
        },
        "spacing": {
          "type": "number"
        },
        "radius": {
          "type": "number"
        },
        "background": {
          "type": "string"
        },
        "foreground": {
          "type": "string"
        },
        "accent": {
          "type": "string"
        },
        "navigation": {
          "anyOf": [
            {
              "const": "solid",
              "type": "string"
            },
            {
              "const": "glass",
              "type": "string"
            }
          ]
        },
        "footer": {
          "anyOf": [
            {
              "const": "compact",
              "type": "string"
            },
            {
              "const": "expanded",
              "type": "string"
            }
          ]
        },
        "overlay": {
          "anyOf": [
            {
              "const": "center",
              "type": "string"
            },
            {
              "const": "side",
              "type": "string"
            }
          ]
        },
        "transitions": {
          "anyOf": [
            {
              "const": false,
              "type": "boolean"
            },
            {
              "const": true,
              "type": "boolean"
            }
          ]
        },
        "logo": {
          "anyOf": [
            {
              "type": "null"
            },
            {
              "type": "string"
            }
          ]
        }
      },
      "required": [
        "mode",
        "font",
        "fontSize",
        "spacing",
        "radius",
        "background",
        "foreground",
        "accent",
        "navigation",
        "footer",
        "overlay",
        "transitions",
        "logo"
      ],
      "additionalProperties": false
    },
    "contact": {
      "type": "object",
      "properties": {
        "endpoint": {
          "anyOf": [
            {
              "type": "null"
            },
            {
              "type": "string"
            }
          ]
        },
        "alternative": {
          "type": "string"
        },
        "privacy": {
          "type": "string"
        },
        "fields": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "label": {
                "type": "string"
              },
              "required": {
                "anyOf": [
                  {
                    "const": false,
                    "type": "boolean"
                  },
                  {
                    "const": true,
                    "type": "boolean"
                  }
                ]
              }
            },
            "required": [
              "id",
              "label",
              "required"
            ],
            "additionalProperties": false
          }
        },
        "honeypot": {
          "anyOf": [
            {
              "const": false,
              "type": "boolean"
            },
            {
              "const": true,
              "type": "boolean"
            }
          ]
        }
      },
      "required": [
        "endpoint",
        "alternative",
        "privacy",
        "fields",
        "honeypot"
      ],
      "additionalProperties": false
    },
    "chat": {
      "type": "object",
      "properties": {
        "enabled": {
          "anyOf": [
            {
              "const": false,
              "type": "boolean"
            },
            {
              "const": true,
              "type": "boolean"
            }
          ]
        },
        "welcome": {
          "type": "string"
        }
      },
      "required": [
        "enabled",
        "welcome"
      ],
      "additionalProperties": false
    },
    "security": {
      "type": "object",
      "properties": {
        "embedOrigins": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "embedOrigins"
      ],
      "additionalProperties": false
    },
    "deploy": {
      "type": "object",
      "properties": {
        "target": {
          "const": "static",
          "type": "string"
        },
        "basePath": {
          "type": "string"
        },
        "profiles": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "transport": {
                "anyOf": [
                  {
                    "const": "local",
                    "type": "string"
                  },
                  {
                    "const": "ssh",
                    "type": "string"
                  },
                  {
                    "const": "sftp",
                    "type": "string"
                  },
                  {
                    "const": "rsync",
                    "type": "string"
                  },
                  {
                    "const": "scp",
                    "type": "string"
                  },
                  {
                    "const": "ftp",
                    "type": "string"
                  },
                  {
                    "const": "ftps",
                    "type": "string"
                  },
                  {
                    "const": "custom",
                    "type": "string"
                  }
                ]
              },
              "host": {
                "type": "string"
              },
              "port": {
                "type": "number"
              },
              "username": {
                "type": "string"
              },
              "destination": {
                "type": "string"
              },
              "credentialRef": {
                "type": "string"
              },
              "strategy": {
                "anyOf": [
                  {
                    "const": "atomic",
                    "type": "string"
                  },
                  {
                    "const": "directory",
                    "type": "string"
                  }
                ]
              },
              "buildProfile": {
                "const": "production",
                "type": "string"
              },
              "preDeploy": {
                "const": "verify",
                "type": "string"
              },
              "postDeploy": {
                "const": "healthcheck",
                "type": "string"
              },
              "healthCheck": {
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "expectedStatus": {
                    "type": "number"
                  },
                  "expectedText": {
                    "type": "string"
                  }
                },
                "required": [
                  "url",
                  "expectedStatus",
                  "expectedText"
                ],
                "additionalProperties": false
              },
              "timeout": {
                "type": "number"
              },
              "keepReleases": {
                "type": "number"
              },
              "compression": {
                "anyOf": [
                  {
                    "const": false,
                    "type": "boolean"
                  },
                  {
                    "const": true,
                    "type": "boolean"
                  }
                ]
              },
              "clean": {
                "anyOf": [
                  {
                    "const": false,
                    "type": "boolean"
                  },
                  {
                    "const": true,
                    "type": "boolean"
                  }
                ]
              },
              "passive": {
                "anyOf": [
                  {
                    "const": false,
                    "type": "boolean"
                  },
                  {
                    "const": true,
                    "type": "boolean"
                  }
                ]
              },
              "tls": {
                "anyOf": [
                  {
                    "const": false,
                    "type": "boolean"
                  },
                  {
                    "const": true,
                    "type": "boolean"
                  }
                ]
              }
            },
            "required": [
              "id",
              "name",
              "transport",
              "host",
              "port",
              "username",
              "destination",
              "credentialRef",
              "strategy",
              "buildProfile",
              "preDeploy",
              "postDeploy",
              "healthCheck",
              "timeout",
              "keepReleases",
              "compression",
              "clean",
              "passive",
              "tls"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "target",
        "basePath"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "version",
    "title",
    "locale",
    "navigation",
    "footer",
    "rooms",
    "roomInfo",
    "overlays",
    "pages",
    "assets",
    "theme",
    "contact",
    "chat",
    "security",
    "deploy"
  ],
  "additionalProperties": false
}

RidleySuggestion

Download ridley-edits.schema.json

Root propertyRequiredConstraint
operationsyes{"items":{"anyOf":[{"$ref":"#/$defs/ShotEdit"},{"$ref":"#/$defs/TextEdit"},{"$ref":"#/$defs/ActionEdit"},{"$ref":"#/$defs/SignalEdit"},{"$ref":"#/$defs/TriggerEdit"},{"$ref":"#/$defs/RemoveCueEdit"},{"$ref":"#/$defs/ExperienceStateEdit"},{"$ref":"#/$defs/ExperienceTransitionEdit"},{"$ref":"#/$defs/MusicEdit"},{"$ref":"#/$defs/SfxEdit"}]},"maxItems":32,"title":"Operations","type":"array"}
warningsyes{"items":{"maxLength":240,"type":"string"},"maxItems":8,"title":"Warnings","type":"array"}
Complete schema including nested definitions
JSON
{
  "$defs": {
    "ActionEdit": {
      "additionalProperties": false,
      "properties": {
        "film": {
          "pattern": "^[A-Za-z_][A-Za-z0-9_-]{0,99}$",
          "title": "Film",
          "type": "string"
        },
        "id": {
          "pattern": "^[A-Za-z_][A-Za-z0-9_-]{0,99}$",
          "title": "Id",
          "type": "string"
        },
        "at": {
          "maximum": 3600,
          "minimum": 0,
          "title": "At",
          "type": "number"
        },
        "duration": {
          "exclusiveMinimum": 0,
          "maximum": 3600,
          "title": "Duration",
          "type": "number"
        },
        "kind": {
          "const": "action",
          "title": "Kind",
          "type": "string"
        },
        "actor": {
          "format": "uuid",
          "title": "Actor",
          "type": "string"
        },
        "action": {
          "enum": [
            "look-at",
            "move-to",
            "animate"
          ],
          "title": "Action",
          "type": "string"
        },
        "target": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Target"
        },
        "clip": {
          "anyOf": [
            {
              "minimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Clip"
        },
        "persistence": {
          "enum": [
            "temporary",
            "runtime"
          ],
          "title": "Persistence",
          "type": "string"
        }
      },
      "required": [
        "film",
        "id",
        "at",
        "duration",
        "kind",
        "actor",
        "action",
        "target",
        "clip",
        "persistence"
      ],
      "title": "ActionEdit",
      "type": "object"
    },
    "ConversationPolicy": {
      "additionalProperties": false,
      "properties": {
        "actor": {
          "format": "uuid",
          "title": "Actor",
          "type": "string"
        },
        "profileId": {
          "format": "uuid",
          "title": "Profileid",
          "type": "string"
        }
      },
      "required": [
        "actor",
        "profileId"
      ],
      "title": "ConversationPolicy",
      "type": "object"
    },
    "ExperienceStateEdit": {
      "additionalProperties": false,
      "properties": {
        "kind": {
          "const": "experience-state",
          "title": "Kind",
          "type": "string"
        },
        "id": {
          "pattern": "^[A-Za-z_][A-Za-z0-9_-]{0,99}$",
          "title": "Id",
          "type": "string"
        },
        "mode": {
          "enum": [
            "interactive",
            "cinematic",
            "conversation"
          ],
          "title": "Mode",
          "type": "string"
        },
        "conversation": {
          "anyOf": [
            {
              "$ref": "#/$defs/ConversationPolicy"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "cinematic": {
          "anyOf": [
            {
              "pattern": "^[A-Za-z_][A-Za-z0-9_-]{0,99}$",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Cinematic"
        },
        "control": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Control"
        },
        "camera": {
          "enum": [
            "third-person",
            "first-person",
            "overhead",
            "overview"
          ],
          "title": "Camera",
          "type": "string"
        },
        "userCamera": {
          "title": "Usercamera",
          "type": "boolean"
        },
        "followers": {
          "items": {
            "$ref": "#/$defs/FollowPolicy"
          },
          "maxItems": 64,
          "title": "Followers",
          "type": "array"
        },
        "audio": {
          "items": {
            "$ref": "#/$defs/MusicPolicy"
          },
          "maxItems": 64,
          "title": "Audio",
          "type": "array"
        }
      },
      "required": [
        "kind",
        "id",
        "mode",
        "cinematic",
        "control",
        "camera",
        "userCamera",
        "followers",
        "audio"
      ],
      "title": "ExperienceStateEdit",
      "type": "object"
    },
    "ExperienceTransitionEdit": {
      "additionalProperties": false,
      "properties": {
        "kind": {
          "const": "experience-transition",
          "title": "Kind",
          "type": "string"
        },
        "id": {
          "pattern": "^[A-Za-z_][A-Za-z0-9_-]{0,99}$",
          "title": "Id",
          "type": "string"
        },
        "from": {
          "pattern": "^[A-Za-z_][A-Za-z0-9_-]{0,99}$",
          "title": "From",
          "type": "string"
        },
        "to": {
          "pattern": "^[A-Za-z_][A-Za-z0-9_-]{0,99}$",
          "title": "To",
          "type": "string"
        },
        "event": {
          "pattern": "^[A-Za-z_][A-Za-z0-9_.:-]{0,99}$",
          "title": "Event",
          "type": "string"
        },
        "subject": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Subject"
        },
        "target": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Target"
        },
        "once": {
          "title": "Once",
          "type": "boolean"
        }
      },
      "required": [
        "kind",
        "id",
        "from",
        "to",
        "event",
        "subject",
        "target",
        "once"
      ],
      "title": "ExperienceTransitionEdit",
      "type": "object"
    },
    "FollowPolicy": {
      "additionalProperties": false,
      "properties": {
        "actor": {
          "format": "uuid",
          "title": "Actor",
          "type": "string"
        },
        "target": {
          "format": "uuid",
          "title": "Target",
          "type": "string"
        },
        "distance": {
          "maximum": 20,
          "minimum": 0.1,
          "title": "Distance",
          "type": "number"
        },
        "delay": {
          "maximum": 60,
          "minimum": 0,
          "title": "Delay",
          "type": "number"
        },
        "speed": {
          "exclusiveMinimum": 0,
          "maximum": 5,
          "title": "Speed",
          "type": "number"
        }
      },
      "required": [
        "actor",
        "target",
        "distance",
        "delay",
        "speed"
      ],
      "title": "FollowPolicy",
      "type": "object"
    },
    "MusicEdit": {
      "additionalProperties": false,
      "properties": {
        "kind": {
          "const": "music",
          "title": "Kind",
          "type": "string"
        },
        "film": {
          "pattern": "^[A-Za-z_][A-Za-z0-9_-]{0,99}$",
          "title": "Film",
          "type": "string"
        },
        "id": {
          "pattern": "^[A-Za-z_][A-Za-z0-9_-]{0,99}$",
          "title": "Id",
          "type": "string"
        },
        "at": {
          "maximum": 3600,
          "minimum": 0,
          "title": "At",
          "type": "number"
        },
        "command": {
          "$ref": "#/$defs/MusicPolicy"
        }
      },
      "required": [
        "kind",
        "film",
        "id",
        "at",
        "command"
      ],
      "title": "MusicEdit",
      "type": "object"
    },
    "MusicPolicy": {
      "additionalProperties": false,
      "properties": {
        "action": {
          "enum": [
            "play",
            "stop",
            "crossfade"
          ],
          "title": "Action",
          "type": "string"
        },
        "assetId": {
          "format": "uuid",
          "title": "Assetid",
          "type": "string"
        },
        "from": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "From"
        },
        "volume": {
          "maximum": 1,
          "minimum": 0,
          "title": "Volume",
          "type": "number"
        },
        "fade": {
          "maximum": 30,
          "minimum": 0,
          "title": "Fade",
          "type": "number"
        },
        "loop": {
          "title": "Loop",
          "type": "boolean"
        }
      },
      "required": [
        "action",
        "assetId",
        "from",
        "volume",
        "fade",
        "loop"
      ],
      "title": "MusicPolicy",
      "type": "object"
    },
    "RemoveCueEdit": {
      "additionalProperties": false,
      "properties": {
        "kind": {
          "const": "remove-cue",
          "title": "Kind",
          "type": "string"
        },
        "film": {
          "pattern": "^[A-Za-z_][A-Za-z0-9_-]{0,99}$",
          "title": "Film",
          "type": "string"
        },
        "id": {
          "pattern": "^[A-Za-z_][A-Za-z0-9_-]{0,99}$",
          "title": "Id",
          "type": "string"
        }
      },
      "required": [
        "kind",
        "film",
        "id"
      ],
      "title": "RemoveCueEdit",
      "type": "object"
    },
    "SfxEdit": {
      "additionalProperties": false,
      "properties": {
        "kind": {
          "const": "sfx",
          "title": "Kind",
          "type": "string"
        },
        "film": {
          "pattern": "^[A-Za-z_][A-Za-z0-9_-]{0,99}$",
          "title": "Film",
          "type": "string"
        },
        "id": {
          "pattern": "^[A-Za-z_][A-Za-z0-9_-]{0,99}$",
          "title": "Id",
          "type": "string"
        },
        "at": {
          "maximum": 3600,
          "minimum": 0,
          "title": "At",
          "type": "number"
        },
        "assetId": {
          "format": "uuid",
          "title": "Assetid",
          "type": "string"
        },
        "spatial": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Spatial"
        },
        "volume": {
          "maximum": 1,
          "minimum": 0,
          "title": "Volume",
          "type": "number"
        }
      },
      "required": [
        "kind",
        "film",
        "id",
        "at",
        "assetId",
        "spatial",
        "volume"
      ],
      "title": "SfxEdit",
      "type": "object"
    },
    "ShotEdit": {
      "additionalProperties": false,
      "properties": {
        "film": {
          "pattern": "^[A-Za-z_][A-Za-z0-9_-]{0,99}$",
          "title": "Film",
          "type": "string"
        },
        "id": {
          "pattern": "^[A-Za-z_][A-Za-z0-9_-]{0,99}$",
          "title": "Id",
          "type": "string"
        },
        "at": {
          "maximum": 3600,
          "minimum": 0,
          "title": "At",
          "type": "number"
        },
        "duration": {
          "exclusiveMinimum": 0,
          "maximum": 3600,
          "title": "Duration",
          "type": "number"
        },
        "kind": {
          "const": "shot",
          "title": "Kind",
          "type": "string"
        },
        "shotType": {
          "enum": [
            "extreme-closeup",
            "closeup",
            "medium-closeup",
            "medium",
            "american",
            "full",
            "long",
            "extreme-long",
            "two-shot",
            "over-the-shoulder",
            "pov",
            "establishing",
            "insert"
          ],
          "title": "Shottype",
          "type": "string"
        },
        "subjects": {
          "items": {
            "format": "uuid",
            "type": "string"
          },
          "maxItems": 8,
          "minItems": 1,
          "title": "Subjects",
          "type": "array"
        },
        "shoulder": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Shoulder"
        },
        "movement": {
          "enum": [
            "static",
            "pan",
            "tilt",
            "dolly",
            "truck",
            "pedestal",
            "orbit",
            "zoom",
            "follow",
            "crane"
          ],
          "title": "Movement",
          "type": "string"
        },
        "amount": {
          "maximum": 1,
          "minimum": -1,
          "title": "Amount",
          "type": "number"
        },
        "transition": {
          "enum": [
            "cut",
            "smooth"
          ],
          "title": "Transition",
          "type": "string"
        }
      },
      "required": [
        "film",
        "id",
        "at",
        "duration",
        "kind",
        "shotType",
        "subjects",
        "shoulder",
        "movement",
        "amount",
        "transition"
      ],
      "title": "ShotEdit",
      "type": "object"
    },
    "SignalEdit": {
      "additionalProperties": false,
      "properties": {
        "kind": {
          "enum": [
            "emit",
            "return"
          ],
          "title": "Kind",
          "type": "string"
        },
        "film": {
          "pattern": "^[A-Za-z_][A-Za-z0-9_-]{0,99}$",
          "title": "Film",
          "type": "string"
        },
        "id": {
          "pattern": "^[A-Za-z_][A-Za-z0-9_-]{0,99}$",
          "title": "Id",
          "type": "string"
        },
        "at": {
          "maximum": 3600,
          "minimum": 0,
          "title": "At",
          "type": "number"
        },
        "event": {
          "anyOf": [
            {
              "pattern": "^[A-Za-z_][A-Za-z0-9_.-]{0,99}$",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Event"
        },
        "target": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Target"
        }
      },
      "required": [
        "kind",
        "film",
        "id",
        "at",
        "event",
        "target"
      ],
      "title": "SignalEdit",
      "type": "object"
    },
    "TextEdit": {
      "additionalProperties": false,
      "properties": {
        "film": {
          "pattern": "^[A-Za-z_][A-Za-z0-9_-]{0,99}$",
          "title": "Film",
          "type": "string"
        },
        "id": {
          "pattern": "^[A-Za-z_][A-Za-z0-9_-]{0,99}$",
          "title": "Id",
          "type": "string"
        },
        "at": {
          "maximum": 3600,
          "minimum": 0,
          "title": "At",
          "type": "number"
        },
        "duration": {
          "exclusiveMinimum": 0,
          "maximum": 3600,
          "title": "Duration",
          "type": "number"
        },
        "kind": {
          "enum": [
            "dialogue",
            "subtitle",
            "narration"
          ],
          "title": "Kind",
          "type": "string"
        },
        "actor": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Actor"
        },
        "text": {
          "maxLength": 4000,
          "minLength": 1,
          "title": "Text",
          "type": "string"
        }
      },
      "required": [
        "film",
        "id",
        "at",
        "duration",
        "kind",
        "actor",
        "text"
      ],
      "title": "TextEdit",
      "type": "object"
    },
    "TriggerEdit": {
      "additionalProperties": false,
      "properties": {
        "kind": {
          "const": "trigger",
          "title": "Kind",
          "type": "string"
        },
        "id": {
          "pattern": "^[A-Za-z_][A-Za-z0-9_-]{0,99}$",
          "title": "Id",
          "type": "string"
        },
        "subject": {
          "format": "uuid",
          "title": "Subject",
          "type": "string"
        },
        "target": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Target"
        },
        "event": {
          "enum": [
            "near",
            "qway.object.enter",
            "qway.object.leave",
            "qway.relation.changed",
            "qway.interaction",
            "qway.trigger",
            "ridley.complete"
          ],
          "title": "Event",
          "type": "string"
        },
        "distance": {
          "exclusiveMinimum": 0,
          "maximum": 100,
          "title": "Distance",
          "type": "number"
        },
        "cinematic": {
          "pattern": "^[A-Za-z_][A-Za-z0-9_-]{0,99}$",
          "title": "Cinematic",
          "type": "string"
        },
        "once": {
          "title": "Once",
          "type": "boolean"
        }
      },
      "required": [
        "kind",
        "id",
        "subject",
        "target",
        "event",
        "distance",
        "cinematic",
        "once"
      ],
      "title": "TriggerEdit",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "properties": {
    "operations": {
      "items": {
        "anyOf": [
          {
            "$ref": "#/$defs/ShotEdit"
          },
          {
            "$ref": "#/$defs/TextEdit"
          },
          {
            "$ref": "#/$defs/ActionEdit"
          },
          {
            "$ref": "#/$defs/SignalEdit"
          },
          {
            "$ref": "#/$defs/TriggerEdit"
          },
          {
            "$ref": "#/$defs/RemoveCueEdit"
          },
          {
            "$ref": "#/$defs/ExperienceStateEdit"
          },
          {
            "$ref": "#/$defs/ExperienceTransitionEdit"
          },
          {
            "$ref": "#/$defs/MusicEdit"
          },
          {
            "$ref": "#/$defs/SfxEdit"
          }
        ]
      },
      "maxItems": 32,
      "title": "Operations",
      "type": "array"
    },
    "warnings": {
      "items": {
        "maxLength": 240,
        "type": "string"
      },
      "maxItems": 8,
      "title": "Warnings",
      "type": "array"
    }
  },
  "required": [
    "operations",
    "warnings"
  ],
  "title": "RidleySuggestion",
  "type": "object"
}

RoomProgram

Download room-program.schema.json

Root propertyRequiredConstraint
versionyes{"const":"qway.room-program/1","title":"Version","type":"string"}
archetypeyes{"pattern":"^[a-z][a-z0-9_.-]{0,99}$","title":"Archetype","type":"string"}
archetypeRevisionyes{"maxLength":100,"minLength":1,"title":"Archetyperevision","type":"string"}
purposeyes{"pattern":"^[a-z][a-z0-9_.-]{0,99}$","title":"Purpose","type":"string"}
capacityyes{"maximum":64,"minimum":1,"title":"Capacity","type":"integer"}
styleyes{"maxLength":100,"title":"Style","type":"string"}
zonesyes{"items":{"$ref":"#/$defs/FunctionalZone"},"maxItems":32,"minItems":1,"title":"Zones","type":"array"}
needsyes{"items":{"$ref":"#/$defs/ProgramNeed"},"maxItems":64,"title":"Needs","type":"array"}
rulesyes{"items":{"$ref":"#/$defs/ProgramRule"},"maxItems":128,"title":"Rules","type":"array"}
architectureyes{"items":{"$ref":"#/$defs/ArchitecturalNeed"},"maxItems":32,"title":"Architecture","type":"array"}
exclusionsyes{"items":{"$ref":"#/$defs/ProgramExclusion"},"maxItems":64,"title":"Exclusions","type":"array"}
uncertaintiesyes{"items":{"type":"string"},"maxItems":32,"title":"Uncertainties","type":"array"}
Complete schema including nested definitions
JSON
{
  "$defs": {
    "ArchitecturalNeed": {
      "additionalProperties": false,
      "properties": {
        "reference": {
          "pattern": "^[A-Za-z][A-Za-z0-9_-]{0,79}$",
          "title": "Reference",
          "type": "string"
        },
        "kind": {
          "enum": [
            "window",
            "portal",
            "wall-run",
            "open-center",
            "natural-light",
            "ceiling-light"
          ],
          "title": "Kind",
          "type": "string"
        },
        "quantity": {
          "maximum": 16,
          "minimum": 1,
          "title": "Quantity",
          "type": "integer"
        },
        "priority": {
          "enum": [
            "required",
            "recommended",
            "optional"
          ],
          "title": "Priority",
          "type": "string"
        },
        "evidence": {
          "$ref": "#/$defs/ProgramEvidence"
        }
      },
      "required": [
        "reference",
        "kind",
        "quantity",
        "priority",
        "evidence"
      ],
      "title": "ArchitecturalNeed",
      "type": "object"
    },
    "ExplicitProgramEvidence": {
      "additionalProperties": false,
      "properties": {
        "origin": {
          "const": "explicit",
          "title": "Origin",
          "type": "string"
        },
        "confidence": {
          "maximum": 1,
          "minimum": 0,
          "title": "Confidence",
          "type": "number"
        },
        "explanation": {
          "maxLength": 500,
          "minLength": 1,
          "title": "Explanation",
          "type": "string"
        }
      },
      "required": [
        "origin",
        "confidence",
        "explanation"
      ],
      "title": "ExplicitProgramEvidence",
      "type": "object"
    },
    "FunctionalZone": {
      "additionalProperties": false,
      "properties": {
        "reference": {
          "pattern": "^[A-Za-z][A-Za-z0-9_-]{0,79}$",
          "title": "Reference",
          "type": "string"
        },
        "purpose": {
          "maxLength": 100,
          "minLength": 1,
          "title": "Purpose",
          "type": "string"
        },
        "priority": {
          "enum": [
            "required",
            "recommended",
            "optional"
          ],
          "title": "Priority",
          "type": "string"
        }
      },
      "required": [
        "reference",
        "purpose",
        "priority"
      ],
      "title": "FunctionalZone",
      "type": "object"
    },
    "ProgramEvidence": {
      "additionalProperties": false,
      "properties": {
        "origin": {
          "enum": [
            "explicit",
            "archetype",
            "inferred"
          ],
          "title": "Origin",
          "type": "string"
        },
        "confidence": {
          "maximum": 1,
          "minimum": 0,
          "title": "Confidence",
          "type": "number"
        },
        "explanation": {
          "maxLength": 500,
          "minLength": 1,
          "title": "Explanation",
          "type": "string"
        }
      },
      "required": [
        "origin",
        "confidence",
        "explanation"
      ],
      "title": "ProgramEvidence",
      "type": "object"
    },
    "ProgramExclusion": {
      "additionalProperties": false,
      "properties": {
        "category": {
          "pattern": "^[a-z][a-z0-9_-]*\\.[a-z][a-z0-9_.-]{0,79}$",
          "title": "Category",
          "type": "string"
        },
        "evidence": {
          "$ref": "#/$defs/ExplicitProgramEvidence"
        }
      },
      "required": [
        "category",
        "evidence"
      ],
      "title": "ProgramExclusion",
      "type": "object"
    },
    "ProgramNeed": {
      "additionalProperties": false,
      "properties": {
        "reference": {
          "pattern": "^[A-Za-z][A-Za-z0-9_-]{0,79}$",
          "title": "Reference",
          "type": "string"
        },
        "category": {
          "pattern": "^[a-z][a-z0-9_-]*\\.[a-z][a-z0-9_.-]{0,79}$",
          "title": "Category",
          "type": "string"
        },
        "zone": {
          "maxLength": 80,
          "title": "Zone",
          "type": "string"
        },
        "quantity": {
          "maximum": 64,
          "minimum": 1,
          "title": "Quantity",
          "type": "integer"
        },
        "capacity": {
          "anyOf": [
            {
              "maximum": 64,
              "minimum": 1,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Capacity"
        },
        "priority": {
          "enum": [
            "required",
            "recommended",
            "optional"
          ],
          "title": "Priority",
          "type": "string"
        },
        "assetAlias": {
          "anyOf": [
            {
              "pattern": "^[a-z0-9][a-z0-9_.-]{0,99}$",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Assetalias"
        },
        "placement": {
          "enum": [
            "auto",
            "center",
            "perimeter"
          ],
          "title": "Placement",
          "type": "string"
        },
        "evidence": {
          "$ref": "#/$defs/ProgramEvidence"
        }
      },
      "required": [
        "reference",
        "category",
        "zone",
        "quantity",
        "capacity",
        "priority",
        "assetAlias",
        "placement",
        "evidence"
      ],
      "title": "ProgramNeed",
      "type": "object"
    },
    "ProgramRule": {
      "additionalProperties": false,
      "properties": {
        "reference": {
          "pattern": "^[A-Za-z][A-Za-z0-9_-]{0,79}$",
          "title": "Reference",
          "type": "string"
        },
        "kind": {
          "enum": [
            "on",
            "seating",
            "beside",
            "facing",
            "near-window",
            "wall-alignment",
            "interior",
            "access",
            "visibility",
            "clearance",
            "circulation",
            "minimum-dimensions",
            "unsupported"
          ],
          "title": "Kind",
          "type": "string"
        },
        "subjects": {
          "items": {
            "type": "string"
          },
          "maxItems": 64,
          "title": "Subjects",
          "type": "array"
        },
        "target": {
          "anyOf": [
            {
              "maxLength": 80,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Target"
        },
        "priority": {
          "enum": [
            "required",
            "recommended",
            "optional"
          ],
          "title": "Priority",
          "type": "string"
        },
        "strength": {
          "enum": [
            "hard",
            "soft"
          ],
          "title": "Strength",
          "type": "string"
        },
        "clearanceM": {
          "anyOf": [
            {
              "maximum": 100,
              "minimum": 0,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Clearancem"
        },
        "description": {
          "maxLength": 500,
          "minLength": 1,
          "title": "Description",
          "type": "string"
        },
        "evidence": {
          "$ref": "#/$defs/ProgramEvidence"
        }
      },
      "required": [
        "reference",
        "kind",
        "subjects",
        "target",
        "priority",
        "strength",
        "clearanceM",
        "description",
        "evidence"
      ],
      "title": "ProgramRule",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "properties": {
    "version": {
      "const": "qway.room-program/1",
      "title": "Version",
      "type": "string"
    },
    "archetype": {
      "pattern": "^[a-z][a-z0-9_.-]{0,99}$",
      "title": "Archetype",
      "type": "string"
    },
    "archetypeRevision": {
      "maxLength": 100,
      "minLength": 1,
      "title": "Archetyperevision",
      "type": "string"
    },
    "purpose": {
      "pattern": "^[a-z][a-z0-9_.-]{0,99}$",
      "title": "Purpose",
      "type": "string"
    },
    "capacity": {
      "maximum": 64,
      "minimum": 1,
      "title": "Capacity",
      "type": "integer"
    },
    "style": {
      "maxLength": 100,
      "title": "Style",
      "type": "string"
    },
    "zones": {
      "items": {
        "$ref": "#/$defs/FunctionalZone"
      },
      "maxItems": 32,
      "minItems": 1,
      "title": "Zones",
      "type": "array"
    },
    "needs": {
      "items": {
        "$ref": "#/$defs/ProgramNeed"
      },
      "maxItems": 64,
      "title": "Needs",
      "type": "array"
    },
    "rules": {
      "items": {
        "$ref": "#/$defs/ProgramRule"
      },
      "maxItems": 128,
      "title": "Rules",
      "type": "array"
    },
    "architecture": {
      "items": {
        "$ref": "#/$defs/ArchitecturalNeed"
      },
      "maxItems": 32,
      "title": "Architecture",
      "type": "array"
    },
    "exclusions": {
      "items": {
        "$ref": "#/$defs/ProgramExclusion"
      },
      "maxItems": 64,
      "title": "Exclusions",
      "type": "array"
    },
    "uncertainties": {
      "items": {
        "type": "string"
      },
      "maxItems": 32,
      "title": "Uncertainties",
      "type": "array"
    }
  },
  "required": [
    "version",
    "archetype",
    "archetypeRevision",
    "purpose",
    "capacity",
    "style",
    "zones",
    "needs",
    "rules",
    "architecture",
    "exclusions",
    "uncertainties"
  ],
  "title": "RoomProgram",
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

scene-v2.schema.json

Download scene-v2.schema.json

Root propertyRequiredConstraint
wrightno{"type":"object","properties":{"version":{"const":"wright.resolved/1","type":"string"},"topology":{"type":"object","properties":{"version":{"const":"wright.world/1","type":"string"},"identity":{"type":"string"},"rooms":{"type":"array","items":{"type":"object","properties":{"furnishing":{"type":"object","properties":{"roomProgram":{"type":"object","properties":{"repair":{"type":"object","properties":{"stage":{"const":"semantic","type":"string"},"attempts":{"type":"number"},"strategy":{"anyOf":[{"const":"none","type":"string"},{"const":"bounded-semantic-revision","type":"string"}]},"initialFailures":{"type":"array","items":{"type":"string"}},"finalState":{"const":"accepted","type":"string"},"relaxedConstraints":{"type":"array","items":{"type":"string"}}},"required":["stage","attempts","strategy","initialFailures","finalState","relaxedConstraints"],"additionalProperties":false},"enrichment":{"type":"object","properties":{"provider":{"type":"string"},"model":{"type":"string"},"version":{"type":"string"}},"required":["provider","model","version"],"additionalProperties":false},"intent":{"type":"object","properties":{"version":{"const":"qway.room-program/1","type":"string"},"archetype":{"type":"string"},"archetypeRevision":{"type":"string"},"purpose":{"type":"string"},"capacity":{"type":"number"},"style":{"type":"string"},"zones":{"type":"array","items":{"type":"object","properties":{"reference":{"type":"string"},"purpose":{"type":"string"},"priority":{"anyOf":[{"const":"required","type":"string"},{"const":"recommended","type":"string"},{"const":"optional","type":"string"}]}},"required":["reference","purpose","priority"],"additionalProperties":false}},"needs":{"type":"array","items":{"type":"object","properties":{"reference":{"type":"string"},"category":{"type":"string"},"zone":{"type":"string"},"quantity":{"type":"number"},"capacity":{"anyOf":[{"type":"null"},{"type":"number"}]},"priority":{"anyOf":[{"const":"required","type":"string"},{"const":"recommended","type":"string"},{"const":"optional","type":"string"}]},"assetAlias":{"anyOf":[{"type":"null"},{"type":"string"}]},"placement":{"anyOf":[{"const":"auto","type":"string"},{"const":"center","type":"string"},{"const":"perimeter","type":"string"}]},"evidence":{"type":"object","properties":{"origin":{"anyOf":[{"const":"explicit","type":"string"},{"const":"archetype","type":"string"},{"const":"inferred","type":"string"}]},"confidence":{"type":"number"},"explanation":{"type":"string"}},"required":["origin","confidence","explanation"],"additionalProperties":false}},"required":["reference","category","zone","quantity","capacity","priority","assetAlias","placement","evidence"],"additionalProperties":false}},"rules":{"type":"array","items":{"type":"object","properties":{"reference":{"type":"string"},"kind":{"anyOf":[{"const":"on","type":"string"},{"const":"seating","type":"string"},{"const":"beside","type":"string"},{"const":"facing","type":"string"},{"const":"near-window","type":"string"},{"const":"wall-alignment","type":"string"},{"const":"interior","type":"string"},{"const":"access","type":"string"},{"const":"visibility","type":"string"},{"const":"clearance","type":"string"},{"const":"circulation","type":"string"},{"const":"minimum-dimensions","type":"string"},{"const":"unsupported","type":"string"}]},"subjects":{"type":"array","items":{"type":"string"}},"target":{"anyOf":[{"type":"null"},{"type":"string"}]},"priority":{"anyOf":[{"const":"required","type":"string"},{"const":"recommended","type":"string"},{"const":"optional","type":"string"}]},"strength":{"anyOf":[{"const":"hard","type":"string"},{"const":"soft","type":"string"}]},"clearanceM":{"anyOf":[{"type":"null"},{"type":"number"}]},"description":{"type":"string"},"evidence":{"type":"object","properties":{"origin":{"anyOf":[{"const":"explicit","type":"string"},{"const":"archetype","type":"string"},{"const":"inferred","type":"string"}]},"confidence":{"type":"number"},"explanation":{"type":"string"}},"required":["origin","confidence","explanation"],"additionalProperties":false}},"required":["reference","kind","subjects","target","priority","strength","clearanceM","description","evidence"],"additionalProperties":false}},"architecture":{"type":"array","items":{"type":"object","properties":{"reference":{"type":"string"},"kind":{"anyOf":[{"const":"window","type":"string"},{"const":"portal","type":"string"},{"const":"wall-run","type":"string"},{"const":"open-center","type":"string"},{"const":"natural-light","type":"string"},{"const":"ceiling-light","type":"string"}]},"quantity":{"type":"number"},"priority":{"anyOf":[{"const":"required","type":"string"},{"const":"recommended","type":"string"},{"const":"optional","type":"string"}]},"evidence":{"type":"object","properties":{"origin":{"anyOf":[{"const":"explicit","type":"string"},{"const":"archetype","type":"string"},{"const":"inferred","type":"string"}]},"confidence":{"type":"number"},"explanation":{"type":"string"}},"required":["origin","confidence","explanation"],"additionalProperties":false}},"required":["reference","kind","quantity","priority","evidence"],"additionalProperties":false}},"exclusions":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"evidence":{"type":"object","properties":{"origin":{"const":"explicit","type":"string"},"confidence":{"type":"number"},"explanation":{"type":"string"}},"required":["origin","confidence","explanation"],"additionalProperties":false}},"required":["category","evidence"],"additionalProperties":false}},"uncertainties":{"type":"array","items":{"type":"string"}}},"required":["version","archetype","archetypeRevision","purpose","capacity","style","zones","needs","rules","architecture","exclusions","uncertainties"],"additionalProperties":false},"archetypeSnapshot":{"type":"object","properties":{"version":{"const":"qway.room-program/1","type":"string"},"archetype":{"type":"string"},"archetypeRevision":{"type":"string"},"purpose":{"type":"string"},"capacity":{"type":"number"},"style":{"type":"string"},"zones":{"type":"array","items":{"type":"object","properties":{"reference":{"type":"string"},"purpose":{"type":"string"},"priority":{"anyOf":[{"const":"required","type":"string"},{"const":"recommended","type":"string"},{"const":"optional","type":"string"}]}},"required":["reference","purpose","priority"],"additionalProperties":false}},"needs":{"type":"array","items":{"type":"object","properties":{"reference":{"type":"string"},"category":{"type":"string"},"zone":{"type":"string"},"quantity":{"type":"number"},"capacity":{"anyOf":[{"type":"null"},{"type":"number"}]},"priority":{"anyOf":[{"const":"required","type":"string"},{"const":"recommended","type":"string"},{"const":"optional","type":"string"}]},"assetAlias":{"anyOf":[{"type":"null"},{"type":"string"}]},"placement":{"anyOf":[{"const":"auto","type":"string"},{"const":"center","type":"string"},{"const":"perimeter","type":"string"}]},"evidence":{"type":"object","properties":{"origin":{"anyOf":[{"const":"explicit","type":"string"},{"const":"archetype","type":"string"},{"const":"inferred","type":"string"}]},"confidence":{"type":"number"},"explanation":{"type":"string"}},"required":["origin","confidence","explanation"],"additionalProperties":false}},"required":["reference","category","zone","quantity","capacity","priority","assetAlias","placement","evidence"],"additionalProperties":false}},"rules":{"type":"array","items":{"type":"object","properties":{"reference":{"type":"string"},"kind":{"anyOf":[{"const":"on","type":"string"},{"const":"seating","type":"string"},{"const":"beside","type":"string"},{"const":"facing","type":"string"},{"const":"near-window","type":"string"},{"const":"wall-alignment","type":"string"},{"const":"interior","type":"string"},{"const":"access","type":"string"},{"const":"visibility","type":"string"},{"const":"clearance","type":"string"},{"const":"circulation","type":"string"},{"const":"minimum-dimensions","type":"string"},{"const":"unsupported","type":"string"}]},"subjects":{"type":"array","items":{"type":"string"}},"target":{"anyOf":[{"type":"null"},{"type":"string"}]},"priority":{"anyOf":[{"const":"required","type":"string"},{"const":"recommended","type":"string"},{"const":"optional","type":"string"}]},"strength":{"anyOf":[{"const":"hard","type":"string"},{"const":"soft","type":"string"}]},"clearanceM":{"anyOf":[{"type":"null"},{"type":"number"}]},"description":{"type":"string"},"evidence":{"type":"object","properties":{"origin":{"anyOf":[{"const":"explicit","type":"string"},{"const":"archetype","type":"string"},{"const":"inferred","type":"string"}]},"confidence":{"type":"number"},"explanation":{"type":"string"}},"required":["origin","confidence","explanation"],"additionalProperties":false}},"required":["reference","kind","subjects","target","priority","strength","clearanceM","description","evidence"],"additionalProperties":false}},"architecture":{"type":"array","items":{"type":"object","properties":{"reference":{"type":"string"},"kind":{"anyOf":[{"const":"window","type":"string"},{"const":"portal","type":"string"},{"const":"wall-run","type":"string"},{"const":"open-center","type":"string"},{"const":"natural-light","type":"string"},{"const":"ceiling-light","type":"string"}]},"quantity":{"type":"number"},"priority":{"anyOf":[{"const":"required","type":"string"},{"const":"recommended","type":"string"},{"const":"optional","type":"string"}]},"evidence":{"type":"object","properties":{"origin":{"anyOf":[{"const":"explicit","type":"string"},{"const":"archetype","type":"string"},{"const":"inferred","type":"string"}]},"confidence":{"type":"number"},"explanation":{"type":"string"}},"required":["origin","confidence","explanation"],"additionalProperties":false}},"required":["reference","kind","quantity","priority","evidence"],"additionalProperties":false}},"exclusions":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"evidence":{"type":"object","properties":{"origin":{"const":"explicit","type":"string"},"confidence":{"type":"number"},"explanation":{"type":"string"}},"required":["origin","confidence","explanation"],"additionalProperties":false}},"required":["category","evidence"],"additionalProperties":false}},"uncertainties":{"type":"array","items":{"type":"string"}}},"required":["version","archetype","archetypeRevision","purpose","capacity","style","zones","needs","rules","architecture","exclusions","uncertainties"],"additionalProperties":false},"bindings":{"type":"object","properties":{},"required":[],"additionalProperties":{"type":"string"}}},"required":["intent","archetypeSnapshot","bindings"],"additionalProperties":false},"version":{"const":"qway.furnishing/1","type":"string"},"purpose":{"type":"string"},"capacity":{"type":"number"},"style":{"type":"string"},"needs":{"type":"array","items":{"type":"object","properties":{"identity":{"type":"string"},"category":{"type":"string"},"quantity":{"type":"number"},"capacity":{"anyOf":[{"type":"null"},{"type":"number"}]},"assetAlias":{"anyOf":[{"type":"null"},{"type":"string"}]},"placement":{"anyOf":[{"const":"auto","type":"string"},{"const":"center","type":"string"},{"const":"perimeter","type":"string"}]},"relation":{"anyOf":[{"type":"null"},{"const":"on","type":"string"},{"const":"seating","type":"string"},{"const":"near-window","type":"string"}]},"target":{"anyOf":[{"type":"null"},{"type":"string"}]},"instances":{"type":"array","items":{"type":"array","items":{"type":"string"}}}},"required":["identity","category","quantity","capacity","assetAlias","placement","relation","target","instances"],"additionalProperties":false}}},"required":["version","purpose","capacity","style","needs"],"additionalProperties":false},"identity":{"type":"string"},"alias":{"type":"string","maxLength":100},"label":{"type":"string","maxLength":200},"level":{"anyOf":[{"type":"null"},{"type":"string"}]},"parent":{"anyOf":[{"type":"null"},{"type":"string"}]},"size":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"frame":{"type":"object","properties":{"position":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"quaternion":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":4,"maxItems":4,"items":false}},"required":["position","quaternion"],"additionalProperties":false},"backdrop":{"anyOf":[{"type":"object","properties":{"materialId":{"type":"string"},"identity":{"type":"string"},"semantic":{"type":"string","maxLength":200},"source":{"anyOf":[{"type":"object","properties":{"kind":{"const":"image","type":"string"},"assetId":{"type":"string"},"uri":{"type":"string"},"mediaType":{"anyOf":[{"const":"image/png","type":"string"},{"const":"image/jpeg","type":"string"},{"const":"image/webp","type":"string"}]},"sha256":{"type":"string"},"byteLength":{"type":"number"}},"required":["kind","assetId","uri","mediaType","sha256","byteLength"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"asset","type":"string"},"uri":{"type":"null"},"assetId":{"type":"string"}},"required":["kind","uri","assetId"],"additionalProperties":false}]},"side":{"anyOf":[{"const":"north","type":"string"},{"const":"south","type":"string"},{"const":"east","type":"string"},{"const":"west","type":"string"}]},"mode":{"const":"architectural","type":"string"},"fit":{"anyOf":[{"const":"cover","type":"string"},{"const":"contain","type":"string"}]},"projection":{"const":"flat","type":"string"},"distance":{"type":"number"},"lighting":{"anyOf":[{"const":"unlit","type":"string"},{"const":"lit","type":"string"}]},"enabled":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]}},"required":["identity","semantic","source","side","mode","fit","projection","distance","lighting","enabled"],"additionalProperties":false},{"type":"object","properties":{"north":{"type":"object","properties":{"materialId":{"type":"string"},"identity":{"type":"string"},"semantic":{"type":"string","maxLength":200},"source":{"anyOf":[{"type":"object","properties":{"kind":{"const":"image","type":"string"},"assetId":{"type":"string"},"uri":{"type":"string"},"mediaType":{"anyOf":[{"const":"image/png","type":"string"},{"const":"image/jpeg","type":"string"},{"const":"image/webp","type":"string"}]},"sha256":{"type":"string"},"byteLength":{"type":"number"}},"required":["kind","assetId","uri","mediaType","sha256","byteLength"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"asset","type":"string"},"uri":{"type":"null"},"assetId":{"type":"string"}},"required":["kind","uri","assetId"],"additionalProperties":false}]},"side":{"anyOf":[{"const":"north","type":"string"},{"const":"south","type":"string"},{"const":"east","type":"string"},{"const":"west","type":"string"}]},"mode":{"const":"architectural","type":"string"},"fit":{"anyOf":[{"const":"cover","type":"string"},{"const":"contain","type":"string"}]},"projection":{"const":"flat","type":"string"},"distance":{"type":"number"},"lighting":{"anyOf":[{"const":"unlit","type":"string"},{"const":"lit","type":"string"}]},"enabled":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]}},"required":["identity","semantic","source","side","mode","fit","projection","distance","lighting","enabled"],"additionalProperties":false},"south":{"type":"object","properties":{"materialId":{"type":"string"},"identity":{"type":"string"},"semantic":{"type":"string","maxLength":200},"source":{"anyOf":[{"type":"object","properties":{"kind":{"const":"image","type":"string"},"assetId":{"type":"string"},"uri":{"type":"string"},"mediaType":{"anyOf":[{"const":"image/png","type":"string"},{"const":"image/jpeg","type":"string"},{"const":"image/webp","type":"string"}]},"sha256":{"type":"string"},"byteLength":{"type":"number"}},"required":["kind","assetId","uri","mediaType","sha256","byteLength"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"asset","type":"string"},"uri":{"type":"null"},"assetId":{"type":"string"}},"required":["kind","uri","assetId"],"additionalProperties":false}]},"side":{"anyOf":[{"const":"north","type":"string"},{"const":"south","type":"string"},{"const":"east","type":"string"},{"const":"west","type":"string"}]},"mode":{"const":"architectural","type":"string"},"fit":{"anyOf":[{"const":"cover","type":"string"},{"const":"contain","type":"string"}]},"projection":{"const":"flat","type":"string"},"distance":{"type":"number"},"lighting":{"anyOf":[{"const":"unlit","type":"string"},{"const":"lit","type":"string"}]},"enabled":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]}},"required":["identity","semantic","source","side","mode","fit","projection","distance","lighting","enabled"],"additionalProperties":false},"east":{"type":"object","properties":{"materialId":{"type":"string"},"identity":{"type":"string"},"semantic":{"type":"string","maxLength":200},"source":{"anyOf":[{"type":"object","properties":{"kind":{"const":"image","type":"string"},"assetId":{"type":"string"},"uri":{"type":"string"},"mediaType":{"anyOf":[{"const":"image/png","type":"string"},{"const":"image/jpeg","type":"string"},{"const":"image/webp","type":"string"}]},"sha256":{"type":"string"},"byteLength":{"type":"number"}},"required":["kind","assetId","uri","mediaType","sha256","byteLength"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"asset","type":"string"},"uri":{"type":"null"},"assetId":{"type":"string"}},"required":["kind","uri","assetId"],"additionalProperties":false}]},"side":{"anyOf":[{"const":"north","type":"string"},{"const":"south","type":"string"},{"const":"east","type":"string"},{"const":"west","type":"string"}]},"mode":{"const":"architectural","type":"string"},"fit":{"anyOf":[{"const":"cover","type":"string"},{"const":"contain","type":"string"}]},"projection":{"const":"flat","type":"string"},"distance":{"type":"number"},"lighting":{"anyOf":[{"const":"unlit","type":"string"},{"const":"lit","type":"string"}]},"enabled":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]}},"required":["identity","semantic","source","side","mode","fit","projection","distance","lighting","enabled"],"additionalProperties":false},"west":{"type":"object","properties":{"materialId":{"type":"string"},"identity":{"type":"string"},"semantic":{"type":"string","maxLength":200},"source":{"anyOf":[{"type":"object","properties":{"kind":{"const":"image","type":"string"},"assetId":{"type":"string"},"uri":{"type":"string"},"mediaType":{"anyOf":[{"const":"image/png","type":"string"},{"const":"image/jpeg","type":"string"},{"const":"image/webp","type":"string"}]},"sha256":{"type":"string"},"byteLength":{"type":"number"}},"required":["kind","assetId","uri","mediaType","sha256","byteLength"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"asset","type":"string"},"uri":{"type":"null"},"assetId":{"type":"string"}},"required":["kind","uri","assetId"],"additionalProperties":false}]},"side":{"anyOf":[{"const":"north","type":"string"},{"const":"south","type":"string"},{"const":"east","type":"string"},{"const":"west","type":"string"}]},"mode":{"const":"architectural","type":"string"},"fit":{"anyOf":[{"const":"cover","type":"string"},{"const":"contain","type":"string"}]},"projection":{"const":"flat","type":"string"},"distance":{"type":"number"},"lighting":{"anyOf":[{"const":"unlit","type":"string"},{"const":"lit","type":"string"}]},"enabled":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]}},"required":["identity","semantic","source","side","mode","fit","projection","distance","lighting","enabled"],"additionalProperties":false}},"required":[],"additionalProperties":false}]}},"required":["identity","alias","label","level","parent","size","frame"],"additionalProperties":false}},"levels":{"type":"array","items":{"type":"object","properties":{"identity":{"type":"string"},"label":{"type":"string"}},"required":["identity","label"],"additionalProperties":false}},"portals":{"type":"array","items":{"type":"object","properties":{"identity":{"type":"string"},"alias":{"type":"string","maxLength":100},"from":{"type":"string"},"to":{"type":"string"},"frame":{"type":"object","properties":{"position":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"quaternion":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":4,"maxItems":4,"items":false}},"required":["position","quaternion"],"additionalProperties":false},"width":{"type":"number"},"height":{"type":"number"},"traversable":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"door":{"anyOf":[{"type":"null"},{"type":"string"}]}},"required":["identity","alias","from","to","frame","width","height","traversable","door"],"additionalProperties":false}},"entrances":{"type":"array","items":{"type":"object","properties":{"identity":{"type":"string"},"alias":{"type":"string","maxLength":100},"room":{"type":"string"},"frame":{"type":"object","properties":{"position":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"quaternion":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":4,"maxItems":4,"items":false}},"required":["position","quaternion"],"additionalProperties":false},"width":{"type":"number"},"height":{"type":"number"},"traversable":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"door":{"anyOf":[{"type":"null"},{"type":"string"}]}},"required":["identity","alias","room","frame","width","height","traversable","door"],"additionalProperties":false}},"membership":{"type":"object","properties":{},"required":[],"additionalProperties":{"type":"string"}}},"required":["version","identity","rooms","levels","portals","membership"],"additionalProperties":false},"worldFrames":{"type":"object","properties":{},"required":[],"additionalProperties":{"type":"object","properties":{"position":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"quaternion":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":4,"maxItems":4,"items":false}},"required":["position","quaternion"],"additionalProperties":false}},"localPoses":{"type":"object","properties":{},"required":[],"additionalProperties":{"type":"object","properties":{"position":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"quaternion":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":4,"maxItems":4,"items":false},"scale":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false}},"required":["position","quaternion","scale"],"additionalProperties":false}},"programVerification":{"type":"object","properties":{"policy":{"anyOf":[{"const":"qway.room-program-geometry/1","type":"string"},{"const":"qway.room-program-geometry/2","type":"string"},{"const":"qway.room-program-geometry/3","type":"string"}]},"actor":{"type":"object","properties":{"radiusM":{"type":"number"},"heightM":{"type":"number"}},"required":["radiusM","heightM"],"additionalProperties":false},"rooms":{"type":"array","items":{"type":"object","properties":{"room":{"type":"string"},"archetypeRevision":{"type":"string"},"layout":{"type":"object","properties":{"policy":{"const":"qway.room-program-layout/1","type":"string"},"strategy":{"const":"bounded-geometric-search","type":"string"},"candidateBudget":{"type":"number"},"candidatesTested":{"type":"number"},"passesPerformed":{"type":"number"},"initialRules":{"type":"array","items":{"type":"object","properties":{"reference":{"type":"string"},"status":{"anyOf":[{"const":"unsupported","type":"string"},{"const":"satisfied","type":"string"},{"const":"failed","type":"string"},{"const":"unknown","type":"string"}]}},"required":["reference","status"],"additionalProperties":false}},"changedInstances":{"type":"array","items":{"type":"string"}},"relaxedConstraints":{"type":"array","items":{"type":"string"}},"termination":{"anyOf":[{"const":"stationary","type":"string"},{"const":"budget-exhausted","type":"string"},{"const":"pass-limit","type":"string"},{"const":"zero-score","type":"string"}]}},"required":["policy","strategy","candidateBudget","candidatesTested","passesPerformed","initialRules","changedInstances","relaxedConstraints","termination"],"additionalProperties":false},"inventory":{"type":"array","items":{"type":"object","properties":{"reference":{"type":"string"},"priority":{"anyOf":[{"const":"required","type":"string"},{"const":"recommended","type":"string"},{"const":"optional","type":"string"}]},"requestedUnits":{"type":"number"},"resolvedUnits":{"type":"number"},"status":{"anyOf":[{"const":"unsupported","type":"string"},{"const":"satisfied","type":"string"},{"const":"failed","type":"string"},{"const":"unknown","type":"string"}]}},"required":["reference","priority","requestedUnits","resolvedUnits","status"],"additionalProperties":false}},"rules":{"type":"array","items":{"type":"object","properties":{"reference":{"type":"string"},"kind":{"anyOf":[{"const":"on","type":"string"},{"const":"seating","type":"string"},{"const":"beside","type":"string"},{"const":"facing","type":"string"},{"const":"near-window","type":"string"},{"const":"wall-alignment","type":"string"},{"const":"interior","type":"string"},{"const":"access","type":"string"},{"const":"visibility","type":"string"},{"const":"clearance","type":"string"},{"const":"circulation","type":"string"},{"const":"minimum-dimensions","type":"string"},{"const":"unsupported","type":"string"}]},"priority":{"anyOf":[{"const":"required","type":"string"},{"const":"recommended","type":"string"},{"const":"optional","type":"string"}]},"strength":{"anyOf":[{"const":"hard","type":"string"},{"const":"soft","type":"string"}]},"status":{"anyOf":[{"const":"unsupported","type":"string"},{"const":"satisfied","type":"string"},{"const":"failed","type":"string"},{"const":"unknown","type":"string"}]},"message":{"type":"string","maxLength":2000},"pairs":{"type":"array","items":{"type":"object","properties":{"subject":{"type":"string"},"target":{"anyOf":[{"type":"null"},{"type":"string"}]},"status":{"anyOf":[{"const":"unsupported","type":"string"},{"const":"satisfied","type":"string"},{"const":"failed","type":"string"},{"const":"unknown","type":"string"}]},"message":{"type":"string","maxLength":2000},"residuals":{"type":"object","properties":{},"required":[],"additionalProperties":{"type":"number"}}},"required":["subject","target","status","message","residuals"],"additionalProperties":false}}},"required":["reference","kind","priority","strength","status","message","pairs"],"additionalProperties":false}},"architecture":{"type":"array","items":{"type":"object","properties":{"reference":{"type":"string"},"kind":{"anyOf":[{"const":"window","type":"string"},{"const":"portal","type":"string"},{"const":"wall-run","type":"string"},{"const":"open-center","type":"string"},{"const":"natural-light","type":"string"},{"const":"ceiling-light","type":"string"}]},"priority":{"anyOf":[{"const":"required","type":"string"},{"const":"recommended","type":"string"},{"const":"optional","type":"string"}]},"requested":{"type":"number"},"verified":{"type":"number"},"status":{"anyOf":[{"const":"unsupported","type":"string"},{"const":"satisfied","type":"string"},{"const":"failed","type":"string"},{"const":"unknown","type":"string"}]},"message":{"type":"string","maxLength":2000}},"required":["reference","kind","priority","requested","verified","status","message"],"additionalProperties":false}}},"required":["room","archetypeRevision","inventory","rules","architecture"],"additionalProperties":false}}},"required":["policy","actor","rooms"],"additionalProperties":false},"verification":{"type":"object","properties":{"policy":{"const":"wright.portal-geometry/1","type":"string"},"actor":{"type":"object","properties":{"radius":{"type":"number"},"height":{"type":"number"}},"required":["radius","height"],"additionalProperties":false},"portals":{"type":"array","items":{"type":"object","properties":{"identity":{"type":"string"},"requestedAperture":{"anyOf":[{"const":"unknown","type":"string"},{"const":"clear","type":"string"},{"const":"collision","type":"string"}]},"actorPassage":{"anyOf":[{"const":"unknown","type":"string"},{"const":"clear","type":"string"},{"const":"collision","type":"string"}]}},"required":["identity","requestedAperture","actorPassage"],"additionalProperties":false}},"entrances":{"type":"array","items":{"type":"object","properties":{"identity":{"type":"string"},"requestedAperture":{"anyOf":[{"const":"unknown","type":"string"},{"const":"clear","type":"string"},{"const":"collision","type":"string"}]},"actorPassage":{"anyOf":[{"const":"unknown","type":"string"},{"const":"clear","type":"string"},{"const":"collision","type":"string"}]}},"required":["identity","requestedAperture","actorPassage"],"additionalProperties":false}},"circulation":{"type":"array","items":{"type":"object","properties":{"room":{"type":"string"},"status":{"anyOf":[{"const":"unsupported","type":"string"},{"const":"ready","type":"string"},{"const":"unresolved","type":"string"},{"const":"not-requested","type":"string"}]},"entryCount":{"type":"number"},"reachableSamples":{"type":"number"},"routeOutcomes":{"type":"array","items":{"type":"string"}}},"required":["room","status","entryCount","reachableSamples","routeOutcomes"],"additionalProperties":false}},"navigationBoxes":{"type":"object","properties":{},"required":[],"additionalProperties":{"type":"array","items":{"type":"object","properties":{"min":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"max":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false}},"required":["min","max"],"additionalProperties":false}}}},"required":["policy","actor","portals","circulation","navigationBoxes"],"additionalProperties":false},"diagnostics":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"severity":{"anyOf":[{"const":"error","type":"string"},{"const":"warning","type":"string"}]},"identity":{"anyOf":[{"type":"null"},{"type":"string"}]},"message":{"type":"string"}},"required":["code","severity","identity","message"],"additionalProperties":false}}},"required":["version","topology","worldFrames","localPoses","diagnostics"],"additionalProperties":false}
schemayes{"const":"quay.scene","type":"string"}
schemaVersionyes{"const":"2.0.0-draft.1","type":"string"}
semanticyes{"type":"object","properties":{"materials":{"type":"array","items":{"type":"object","properties":{"version":{"const":"quay.material/1","type":"string"},"identity":{"type":"string"},"alias":{"type":"string"},"label":{"type":"string"},"description":{"type":"string"},"category":{"anyOf":[{"const":"generic","type":"string"},{"const":"wood","type":"string"},{"const":"metal","type":"string"},{"const":"stone","type":"string"},{"const":"concrete","type":"string"},{"const":"ceramic","type":"string"},{"const":"fabric","type":"string"},{"const":"glass","type":"string"},{"const":"paper","type":"string"},{"const":"plastic","type":"string"},{"const":"paint","type":"string"}]},"shader":{"anyOf":[{"const":"unlit","type":"string"},{"const":"standard","type":"string"}]},"color":{"type":"string"},"roughness":{"type":"number"},"metalness":{"type":"number"},"emissive":{"type":"string"},"emissiveIntensity":{"type":"number"},"opacity":{"type":"number"},"alphaMode":{"anyOf":[{"const":"opaque","type":"string"},{"const":"mask","type":"string"},{"const":"blend","type":"string"}]},"alphaCutoff":{"type":"number"},"side":{"anyOf":[{"const":"front","type":"string"},{"const":"back","type":"string"},{"const":"double","type":"string"}]},"preset":{"anyOf":[{"type":"null"},{"type":"string"}]},"maps":{"type":"array","items":{"type":"object","properties":{"slot":{"anyOf":[{"const":"color","type":"string"},{"const":"normal","type":"string"},{"const":"roughness","type":"string"},{"const":"metalness","type":"string"},{"const":"emissive","type":"string"},{"const":"occlusion","type":"string"},{"const":"alpha","type":"string"}]},"image":{"type":"object","properties":{"assetId":{"type":"string"},"uri":{"type":"string"},"sha256":{"type":"string"},"byteLength":{"type":"number"},"mediaType":{"anyOf":[{"const":"image/png","type":"string"},{"const":"image/jpeg","type":"string"},{"const":"image/webp","type":"string"}]},"displayName":{"type":"string"}},"required":["assetId","uri","sha256","byteLength","mediaType","displayName"],"additionalProperties":false},"repeat":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"minItems":2,"maxItems":2,"items":false},"offset":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"minItems":2,"maxItems":2,"items":false},"rotation":{"type":"number"},"wrap":{"anyOf":[{"const":"repeat","type":"string"},{"const":"clamp","type":"string"},{"const":"mirror","type":"string"}]}},"required":["slot","image","repeat","offset","rotation","wrap"],"additionalProperties":false}}},"required":["version","identity","alias","label","description","category","shader","color","roughness","metalness","emissive","emissiveIntensity","opacity","alphaMode","alphaCutoff","side","preset","maps"],"additionalProperties":false}},"assetPolicy":{"const":"project-user-standard","type":"string"},"composition":{"const":"quay.room-composition/1","type":"string"},"version":{"const":"quay.semantic/1","type":"string"},"sceneId":{"type":"string"},"name":{"type":"string"},"seed":{"type":"number"},"room":{"type":"object","properties":{"identity":{"anyOf":[{"type":"null"},{"type":"string"}]},"size":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false}},"required":["identity","size"],"additionalProperties":false},"profile":{"anyOf":[{"const":"static","type":"string"},{"const":"physical","type":"string"}]},"objects":{"type":"array","items":{"type":"object","properties":{"materialId":{"type":"string"},"region":{"anyOf":[{"const":"center","type":"string"},{"const":"perimeter","type":"string"}]},"actor":{"type":"object","properties":{"policy":{"const":"quay.actor-box/1","type":"string"},"size":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"eye":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"manipulationOrigin":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"reachM":{"type":"number"}},"required":["policy","size","eye","manipulationOrigin","reachM"],"additionalProperties":false},"animation":{"type":"object","properties":{"policy":{"const":"quay.animation/1","type":"string"},"clipIndex":{"type":"number"},"clipName":{"anyOf":[{"type":"null"},{"type":"string"}]},"mode":{"anyOf":[{"const":"in-place","type":"string"},{"const":"articulated","type":"string"}]},"speed":{"type":"number"},"loop":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"offsetSeconds":{"type":"number"}},"required":["policy","clipIndex","clipName","mode","speed","loop","offsetSeconds"],"additionalProperties":false},"normalization":{"type":"object","properties":{"rawBounds":{"type":"object","properties":{"min":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"max":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false}},"required":["min","max"],"additionalProperties":false},"scale":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"baseOffset":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"forwardCorrection":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":4,"maxItems":4,"items":false}},"required":["rawBounds","scale","baseOffset","forwardCorrection"],"additionalProperties":false},"orientation":{"type":"object","properties":{"policy":{"anyOf":[{"const":"quay.orientation/1","type":"string"},{"const":"quay.orientation/2","type":"string"}]},"quaternion":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":4,"maxItems":4,"items":false},"up":{"anyOf":[{"type":"null"},{"type":"string"}]},"front":{"anyOf":[{"type":"null"},{"type":"string"}]},"confidence":{"type":"number"},"evidence":{"type":"array","items":{"type":"string"}}},"required":["policy","quaternion","up","front","confidence","evidence"],"additionalProperties":false},"identity":{"type":"string"},"alias":{"type":"string"},"label":{"type":"string"},"notes":{"type":"string","maxLength":2000},"assetId":{"type":"string"},"manifestId":{"type":"string"},"role":{"type":"string"},"visible":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"pose":{"type":"object","properties":{"position":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"quaternion":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":4,"maxItems":4,"items":false},"scale":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false}},"required":[],"additionalProperties":false},"size":{"anyOf":[{"type":"null"},{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false}]},"sizing":{"type":"object","properties":{"measurement":{"type":"object","properties":{"reference":{"anyOf":[{"const":"whole-bounds","type":"string"},{"const":"withers","type":"string"}]},"targetM":{"type":"number"},"sourceReferenceM":{"type":"number"},"method":{"anyOf":[{"const":"measured-bounds","type":"string"},{"const":"rig-shoulder-envelope-approximation/1","type":"string"}]},"confidence":{"type":"number"},"evidence":{"type":"array","items":{"type":"string"}}},"required":["reference","targetM","sourceReferenceM","method","confidence","evidence"],"additionalProperties":false},"policy":{"const":"quay.sizing/1","type":"string"},"measuredDimensions":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"orientedDimensions":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"chosenDimensions":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"finalSceneDimensions":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"uniformScale":{"type":"number"},"profile":{"anyOf":[{"type":"null"},{"type":"object","properties":{"schema":{"const":"quay.archetype","type":"string"},"schemaVersion":{"const":"1.0.0","type":"string"},"profileId":{"type":"string"},"revision":{"type":"number"},"parentId":{"anyOf":[{"type":"null"},{"type":"string"}]},"semanticClass":{"type":"string"},"status":{"anyOf":[{"const":"accepted","type":"string"},{"const":"suggested","type":"string"},{"const":"rejected","type":"string"},{"const":"user-corrected","type":"string"}]},"dimensions":{"type":"object","properties":{"width":{"anyOf":[{"type":"null"},{"type":"object","properties":{"minM":{"type":"number"},"typicalM":{"type":"number"},"maxM":{"type":"number"},"reference":{"anyOf":[{"const":"whole-bounds","type":"string"},{"const":"withers","type":"string"},{"const":"seat","type":"string"},{"const":"worktop","type":"string"},{"const":"opening","type":"string"}]}},"required":["minM","typicalM","maxM","reference"],"additionalProperties":false}]},"height":{"anyOf":[{"type":"null"},{"type":"object","properties":{"minM":{"type":"number"},"typicalM":{"type":"number"},"maxM":{"type":"number"},"reference":{"anyOf":[{"const":"whole-bounds","type":"string"},{"const":"withers","type":"string"},{"const":"seat","type":"string"},{"const":"worktop","type":"string"},{"const":"opening","type":"string"}]}},"required":["minM","typicalM","maxM","reference"],"additionalProperties":false}]},"depth":{"anyOf":[{"type":"null"},{"type":"object","properties":{"minM":{"type":"number"},"typicalM":{"type":"number"},"maxM":{"type":"number"},"reference":{"anyOf":[{"const":"whole-bounds","type":"string"},{"const":"withers","type":"string"},{"const":"seat","type":"string"},{"const":"worktop","type":"string"},{"const":"opening","type":"string"}]}},"required":["minM","typicalM","maxM","reference"],"additionalProperties":false}]}},"required":["width","height","depth"],"additionalProperties":false},"preferredDimension":{"anyOf":[{"type":"null"},{"const":"width","type":"string"},{"const":"height","type":"string"},{"const":"depth","type":"string"}]},"grounding":{"anyOf":[{"const":"architectural","type":"string"},{"const":"unknown","type":"string"},{"const":"floor","type":"string"},{"const":"support","type":"string"}]},"orientation":{"type":"object","properties":{"up":{"anyOf":[{"type":"null"},{"const":"+Y","type":"string"},{"const":"+Z","type":"string"},{"const":"+X","type":"string"},{"const":"-Y","type":"string"},{"const":"-Z","type":"string"},{"const":"-X","type":"string"}]},"forward":{"anyOf":[{"type":"null"},{"const":"+Z","type":"string"},{"const":"+X","type":"string"},{"const":"-Z","type":"string"},{"const":"-X","type":"string"}]}},"required":["up","forward"],"additionalProperties":false},"affordances":{"type":"array","items":{"type":"string"}},"clearances":{"type":"object","properties":{"usableSideM":{"anyOf":[{"type":"null"},{"type":"number"}]},"circulationM":{"anyOf":[{"type":"null"},{"type":"number"}]}},"required":["usableSideM","circulationM"],"additionalProperties":false},"relationHints":{"type":"array","items":{"type":"string"}},"provenance":{"type":"object","properties":{"source":{"anyOf":[{"const":"standard","type":"string"},{"const":"curated","type":"string"},{"const":"ai_inferred","type":"string"},{"const":"user_confirmed","type":"string"},{"const":"project_specific","type":"string"}]},"producer":{"type":"string"},"model":{"anyOf":[{"type":"null"},{"type":"string"}]},"inferenceVersion":{"type":"string"},"requestedClass":{"anyOf":[{"type":"null"},{"type":"string"}]},"confidence":{"type":"number"},"createdAt":{"type":"string"},"evidence":{"type":"array","items":{"type":"string"}}},"required":["source","producer","model","inferenceVersion","requestedClass","confidence","createdAt","evidence"],"additionalProperties":false}},"required":["schema","schemaVersion","profileId","revision","parentId","semanticClass","status","dimensions","preferredDimension","grounding","orientation","affordances","clearances","relationHints","provenance"],"additionalProperties":false}]},"source":{"anyOf":[{"const":"archetype","type":"string"},{"const":"instance","type":"string"},{"const":"conservative-fallback","type":"string"}]},"plausibility":{"anyOf":[{"const":"unknown","type":"string"},{"const":"plausible","type":"string"},{"const":"implausible","type":"string"}]},"diagnostics":{"type":"array","items":{"type":"string"}}},"required":["policy","measuredDimensions","orientedDimensions","chosenDimensions","uniformScale","profile","source","plausibility","diagnostics"],"additionalProperties":false},"architecture":{"type":"object","properties":{"boundary":{"anyOf":[{"const":"front","type":"string"},{"const":"back","type":"string"},{"const":"left","type":"string"},{"const":"right","type":"string"}]},"section":{"anyOf":[{"const":"full","type":"string"},{"const":"opening-left","type":"string"},{"const":"opening-right","type":"string"},{"const":"opening-header","type":"string"},{"const":"opening-sill","type":"string"}]},"opening":{"anyOf":[{"type":"null"},{"type":"string"}]}},"required":["boundary","section","opening"],"additionalProperties":false},"physics":{"type":"object","properties":{"motion":{"anyOf":[{"const":"static","type":"string"},{"const":"dynamic","type":"string"},{"const":"kinematic","type":"string"}]},"collision":{"anyOf":[{"const":"none","type":"string"},{"const":"solid","type":"string"},{"const":"sensor","type":"string"}]},"controller":{"anyOf":[{"const":"none","type":"string"},{"const":"character","type":"string"}]},"collider":{"anyOf":[{"type":"null"},{"type":"object","properties":{"identity":{"type":"string"},"manifestId":{"anyOf":[{"type":"null"},{"type":"string"}]},"featureId":{"anyOf":[{"type":"null"},{"type":"string"}]},"kind":{"anyOf":[{"const":"object","type":"string"},{"const":"surface","type":"string"},{"const":"component","type":"string"},{"const":"collider","type":"string"}]}},"required":["identity","manifestId","featureId","kind"],"additionalProperties":false}]},"shape":{"anyOf":[{"const":"auto","type":"string"},{"const":"box","type":"string"},{"const":"convex-hull","type":"string"},{"const":"decomposition","type":"string"},{"const":"triangle-mesh","type":"string"}]},"massKg":{"anyOf":[{"type":"null"},{"type":"number"}]},"friction":{"anyOf":[{"type":"null"},{"type":"number"}]},"restitution":{"anyOf":[{"type":"null"},{"type":"number"}]},"provenance":{"type":"object","properties":{},"required":[],"additionalProperties":{"anyOf":[{"const":"instance","type":"string"},{"const":"asset-override","type":"string"},{"const":"profile","type":"string"},{"const":"inference","type":"string"},{"const":"fallback","type":"string"}]}}},"required":["motion","collision","controller","collider","massKg","friction","restitution","provenance"],"additionalProperties":false},"interaction":{"type":"object","properties":{"capabilities":{"type":"array","items":{"anyOf":[{"const":"grab","type":"string"},{"const":"open","type":"string"},{"const":"close","type":"string"},{"const":"toggle","type":"string"},{"const":"walk","type":"string"},{"const":"animate","type":"string"}]}},"enabled":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"cooldownSeconds":{"type":"number"}},"required":["capabilities","enabled","cooldownSeconds"],"additionalProperties":false},"span":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"},"line":{"type":"number"},"column":{"type":"number"}},"required":["start","end","line","column"],"additionalProperties":false}},"required":["identity","alias","label","assetId","manifestId","role","visible","pose","size","physics","interaction","span"],"additionalProperties":false}},"wallImages":{"type":"array","items":{"type":"object","properties":{"materialId":{"type":"string"},"identity":{"type":"string"},"alias":{"type":"string"},"label":{"type":"string"},"assetId":{"type":"string"},"wallInstanceId":{"type":"string"},"uri":{"type":"string"},"sha256":{"type":"string"},"byteLength":{"type":"number"},"mediaType":{"anyOf":[{"const":"image/png","type":"string"},{"const":"image/jpeg","type":"string"},{"const":"image/webp","type":"string"}]},"displayName":{"type":"string"},"position":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"minItems":2,"maxItems":2,"items":false},"size":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"minItems":2,"maxItems":2,"items":false},"surfaceOffset":{"type":"number"},"preserveAspectRatio":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"span":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"},"line":{"type":"number"},"column":{"type":"number"}},"required":["start","end","line","column"],"additionalProperties":false}},"required":["identity","alias","label","assetId","wallInstanceId","uri","sha256","byteLength","mediaType","displayName","position","size","surfaceOffset","preserveAspectRatio","span"],"additionalProperties":false}},"interactiveLabels":{"type":"array","items":{"type":"object","properties":{"identity":{"type":"string"},"alias":{"type":"string"},"parentObjectId":{"type":"string"},"text":{"type":"string","maxLength":200},"icon":{"anyOf":[{"type":"null"},{"type":"string"}]},"anchor":{"anyOf":[{"const":"center","type":"string"},{"const":"front","type":"string"},{"const":"left","type":"string"},{"const":"right","type":"string"},{"const":"above","type":"string"},{"const":"custom","type":"string"}]},"offset":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"maxDistance":{"anyOf":[{"type":"null"},{"type":"number"}]},"billboard":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"theme":{"anyOf":[{"const":"default","type":"string"},{"const":"cool","type":"string"},{"const":"warm","type":"string"}]},"action":{"anyOf":[{"type":"object","properties":{"kind":{"const":"none","type":"string"}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"anyOf":[{"const":"pdf","type":"string"},{"const":"html","type":"string"},{"const":"audio","type":"string"},{"const":"video","type":"string"}]},"assetId":{"type":"string"},"uri":{"type":"string"},"sha256":{"type":"string"},"byteLength":{"type":"number"},"mediaType":{"type":"string"},"displayName":{"type":"string"},"title":{"anyOf":[{"type":"null"},{"type":"string"}]},"posterUri":{"anyOf":[{"type":"null"},{"type":"string"}]},"captionsUri":{"anyOf":[{"type":"null"},{"type":"string"}]},"autoplay":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"loop":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"muted":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"volume":{"type":"number"},"restartOnOpen":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"startSeconds":{"type":"number"},"endSeconds":{"anyOf":[{"type":"null"},{"type":"number"}]}},"required":["kind","assetId","uri","sha256","byteLength","mediaType","displayName","title","posterUri","captionsUri","autoplay","loop","muted","volume","restartOnOpen","startSeconds","endSeconds"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"ridley","type":"string"},"target":{"type":"string"}},"required":["kind","target"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"external-link","type":"string"},"url":{"type":"string","maxLength":2048}},"required":["kind","url"],"additionalProperties":false}]},"span":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"},"line":{"type":"number"},"column":{"type":"number"}},"required":["start","end","line","column"],"additionalProperties":false}},"required":["identity","alias","parentObjectId","text","icon","anchor","offset","maxDistance","billboard","theme","action","span"],"additionalProperties":false}},"relations":{"type":"array","items":{"type":"object","properties":{"identity":{"type":"string"},"kind":{"anyOf":[{"const":"on","type":"string"},{"const":"beside","type":"string"},{"const":"facing","type":"string"},{"const":"inside","type":"string"},{"const":"against","type":"string"},{"const":"attached-to","type":"string"},{"const":"keep-clear","type":"string"},{"const":"reachable-from","type":"string"}]},"subject":{"type":"object","properties":{"identity":{"type":"string"},"manifestId":{"anyOf":[{"type":"null"},{"type":"string"}]},"featureId":{"anyOf":[{"type":"null"},{"type":"string"}]},"kind":{"anyOf":[{"const":"object","type":"string"},{"const":"surface","type":"string"},{"const":"component","type":"string"},{"const":"collider","type":"string"}]}},"required":["identity","manifestId","featureId","kind"],"additionalProperties":false},"target":{"anyOf":[{"type":"null"},{"type":"object","properties":{"identity":{"type":"string"},"manifestId":{"anyOf":[{"type":"null"},{"type":"string"}]},"featureId":{"anyOf":[{"type":"null"},{"type":"string"}]},"kind":{"anyOf":[{"const":"object","type":"string"},{"const":"surface","type":"string"},{"const":"component","type":"string"},{"const":"collider","type":"string"}]}},"required":["identity","manifestId","featureId","kind"],"additionalProperties":false}]},"temporal":{"anyOf":[{"const":"initial","type":"string"},{"const":"monitor","type":"string"},{"const":"maintain","type":"string"}]},"strength":{"anyOf":[{"const":"hard","type":"string"},{"const":"soft","type":"string"}]},"weight":{"type":"number"},"parameters":{"type":"object","properties":{},"required":[],"additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"array","items":{"type":"number"}}]}},"sourceCommand":{"type":"string"},"span":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"},"line":{"type":"number"},"column":{"type":"number"}},"required":["start","end","line","column"],"additionalProperties":false}},"required":["identity","kind","subject","target","temporal","strength","weight","parameters","sourceCommand","span"],"additionalProperties":false}},"bindings":{"type":"object","properties":{},"required":[],"additionalProperties":{"type":"string"}},"dependencies":{"type":"array","items":{"type":"object","properties":{"assetId":{"type":"string"},"manifestId":{"type":"string"},"analysisRevision":{"type":"string"},"contentHash":{"type":"string"}},"required":["assetId","manifestId","analysisRevision","contentHash"],"additionalProperties":false}},"versions":{"type":"object","properties":{"compiler":{"const":"quay.compiler/1","type":"string"},"layout":{"anyOf":[{"const":"quay.legacy-layout-adapter/1","type":"string"},{"const":"quay.semantic-layout/1","type":"string"},{"const":"quay.semantic-layout/2","type":"string"}]},"policy":{"anyOf":[{"const":"quay.static-policy/1","type":"string"},{"const":"quay.physical-policy/1","type":"string"}]}},"required":["compiler","layout","policy"],"additionalProperties":false}},"required":["version","sceneId","name","seed","room","profile","objects","relations","bindings","dependencies","versions"],"additionalProperties":false}
projectionyes{"type":"object","properties":{"materials":{"type":"array","items":{"type":"object","properties":{"version":{"const":"quay.material/1","type":"string"},"identity":{"type":"string"},"alias":{"type":"string"},"label":{"type":"string"},"description":{"type":"string"},"category":{"anyOf":[{"const":"generic","type":"string"},{"const":"wood","type":"string"},{"const":"metal","type":"string"},{"const":"stone","type":"string"},{"const":"concrete","type":"string"},{"const":"ceramic","type":"string"},{"const":"fabric","type":"string"},{"const":"glass","type":"string"},{"const":"paper","type":"string"},{"const":"plastic","type":"string"},{"const":"paint","type":"string"}]},"shader":{"anyOf":[{"const":"unlit","type":"string"},{"const":"standard","type":"string"}]},"color":{"type":"string"},"roughness":{"type":"number"},"metalness":{"type":"number"},"emissive":{"type":"string"},"emissiveIntensity":{"type":"number"},"opacity":{"type":"number"},"alphaMode":{"anyOf":[{"const":"opaque","type":"string"},{"const":"mask","type":"string"},{"const":"blend","type":"string"}]},"alphaCutoff":{"type":"number"},"side":{"anyOf":[{"const":"front","type":"string"},{"const":"back","type":"string"},{"const":"double","type":"string"}]},"preset":{"anyOf":[{"type":"null"},{"type":"string"}]},"maps":{"type":"array","items":{"type":"object","properties":{"slot":{"anyOf":[{"const":"color","type":"string"},{"const":"normal","type":"string"},{"const":"roughness","type":"string"},{"const":"metalness","type":"string"},{"const":"emissive","type":"string"},{"const":"occlusion","type":"string"},{"const":"alpha","type":"string"}]},"image":{"type":"object","properties":{"assetId":{"type":"string"},"uri":{"type":"string"},"sha256":{"type":"string"},"byteLength":{"type":"number"},"mediaType":{"anyOf":[{"const":"image/png","type":"string"},{"const":"image/jpeg","type":"string"},{"const":"image/webp","type":"string"}]},"displayName":{"type":"string"}},"required":["assetId","uri","sha256","byteLength","mediaType","displayName"],"additionalProperties":false},"repeat":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"minItems":2,"maxItems":2,"items":false},"offset":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"minItems":2,"maxItems":2,"items":false},"rotation":{"type":"number"},"wrap":{"anyOf":[{"const":"repeat","type":"string"},{"const":"clamp","type":"string"},{"const":"mirror","type":"string"}]}},"required":["slot","image","repeat","offset","rotation","wrap"],"additionalProperties":false}}},"required":["version","identity","alias","label","description","category","shader","color","roughness","metalness","emissive","emissiveIntensity","opacity","alphaMode","alphaCutoff","side","preset","maps"],"additionalProperties":false}},"schema":{"const":"quay.scene","type":"string"},"schemaVersion":{"const":"1.0.0","type":"string"},"sceneId":{"type":"string"},"revision":{"type":"number"},"name":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"units":{"const":"metres","type":"string"},"coordinateSystem":{"const":"right-handed-y-up-negative-z-forward","type":"string"},"seed":{"type":"number"},"environment":{"type":"object","properties":{"room":{"type":"object","properties":{"width":{"type":"number"},"depth":{"type":"number"},"height":{"type":"number"},"floorY":{"type":"number"}},"required":["width","depth","height","floorY"],"additionalProperties":false},"background":{"type":"string"},"fog":{"anyOf":[{"type":"null"},{"type":"object","properties":{"color":{"type":"string"},"near":{"type":"number"},"far":{"type":"number"}},"required":["color","near","far"],"additionalProperties":false}]},"floor":{"type":"object","properties":{"visible":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"color":{"type":"string"},"receiveShadow":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"gridVisible":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]}},"required":["visible","color","receiveShadow","gridVisible"],"additionalProperties":false},"lights":{"type":"array","items":{"type":"object","properties":{"type":{"anyOf":[{"const":"ambient","type":"string"},{"const":"hemisphere","type":"string"},{"const":"directional","type":"string"},{"const":"point","type":"string"}]},"color":{"type":"string"},"groundColor":{"type":"string"},"intensity":{"type":"number"},"position":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"castShadow":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]}},"required":["type","color","intensity","position","castShadow"],"additionalProperties":false}}},"required":["room","background","fog","floor","lights"],"additionalProperties":false},"assets":{"type":"array","items":{"type":"object","properties":{"library":{"type":"object","properties":{"version":{"const":"quay.asset-library/1","type":"string"},"alias":{"type":"string"},"scope":{"anyOf":[{"const":"standard","type":"string"},{"const":"user","type":"string"},{"const":"project","type":"string"}]},"projectId":{"anyOf":[{"type":"null"},{"type":"string"}]},"origin":{"type":"object","properties":{"provider":{"type":"string"},"originalAssetId":{"type":"string"},"originalUrl":{"anyOf":[{"type":"null"},{"type":"string"}]},"author":{"anyOf":[{"type":"null"},{"type":"string"}]},"license":{"type":"string"},"attributionRequired":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"originalFilename":{"type":"string"},"downloadedAt":{"type":"string"},"contentHash":{"type":"string"},"sourceHash":{"type":"string"}},"required":["provider","originalAssetId","originalUrl","author","license","attributionRequired","originalFilename","downloadedAt","contentHash","sourceHash"],"additionalProperties":false},"semantics":{"type":"object","properties":{"taxonomy":{"const":"quay.asset-taxonomy/1","type":"string"},"category":{"type":"string"},"styles":{"type":"array","items":{"type":"string"}},"roomTypes":{"type":"array","items":{"type":"string"}},"affordances":{"type":"array","items":{"type":"string"}},"capacity":{"anyOf":[{"type":"null"},{"type":"number"}]},"confidence":{"type":"number"},"state":{"anyOf":[{"const":"accepted","type":"string"},{"const":"unknown","type":"string"},{"const":"suggested","type":"string"}]},"producer":{"type":"string"},"model":{"anyOf":[{"type":"null"},{"type":"string"}]}},"required":["taxonomy","category","styles","roomTypes","affordances","capacity","confidence","state","producer","model"],"additionalProperties":false},"manifestId":{"anyOf":[{"type":"null"},{"type":"string"}]},"archetypeId":{"anyOf":[{"type":"null"},{"type":"string"}]},"cost":{"type":"object","properties":{"triangles":{"anyOf":[{"type":"null"},{"type":"number"}]},"materials":{"anyOf":[{"type":"null"},{"type":"number"}]},"textureBytes":{"anyOf":[{"type":"null"},{"type":"number"}]},"texturePixels":{"anyOf":[{"type":"null"},{"type":"number"}]}},"required":["triangles","materials","textureBytes","texturePixels"],"additionalProperties":false}},"required":["version","alias","scope","projectId","origin","semantics","manifestId","archetypeId","cost"],"additionalProperties":false},"assetId":{"type":"string"},"uri":{"type":"string"},"sha256":{"type":"string"},"byteLength":{"type":"number"},"mediaType":{"const":"model/gltf-binary","type":"string"},"displayName":{"type":"string"},"description":{"type":"string"},"category":{"type":"string"},"canonicalSize":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"normalization":{"type":"object","properties":{"rawBounds":{"type":"object","properties":{"min":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"max":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false}},"required":["min","max"],"additionalProperties":false},"scale":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"baseOffset":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"forwardCorrection":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":4,"maxItems":4,"items":false}},"required":["rawBounds","scale","baseOffset","forwardCorrection"],"additionalProperties":false},"placement":{"anyOf":[{"const":"floor_only","type":"string"},{"const":"support_only","type":"string"},{"const":"floor_or_support","type":"string"}]},"supportsObjects":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"wallAlignment":{"anyOf":[{"type":"null"},{"const":"center","type":"string"},{"const":"left","type":"string"},{"const":"right","type":"string"}]},"availability":{"anyOf":[{"const":"global","type":"string"},{"const":"local","type":"string"}]},"roomId":{"anyOf":[{"type":"null"},{"type":"string"}]},"supportSurfaces":{"type":"array","items":{"type":"object","properties":{"surfaceId":{"type":"string"},"label":{"type":"string"},"center":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"normal":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"size":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"minItems":2,"maxItems":2,"items":false},"source":{"anyOf":[{"const":"bounds","type":"string"},{"const":"mesh","type":"string"},{"const":"manual","type":"string"}]}},"required":["surfaceId","label","center","normal","size","source"],"additionalProperties":false}}},"required":["assetId","uri","sha256","byteLength","mediaType","displayName","description","category","canonicalSize","normalization","placement","supportsObjects","supportSurfaces"],"additionalProperties":false}},"imageAssets":{"type":"array","items":{"type":"object","properties":{"assetId":{"type":"string"},"uri":{"type":"string"},"sha256":{"type":"string"},"byteLength":{"type":"number"},"mediaType":{"anyOf":[{"const":"image/png","type":"string"},{"const":"image/jpeg","type":"string"},{"const":"image/webp","type":"string"}]},"displayName":{"type":"string"}},"required":["assetId","uri","sha256","byteLength","mediaType","displayName"],"additionalProperties":false}},"instances":{"type":"array","items":{"type":"object","properties":{"materialId":{"type":"string"},"normalization":{"type":"object","properties":{"rawBounds":{"type":"object","properties":{"min":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"max":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false}},"required":["min","max"],"additionalProperties":false},"scale":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"baseOffset":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"forwardCorrection":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":4,"maxItems":4,"items":false}},"required":["rawBounds","scale","baseOffset","forwardCorrection"],"additionalProperties":false},"instanceId":{"type":"string"},"assetId":{"type":"string"},"name":{"type":"string"},"transform":{"type":"object","properties":{"position":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"quaternion":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":4,"maxItems":4,"items":false},"scale":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false}},"required":["position","quaternion","scale"],"additionalProperties":false},"visible":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"castShadow":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"receiveShadow":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"locked":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"placement":{"type":"object","properties":{"source":{"anyOf":[{"const":"manual","type":"string"},{"const":"solver","type":"string"},{"const":"imported","type":"string"}]},"supportingInstanceId":{"anyOf":[{"type":"null"},{"type":"string"}]},"supportSurfaceId":{"anyOf":[{"type":"null"},{"type":"string"}]},"solverStatus":{"anyOf":[{"const":"unresolved","type":"string"},{"const":"fallback","type":"string"},{"const":"placed","type":"string"}]}},"required":["source","supportingInstanceId","supportSurfaceId","solverStatus"],"additionalProperties":false},"tags":{"type":"array","items":{"type":"string"}},"wallImage":{"type":"object","properties":{"wallInstanceId":{"type":"string"},"assetId":{"type":"string"},"position":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"minItems":2,"maxItems":2,"items":false},"size":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"minItems":2,"maxItems":2,"items":false},"surfaceOffset":{"type":"number"},"preserveAspectRatio":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"surface":{"anyOf":[{"const":"floor","type":"string"},{"const":"wall","type":"string"}]}},"required":["wallInstanceId","assetId","position","size","surfaceOffset","preserveAspectRatio"],"additionalProperties":false}},"required":["instanceId","assetId","name","transform","visible","castShadow","receiveShadow","locked","placement","tags"],"additionalProperties":false}},"relations":{"type":"array","items":{"type":"object","properties":{"relationId":{"type":"string"},"type":{"anyOf":[{"const":"ON","type":"string"},{"const":"NEAR","type":"string"},{"const":"LEFT_OF","type":"string"},{"const":"RIGHT_OF","type":"string"},{"const":"IN_FRONT_OF","type":"string"},{"const":"BEHIND","type":"string"},{"const":"FACING","type":"string"},{"const":"CENTERED_ON","type":"string"},{"const":"ALIGNED_WITH","type":"string"},{"const":"AGAINST_WALL","type":"string"},{"const":"KEEP_CLEAR_OF","type":"string"}]},"subjectInstanceId":{"type":"string"},"targetInstanceId":{"anyOf":[{"type":"null"},{"type":"string"}]},"strength":{"anyOf":[{"const":"hard","type":"string"},{"const":"soft","type":"string"}]},"status":{"anyOf":[{"const":"satisfied","type":"string"},{"const":"unresolved","type":"string"},{"const":"degraded","type":"string"}]},"message":{"type":"string"}},"required":["relationId","type","subjectInstanceId","targetInstanceId","strength","status","message"],"additionalProperties":false}},"diagnostics":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"severity":{"anyOf":[{"const":"error","type":"string"},{"const":"warning","type":"string"},{"const":"info","type":"string"}]},"message":{"type":"string"},"instanceIds":{"type":"array","items":{"type":"string"}},"relationId":{"anyOf":[{"type":"null"},{"type":"string"}]},"measurements":{"type":"object","properties":{},"required":[],"additionalProperties":{"type":"number"}}},"required":["code","severity","message","instanceIds","relationId"],"additionalProperties":false}},"unplacedInstanceIds":{"type":"array","items":{"type":"string"}},"camera":{"type":"object","properties":{"type":{"const":"perspective","type":"string"},"position":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"target":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"up":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"fovDegrees":{"type":"number"},"near":{"type":"number"},"far":{"type":"number"}},"required":["type","position","target","up","fovDegrees","near","far"],"additionalProperties":false},"provenance":{"type":"object","properties":{"createdBy":{"anyOf":[{"const":"quay","type":"string"},{"const":"import","type":"string"}]},"planner":{"anyOf":[{"type":"null"},{"type":"object","properties":{"provider":{"anyOf":[{"const":"openai","type":"string"},{"const":"fake","type":"string"}]},"model":{"type":"string"},"promptTemplateVersion":{"type":"string"},"requestId":{"type":"string"}},"required":["provider","model","promptTemplateVersion","requestId"],"additionalProperties":false}]},"layoutEngineVersion":{"type":"string"},"threeVersion":{"type":"string"},"sourcePrompt":{"type":"string"}},"required":["createdBy","planner","layoutEngineVersion","threeVersion","sourcePrompt"],"additionalProperties":false}},"required":["schema","schemaVersion","sceneId","revision","name","createdAt","updatedAt","units","coordinateSystem","seed","environment","assets","instances","relations","diagnostics","unplacedInstanceIds","camera","provenance"],"additionalProperties":false}
evaluationsyes{"type":"array","items":{"type":"object","properties":{"identity":{"type":"string"},"status":{"anyOf":[{"const":"unsupported","type":"string"},{"const":"satisfied","type":"string"},{"const":"failed","type":"string"},{"const":"unknown","type":"string"}]},"message":{"type":"string"},"residuals":{"type":"object","properties":{},"required":[],"additionalProperties":{"type":"number"}}},"required":["identity","status","message","residuals"],"additionalProperties":false}}
diagnosticsyes{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"severity":{"anyOf":[{"const":"error","type":"string"},{"const":"warning","type":"string"},{"const":"info","type":"string"}]},"message":{"type":"string"},"span":{"anyOf":[{"type":"null"},{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"},"line":{"type":"number"},"column":{"type":"number"}},"required":["start","end","line","column"],"additionalProperties":false}]},"identity":{"anyOf":[{"type":"null"},{"type":"string"}]}},"required":["code","severity","message","span","identity"],"additionalProperties":false}}
provenanceyes{"type":"object","properties":{"sourceHash":{"type":"string"},"versions":{"type":"object","properties":{"compiler":{"const":"quay.compiler/1","type":"string"},"layout":{"anyOf":[{"const":"quay.legacy-layout-adapter/1","type":"string"},{"const":"quay.semantic-layout/1","type":"string"},{"const":"quay.semantic-layout/2","type":"string"}]},"policy":{"anyOf":[{"const":"quay.static-policy/1","type":"string"},{"const":"quay.physical-policy/1","type":"string"}]}},"required":["compiler","layout","policy"],"additionalProperties":false},"dependencies":{"type":"array","items":{"type":"object","properties":{"assetId":{"type":"string"},"manifestId":{"type":"string"},"analysisRevision":{"type":"string"},"contentHash":{"type":"string"}},"required":["assetId","manifestId","analysisRevision","contentHash"],"additionalProperties":false}}},"required":["sourceHash","versions","dependencies"],"additionalProperties":false}
readinessyes{"const":"static-preview","type":"string"}
physicsno{"type":"object","properties":{"version":{"const":"quay.physics-preparation/1","type":"string"},"ready":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"gravity":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"stepSeconds":{"type":"number"},"maxCatchUpSteps":{"type":"number"},"bodies":{"type":"array","items":{"type":"object","properties":{"instanceId":{"type":"string"},"motion":{"anyOf":[{"const":"static","type":"string"},{"const":"dynamic","type":"string"},{"const":"kinematic","type":"string"}]},"collision":{"anyOf":[{"const":"none","type":"string"},{"const":"solid","type":"string"},{"const":"sensor","type":"string"}]},"controller":{"anyOf":[{"const":"none","type":"string"},{"const":"character","type":"string"}]},"role":{"type":"string"},"canGrab":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"massKg":{"type":"number"},"friction":{"type":"number"},"restitution":{"type":"number"},"colliders":{"type":"array","items":{"type":"object","properties":{"shape":{"anyOf":[{"type":"object","properties":{"kind":{"const":"box","type":"string"},"center":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"halfExtents":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false}},"required":["kind","center","halfExtents"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"convex","type":"string"},"vertices":{"type":"array","items":{"type":"number"}}},"required":["kind","vertices"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"triangle-mesh","type":"string"},"vertices":{"type":"array","items":{"type":"number"}},"indices":{"type":"array","items":{"type":"number"}}},"required":["kind","vertices","indices"],"additionalProperties":false}]},"volumeM3":{"type":"number"},"evidence":{"type":"string"},"approximate":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]}},"required":["shape","volumeM3","evidence","approximate"],"additionalProperties":false}}},"required":["instanceId","motion","collision","controller","role","canGrab","massKg","friction","restitution","colliders"],"additionalProperties":false}},"diagnostics":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"severity":{"anyOf":[{"const":"error","type":"string"},{"const":"warning","type":"string"}]},"instanceId":{"anyOf":[{"type":"null"},{"type":"string"}]},"message":{"type":"string"}},"required":["code","severity","instanceId","message"],"additionalProperties":false}}},"required":["version","ready","gravity","stepSeconds","maxCatchUpSteps","bodies","diagnostics"],"additionalProperties":false}
Complete schema including nested definitions
JSON
{
  "type": "object",
  "properties": {
    "wright": {
      "type": "object",
      "properties": {
        "version": {
          "const": "wright.resolved/1",
          "type": "string"
        },
        "topology": {
          "type": "object",
          "properties": {
            "version": {
              "const": "wright.world/1",
              "type": "string"
            },
            "identity": {
              "type": "string"
            },
            "rooms": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "furnishing": {
                    "type": "object",
                    "properties": {
                      "roomProgram": {
                        "type": "object",
                        "properties": {
                          "repair": {
                            "type": "object",
                            "properties": {
                              "stage": {
                                "const": "semantic",
                                "type": "string"
                              },
                              "attempts": {
                                "type": "number"
                              },
                              "strategy": {
                                "anyOf": [
                                  {
                                    "const": "none",
                                    "type": "string"
                                  },
                                  {
                                    "const": "bounded-semantic-revision",
                                    "type": "string"
                                  }
                                ]
                              },
                              "initialFailures": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "finalState": {
                                "const": "accepted",
                                "type": "string"
                              },
                              "relaxedConstraints": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            },
                            "required": [
                              "stage",
                              "attempts",
                              "strategy",
                              "initialFailures",
                              "finalState",
                              "relaxedConstraints"
                            ],
                            "additionalProperties": false
                          },
                          "enrichment": {
                            "type": "object",
                            "properties": {
                              "provider": {
                                "type": "string"
                              },
                              "model": {
                                "type": "string"
                              },
                              "version": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "provider",
                              "model",
                              "version"
                            ],
                            "additionalProperties": false
                          },
                          "intent": {
                            "type": "object",
                            "properties": {
                              "version": {
                                "const": "qway.room-program/1",
                                "type": "string"
                              },
                              "archetype": {
                                "type": "string"
                              },
                              "archetypeRevision": {
                                "type": "string"
                              },
                              "purpose": {
                                "type": "string"
                              },
                              "capacity": {
                                "type": "number"
                              },
                              "style": {
                                "type": "string"
                              },
                              "zones": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "reference": {
                                      "type": "string"
                                    },
                                    "purpose": {
                                      "type": "string"
                                    },
                                    "priority": {
                                      "anyOf": [
                                        {
                                          "const": "required",
                                          "type": "string"
                                        },
                                        {
                                          "const": "recommended",
                                          "type": "string"
                                        },
                                        {
                                          "const": "optional",
                                          "type": "string"
                                        }
                                      ]
                                    }
                                  },
                                  "required": [
                                    "reference",
                                    "purpose",
                                    "priority"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "needs": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "reference": {
                                      "type": "string"
                                    },
                                    "category": {
                                      "type": "string"
                                    },
                                    "zone": {
                                      "type": "string"
                                    },
                                    "quantity": {
                                      "type": "number"
                                    },
                                    "capacity": {
                                      "anyOf": [
                                        {
                                          "type": "null"
                                        },
                                        {
                                          "type": "number"
                                        }
                                      ]
                                    },
                                    "priority": {
                                      "anyOf": [
                                        {
                                          "const": "required",
                                          "type": "string"
                                        },
                                        {
                                          "const": "recommended",
                                          "type": "string"
                                        },
                                        {
                                          "const": "optional",
                                          "type": "string"
                                        }
                                      ]
                                    },
                                    "assetAlias": {
                                      "anyOf": [
                                        {
                                          "type": "null"
                                        },
                                        {
                                          "type": "string"
                                        }
                                      ]
                                    },
                                    "placement": {
                                      "anyOf": [
                                        {
                                          "const": "auto",
                                          "type": "string"
                                        },
                                        {
                                          "const": "center",
                                          "type": "string"
                                        },
                                        {
                                          "const": "perimeter",
                                          "type": "string"
                                        }
                                      ]
                                    },
                                    "evidence": {
                                      "type": "object",
                                      "properties": {
                                        "origin": {
                                          "anyOf": [
                                            {
                                              "const": "explicit",
                                              "type": "string"
                                            },
                                            {
                                              "const": "archetype",
                                              "type": "string"
                                            },
                                            {
                                              "const": "inferred",
                                              "type": "string"
                                            }
                                          ]
                                        },
                                        "confidence": {
                                          "type": "number"
                                        },
                                        "explanation": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "origin",
                                        "confidence",
                                        "explanation"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "required": [
                                    "reference",
                                    "category",
                                    "zone",
                                    "quantity",
                                    "capacity",
                                    "priority",
                                    "assetAlias",
                                    "placement",
                                    "evidence"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "rules": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "reference": {
                                      "type": "string"
                                    },
                                    "kind": {
                                      "anyOf": [
                                        {
                                          "const": "on",
                                          "type": "string"
                                        },
                                        {
                                          "const": "seating",
                                          "type": "string"
                                        },
                                        {
                                          "const": "beside",
                                          "type": "string"
                                        },
                                        {
                                          "const": "facing",
                                          "type": "string"
                                        },
                                        {
                                          "const": "near-window",
                                          "type": "string"
                                        },
                                        {
                                          "const": "wall-alignment",
                                          "type": "string"
                                        },
                                        {
                                          "const": "interior",
                                          "type": "string"
                                        },
                                        {
                                          "const": "access",
                                          "type": "string"
                                        },
                                        {
                                          "const": "visibility",
                                          "type": "string"
                                        },
                                        {
                                          "const": "clearance",
                                          "type": "string"
                                        },
                                        {
                                          "const": "circulation",
                                          "type": "string"
                                        },
                                        {
                                          "const": "minimum-dimensions",
                                          "type": "string"
                                        },
                                        {
                                          "const": "unsupported",
                                          "type": "string"
                                        }
                                      ]
                                    },
                                    "subjects": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "target": {
                                      "anyOf": [
                                        {
                                          "type": "null"
                                        },
                                        {
                                          "type": "string"
                                        }
                                      ]
                                    },
                                    "priority": {
                                      "anyOf": [
                                        {
                                          "const": "required",
                                          "type": "string"
                                        },
                                        {
                                          "const": "recommended",
                                          "type": "string"
                                        },
                                        {
                                          "const": "optional",
                                          "type": "string"
                                        }
                                      ]
                                    },
                                    "strength": {
                                      "anyOf": [
                                        {
                                          "const": "hard",
                                          "type": "string"
                                        },
                                        {
                                          "const": "soft",
                                          "type": "string"
                                        }
                                      ]
                                    },
                                    "clearanceM": {
                                      "anyOf": [
                                        {
                                          "type": "null"
                                        },
                                        {
                                          "type": "number"
                                        }
                                      ]
                                    },
                                    "description": {
                                      "type": "string"
                                    },
                                    "evidence": {
                                      "type": "object",
                                      "properties": {
                                        "origin": {
                                          "anyOf": [
                                            {
                                              "const": "explicit",
                                              "type": "string"
                                            },
                                            {
                                              "const": "archetype",
                                              "type": "string"
                                            },
                                            {
                                              "const": "inferred",
                                              "type": "string"
                                            }
                                          ]
                                        },
                                        "confidence": {
                                          "type": "number"
                                        },
                                        "explanation": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "origin",
                                        "confidence",
                                        "explanation"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "required": [
                                    "reference",
                                    "kind",
                                    "subjects",
                                    "target",
                                    "priority",
                                    "strength",
                                    "clearanceM",
                                    "description",
                                    "evidence"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "architecture": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "reference": {
                                      "type": "string"
                                    },
                                    "kind": {
                                      "anyOf": [
                                        {
                                          "const": "window",
                                          "type": "string"
                                        },
                                        {
                                          "const": "portal",
                                          "type": "string"
                                        },
                                        {
                                          "const": "wall-run",
                                          "type": "string"
                                        },
                                        {
                                          "const": "open-center",
                                          "type": "string"
                                        },
                                        {
                                          "const": "natural-light",
                                          "type": "string"
                                        },
                                        {
                                          "const": "ceiling-light",
                                          "type": "string"
                                        }
                                      ]
                                    },
                                    "quantity": {
                                      "type": "number"
                                    },
                                    "priority": {
                                      "anyOf": [
                                        {
                                          "const": "required",
                                          "type": "string"
                                        },
                                        {
                                          "const": "recommended",
                                          "type": "string"
                                        },
                                        {
                                          "const": "optional",
                                          "type": "string"
                                        }
                                      ]
                                    },
                                    "evidence": {
                                      "type": "object",
                                      "properties": {
                                        "origin": {
                                          "anyOf": [
                                            {
                                              "const": "explicit",
                                              "type": "string"
                                            },
                                            {
                                              "const": "archetype",
                                              "type": "string"
                                            },
                                            {
                                              "const": "inferred",
                                              "type": "string"
                                            }
                                          ]
                                        },
                                        "confidence": {
                                          "type": "number"
                                        },
                                        "explanation": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "origin",
                                        "confidence",
                                        "explanation"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "required": [
                                    "reference",
                                    "kind",
                                    "quantity",
                                    "priority",
                                    "evidence"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "exclusions": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "category": {
                                      "type": "string"
                                    },
                                    "evidence": {
                                      "type": "object",
                                      "properties": {
                                        "origin": {
                                          "const": "explicit",
                                          "type": "string"
                                        },
                                        "confidence": {
                                          "type": "number"
                                        },
                                        "explanation": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "origin",
                                        "confidence",
                                        "explanation"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "required": [
                                    "category",
                                    "evidence"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "uncertainties": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            },
                            "required": [
                              "version",
                              "archetype",
                              "archetypeRevision",
                              "purpose",
                              "capacity",
                              "style",
                              "zones",
                              "needs",
                              "rules",
                              "architecture",
                              "exclusions",
                              "uncertainties"
                            ],
                            "additionalProperties": false
                          },
                          "archetypeSnapshot": {
                            "type": "object",
                            "properties": {
                              "version": {
                                "const": "qway.room-program/1",
                                "type": "string"
                              },
                              "archetype": {
                                "type": "string"
                              },
                              "archetypeRevision": {
                                "type": "string"
                              },
                              "purpose": {
                                "type": "string"
                              },
                              "capacity": {
                                "type": "number"
                              },
                              "style": {
                                "type": "string"
                              },
                              "zones": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "reference": {
                                      "type": "string"
                                    },
                                    "purpose": {
                                      "type": "string"
                                    },
                                    "priority": {
                                      "anyOf": [
                                        {
                                          "const": "required",
                                          "type": "string"
                                        },
                                        {
                                          "const": "recommended",
                                          "type": "string"
                                        },
                                        {
                                          "const": "optional",
                                          "type": "string"
                                        }
                                      ]
                                    }
                                  },
                                  "required": [
                                    "reference",
                                    "purpose",
                                    "priority"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "needs": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "reference": {
                                      "type": "string"
                                    },
                                    "category": {
                                      "type": "string"
                                    },
                                    "zone": {
                                      "type": "string"
                                    },
                                    "quantity": {
                                      "type": "number"
                                    },
                                    "capacity": {
                                      "anyOf": [
                                        {
                                          "type": "null"
                                        },
                                        {
                                          "type": "number"
                                        }
                                      ]
                                    },
                                    "priority": {
                                      "anyOf": [
                                        {
                                          "const": "required",
                                          "type": "string"
                                        },
                                        {
                                          "const": "recommended",
                                          "type": "string"
                                        },
                                        {
                                          "const": "optional",
                                          "type": "string"
                                        }
                                      ]
                                    },
                                    "assetAlias": {
                                      "anyOf": [
                                        {
                                          "type": "null"
                                        },
                                        {
                                          "type": "string"
                                        }
                                      ]
                                    },
                                    "placement": {
                                      "anyOf": [
                                        {
                                          "const": "auto",
                                          "type": "string"
                                        },
                                        {
                                          "const": "center",
                                          "type": "string"
                                        },
                                        {
                                          "const": "perimeter",
                                          "type": "string"
                                        }
                                      ]
                                    },
                                    "evidence": {
                                      "type": "object",
                                      "properties": {
                                        "origin": {
                                          "anyOf": [
                                            {
                                              "const": "explicit",
                                              "type": "string"
                                            },
                                            {
                                              "const": "archetype",
                                              "type": "string"
                                            },
                                            {
                                              "const": "inferred",
                                              "type": "string"
                                            }
                                          ]
                                        },
                                        "confidence": {
                                          "type": "number"
                                        },
                                        "explanation": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "origin",
                                        "confidence",
                                        "explanation"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "required": [
                                    "reference",
                                    "category",
                                    "zone",
                                    "quantity",
                                    "capacity",
                                    "priority",
                                    "assetAlias",
                                    "placement",
                                    "evidence"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "rules": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "reference": {
                                      "type": "string"
                                    },
                                    "kind": {
                                      "anyOf": [
                                        {
                                          "const": "on",
                                          "type": "string"
                                        },
                                        {
                                          "const": "seating",
                                          "type": "string"
                                        },
                                        {
                                          "const": "beside",
                                          "type": "string"
                                        },
                                        {
                                          "const": "facing",
                                          "type": "string"
                                        },
                                        {
                                          "const": "near-window",
                                          "type": "string"
                                        },
                                        {
                                          "const": "wall-alignment",
                                          "type": "string"
                                        },
                                        {
                                          "const": "interior",
                                          "type": "string"
                                        },
                                        {
                                          "const": "access",
                                          "type": "string"
                                        },
                                        {
                                          "const": "visibility",
                                          "type": "string"
                                        },
                                        {
                                          "const": "clearance",
                                          "type": "string"
                                        },
                                        {
                                          "const": "circulation",
                                          "type": "string"
                                        },
                                        {
                                          "const": "minimum-dimensions",
                                          "type": "string"
                                        },
                                        {
                                          "const": "unsupported",
                                          "type": "string"
                                        }
                                      ]
                                    },
                                    "subjects": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "target": {
                                      "anyOf": [
                                        {
                                          "type": "null"
                                        },
                                        {
                                          "type": "string"
                                        }
                                      ]
                                    },
                                    "priority": {
                                      "anyOf": [
                                        {
                                          "const": "required",
                                          "type": "string"
                                        },
                                        {
                                          "const": "recommended",
                                          "type": "string"
                                        },
                                        {
                                          "const": "optional",
                                          "type": "string"
                                        }
                                      ]
                                    },
                                    "strength": {
                                      "anyOf": [
                                        {
                                          "const": "hard",
                                          "type": "string"
                                        },
                                        {
                                          "const": "soft",
                                          "type": "string"
                                        }
                                      ]
                                    },
                                    "clearanceM": {
                                      "anyOf": [
                                        {
                                          "type": "null"
                                        },
                                        {
                                          "type": "number"
                                        }
                                      ]
                                    },
                                    "description": {
                                      "type": "string"
                                    },
                                    "evidence": {
                                      "type": "object",
                                      "properties": {
                                        "origin": {
                                          "anyOf": [
                                            {
                                              "const": "explicit",
                                              "type": "string"
                                            },
                                            {
                                              "const": "archetype",
                                              "type": "string"
                                            },
                                            {
                                              "const": "inferred",
                                              "type": "string"
                                            }
                                          ]
                                        },
                                        "confidence": {
                                          "type": "number"
                                        },
                                        "explanation": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "origin",
                                        "confidence",
                                        "explanation"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "required": [
                                    "reference",
                                    "kind",
                                    "subjects",
                                    "target",
                                    "priority",
                                    "strength",
                                    "clearanceM",
                                    "description",
                                    "evidence"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "architecture": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "reference": {
                                      "type": "string"
                                    },
                                    "kind": {
                                      "anyOf": [
                                        {
                                          "const": "window",
                                          "type": "string"
                                        },
                                        {
                                          "const": "portal",
                                          "type": "string"
                                        },
                                        {
                                          "const": "wall-run",
                                          "type": "string"
                                        },
                                        {
                                          "const": "open-center",
                                          "type": "string"
                                        },
                                        {
                                          "const": "natural-light",
                                          "type": "string"
                                        },
                                        {
                                          "const": "ceiling-light",
                                          "type": "string"
                                        }
                                      ]
                                    },
                                    "quantity": {
                                      "type": "number"
                                    },
                                    "priority": {
                                      "anyOf": [
                                        {
                                          "const": "required",
                                          "type": "string"
                                        },
                                        {
                                          "const": "recommended",
                                          "type": "string"
                                        },
                                        {
                                          "const": "optional",
                                          "type": "string"
                                        }
                                      ]
                                    },
                                    "evidence": {
                                      "type": "object",
                                      "properties": {
                                        "origin": {
                                          "anyOf": [
                                            {
                                              "const": "explicit",
                                              "type": "string"
                                            },
                                            {
                                              "const": "archetype",
                                              "type": "string"
                                            },
                                            {
                                              "const": "inferred",
                                              "type": "string"
                                            }
                                          ]
                                        },
                                        "confidence": {
                                          "type": "number"
                                        },
                                        "explanation": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "origin",
                                        "confidence",
                                        "explanation"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "required": [
                                    "reference",
                                    "kind",
                                    "quantity",
                                    "priority",
                                    "evidence"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "exclusions": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "category": {
                                      "type": "string"
                                    },
                                    "evidence": {
                                      "type": "object",
                                      "properties": {
                                        "origin": {
                                          "const": "explicit",
                                          "type": "string"
                                        },
                                        "confidence": {
                                          "type": "number"
                                        },
                                        "explanation": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "origin",
                                        "confidence",
                                        "explanation"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "required": [
                                    "category",
                                    "evidence"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "uncertainties": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            },
                            "required": [
                              "version",
                              "archetype",
                              "archetypeRevision",
                              "purpose",
                              "capacity",
                              "style",
                              "zones",
                              "needs",
                              "rules",
                              "architecture",
                              "exclusions",
                              "uncertainties"
                            ],
                            "additionalProperties": false
                          },
                          "bindings": {
                            "type": "object",
                            "properties": {},
                            "required": [],
                            "additionalProperties": {
                              "type": "string"
                            }
                          }
                        },
                        "required": [
                          "intent",
                          "archetypeSnapshot",
                          "bindings"
                        ],
                        "additionalProperties": false
                      },
                      "version": {
                        "const": "qway.furnishing/1",
                        "type": "string"
                      },
                      "purpose": {
                        "type": "string"
                      },
                      "capacity": {
                        "type": "number"
                      },
                      "style": {
                        "type": "string"
                      },
                      "needs": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "identity": {
                              "type": "string"
                            },
                            "category": {
                              "type": "string"
                            },
                            "quantity": {
                              "type": "number"
                            },
                            "capacity": {
                              "anyOf": [
                                {
                                  "type": "null"
                                },
                                {
                                  "type": "number"
                                }
                              ]
                            },
                            "assetAlias": {
                              "anyOf": [
                                {
                                  "type": "null"
                                },
                                {
                                  "type": "string"
                                }
                              ]
                            },
                            "placement": {
                              "anyOf": [
                                {
                                  "const": "auto",
                                  "type": "string"
                                },
                                {
                                  "const": "center",
                                  "type": "string"
                                },
                                {
                                  "const": "perimeter",
                                  "type": "string"
                                }
                              ]
                            },
                            "relation": {
                              "anyOf": [
                                {
                                  "type": "null"
                                },
                                {
                                  "const": "on",
                                  "type": "string"
                                },
                                {
                                  "const": "seating",
                                  "type": "string"
                                },
                                {
                                  "const": "near-window",
                                  "type": "string"
                                }
                              ]
                            },
                            "target": {
                              "anyOf": [
                                {
                                  "type": "null"
                                },
                                {
                                  "type": "string"
                                }
                              ]
                            },
                            "instances": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            }
                          },
                          "required": [
                            "identity",
                            "category",
                            "quantity",
                            "capacity",
                            "assetAlias",
                            "placement",
                            "relation",
                            "target",
                            "instances"
                          ],
                          "additionalProperties": false
                        }
                      }
                    },
                    "required": [
                      "version",
                      "purpose",
                      "capacity",
                      "style",
                      "needs"
                    ],
                    "additionalProperties": false
                  },
                  "identity": {
                    "type": "string"
                  },
                  "alias": {
                    "type": "string",
                    "maxLength": 100
                  },
                  "label": {
                    "type": "string",
                    "maxLength": 200
                  },
                  "level": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "parent": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "size": {
                    "type": "array",
                    "prefixItems": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      }
                    ],
                    "minItems": 3,
                    "maxItems": 3,
                    "items": false
                  },
                  "frame": {
                    "type": "object",
                    "properties": {
                      "position": {
                        "type": "array",
                        "prefixItems": [
                          {
                            "type": "number"
                          },
                          {
                            "type": "number"
                          },
                          {
                            "type": "number"
                          }
                        ],
                        "minItems": 3,
                        "maxItems": 3,
                        "items": false
                      },
                      "quaternion": {
                        "type": "array",
                        "prefixItems": [
                          {
                            "type": "number"
                          },
                          {
                            "type": "number"
                          },
                          {
                            "type": "number"
                          },
                          {
                            "type": "number"
                          }
                        ],
                        "minItems": 4,
                        "maxItems": 4,
                        "items": false
                      }
                    },
                    "required": [
                      "position",
                      "quaternion"
                    ],
                    "additionalProperties": false
                  },
                  "backdrop": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "materialId": {
                            "type": "string"
                          },
                          "identity": {
                            "type": "string"
                          },
                          "semantic": {
                            "type": "string",
                            "maxLength": 200
                          },
                          "source": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "const": "image",
                                    "type": "string"
                                  },
                                  "assetId": {
                                    "type": "string"
                                  },
                                  "uri": {
                                    "type": "string"
                                  },
                                  "mediaType": {
                                    "anyOf": [
                                      {
                                        "const": "image/png",
                                        "type": "string"
                                      },
                                      {
                                        "const": "image/jpeg",
                                        "type": "string"
                                      },
                                      {
                                        "const": "image/webp",
                                        "type": "string"
                                      }
                                    ]
                                  },
                                  "sha256": {
                                    "type": "string"
                                  },
                                  "byteLength": {
                                    "type": "number"
                                  }
                                },
                                "required": [
                                  "kind",
                                  "assetId",
                                  "uri",
                                  "mediaType",
                                  "sha256",
                                  "byteLength"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "const": "asset",
                                    "type": "string"
                                  },
                                  "uri": {
                                    "type": "null"
                                  },
                                  "assetId": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "kind",
                                  "uri",
                                  "assetId"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "side": {
                            "anyOf": [
                              {
                                "const": "north",
                                "type": "string"
                              },
                              {
                                "const": "south",
                                "type": "string"
                              },
                              {
                                "const": "east",
                                "type": "string"
                              },
                              {
                                "const": "west",
                                "type": "string"
                              }
                            ]
                          },
                          "mode": {
                            "const": "architectural",
                            "type": "string"
                          },
                          "fit": {
                            "anyOf": [
                              {
                                "const": "cover",
                                "type": "string"
                              },
                              {
                                "const": "contain",
                                "type": "string"
                              }
                            ]
                          },
                          "projection": {
                            "const": "flat",
                            "type": "string"
                          },
                          "distance": {
                            "type": "number"
                          },
                          "lighting": {
                            "anyOf": [
                              {
                                "const": "unlit",
                                "type": "string"
                              },
                              {
                                "const": "lit",
                                "type": "string"
                              }
                            ]
                          },
                          "enabled": {
                            "anyOf": [
                              {
                                "const": false,
                                "type": "boolean"
                              },
                              {
                                "const": true,
                                "type": "boolean"
                              }
                            ]
                          }
                        },
                        "required": [
                          "identity",
                          "semantic",
                          "source",
                          "side",
                          "mode",
                          "fit",
                          "projection",
                          "distance",
                          "lighting",
                          "enabled"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "north": {
                            "type": "object",
                            "properties": {
                              "materialId": {
                                "type": "string"
                              },
                              "identity": {
                                "type": "string"
                              },
                              "semantic": {
                                "type": "string",
                                "maxLength": 200
                              },
                              "source": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "const": "image",
                                        "type": "string"
                                      },
                                      "assetId": {
                                        "type": "string"
                                      },
                                      "uri": {
                                        "type": "string"
                                      },
                                      "mediaType": {
                                        "anyOf": [
                                          {
                                            "const": "image/png",
                                            "type": "string"
                                          },
                                          {
                                            "const": "image/jpeg",
                                            "type": "string"
                                          },
                                          {
                                            "const": "image/webp",
                                            "type": "string"
                                          }
                                        ]
                                      },
                                      "sha256": {
                                        "type": "string"
                                      },
                                      "byteLength": {
                                        "type": "number"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "assetId",
                                      "uri",
                                      "mediaType",
                                      "sha256",
                                      "byteLength"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "const": "asset",
                                        "type": "string"
                                      },
                                      "uri": {
                                        "type": "null"
                                      },
                                      "assetId": {
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "uri",
                                      "assetId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "side": {
                                "anyOf": [
                                  {
                                    "const": "north",
                                    "type": "string"
                                  },
                                  {
                                    "const": "south",
                                    "type": "string"
                                  },
                                  {
                                    "const": "east",
                                    "type": "string"
                                  },
                                  {
                                    "const": "west",
                                    "type": "string"
                                  }
                                ]
                              },
                              "mode": {
                                "const": "architectural",
                                "type": "string"
                              },
                              "fit": {
                                "anyOf": [
                                  {
                                    "const": "cover",
                                    "type": "string"
                                  },
                                  {
                                    "const": "contain",
                                    "type": "string"
                                  }
                                ]
                              },
                              "projection": {
                                "const": "flat",
                                "type": "string"
                              },
                              "distance": {
                                "type": "number"
                              },
                              "lighting": {
                                "anyOf": [
                                  {
                                    "const": "unlit",
                                    "type": "string"
                                  },
                                  {
                                    "const": "lit",
                                    "type": "string"
                                  }
                                ]
                              },
                              "enabled": {
                                "anyOf": [
                                  {
                                    "const": false,
                                    "type": "boolean"
                                  },
                                  {
                                    "const": true,
                                    "type": "boolean"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "identity",
                              "semantic",
                              "source",
                              "side",
                              "mode",
                              "fit",
                              "projection",
                              "distance",
                              "lighting",
                              "enabled"
                            ],
                            "additionalProperties": false
                          },
                          "south": {
                            "type": "object",
                            "properties": {
                              "materialId": {
                                "type": "string"
                              },
                              "identity": {
                                "type": "string"
                              },
                              "semantic": {
                                "type": "string",
                                "maxLength": 200
                              },
                              "source": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "const": "image",
                                        "type": "string"
                                      },
                                      "assetId": {
                                        "type": "string"
                                      },
                                      "uri": {
                                        "type": "string"
                                      },
                                      "mediaType": {
                                        "anyOf": [
                                          {
                                            "const": "image/png",
                                            "type": "string"
                                          },
                                          {
                                            "const": "image/jpeg",
                                            "type": "string"
                                          },
                                          {
                                            "const": "image/webp",
                                            "type": "string"
                                          }
                                        ]
                                      },
                                      "sha256": {
                                        "type": "string"
                                      },
                                      "byteLength": {
                                        "type": "number"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "assetId",
                                      "uri",
                                      "mediaType",
                                      "sha256",
                                      "byteLength"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "const": "asset",
                                        "type": "string"
                                      },
                                      "uri": {
                                        "type": "null"
                                      },
                                      "assetId": {
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "uri",
                                      "assetId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "side": {
                                "anyOf": [
                                  {
                                    "const": "north",
                                    "type": "string"
                                  },
                                  {
                                    "const": "south",
                                    "type": "string"
                                  },
                                  {
                                    "const": "east",
                                    "type": "string"
                                  },
                                  {
                                    "const": "west",
                                    "type": "string"
                                  }
                                ]
                              },
                              "mode": {
                                "const": "architectural",
                                "type": "string"
                              },
                              "fit": {
                                "anyOf": [
                                  {
                                    "const": "cover",
                                    "type": "string"
                                  },
                                  {
                                    "const": "contain",
                                    "type": "string"
                                  }
                                ]
                              },
                              "projection": {
                                "const": "flat",
                                "type": "string"
                              },
                              "distance": {
                                "type": "number"
                              },
                              "lighting": {
                                "anyOf": [
                                  {
                                    "const": "unlit",
                                    "type": "string"
                                  },
                                  {
                                    "const": "lit",
                                    "type": "string"
                                  }
                                ]
                              },
                              "enabled": {
                                "anyOf": [
                                  {
                                    "const": false,
                                    "type": "boolean"
                                  },
                                  {
                                    "const": true,
                                    "type": "boolean"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "identity",
                              "semantic",
                              "source",
                              "side",
                              "mode",
                              "fit",
                              "projection",
                              "distance",
                              "lighting",
                              "enabled"
                            ],
                            "additionalProperties": false
                          },
                          "east": {
                            "type": "object",
                            "properties": {
                              "materialId": {
                                "type": "string"
                              },
                              "identity": {
                                "type": "string"
                              },
                              "semantic": {
                                "type": "string",
                                "maxLength": 200
                              },
                              "source": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "const": "image",
                                        "type": "string"
                                      },
                                      "assetId": {
                                        "type": "string"
                                      },
                                      "uri": {
                                        "type": "string"
                                      },
                                      "mediaType": {
                                        "anyOf": [
                                          {
                                            "const": "image/png",
                                            "type": "string"
                                          },
                                          {
                                            "const": "image/jpeg",
                                            "type": "string"
                                          },
                                          {
                                            "const": "image/webp",
                                            "type": "string"
                                          }
                                        ]
                                      },
                                      "sha256": {
                                        "type": "string"
                                      },
                                      "byteLength": {
                                        "type": "number"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "assetId",
                                      "uri",
                                      "mediaType",
                                      "sha256",
                                      "byteLength"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "const": "asset",
                                        "type": "string"
                                      },
                                      "uri": {
                                        "type": "null"
                                      },
                                      "assetId": {
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "uri",
                                      "assetId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "side": {
                                "anyOf": [
                                  {
                                    "const": "north",
                                    "type": "string"
                                  },
                                  {
                                    "const": "south",
                                    "type": "string"
                                  },
                                  {
                                    "const": "east",
                                    "type": "string"
                                  },
                                  {
                                    "const": "west",
                                    "type": "string"
                                  }
                                ]
                              },
                              "mode": {
                                "const": "architectural",
                                "type": "string"
                              },
                              "fit": {
                                "anyOf": [
                                  {
                                    "const": "cover",
                                    "type": "string"
                                  },
                                  {
                                    "const": "contain",
                                    "type": "string"
                                  }
                                ]
                              },
                              "projection": {
                                "const": "flat",
                                "type": "string"
                              },
                              "distance": {
                                "type": "number"
                              },
                              "lighting": {
                                "anyOf": [
                                  {
                                    "const": "unlit",
                                    "type": "string"
                                  },
                                  {
                                    "const": "lit",
                                    "type": "string"
                                  }
                                ]
                              },
                              "enabled": {
                                "anyOf": [
                                  {
                                    "const": false,
                                    "type": "boolean"
                                  },
                                  {
                                    "const": true,
                                    "type": "boolean"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "identity",
                              "semantic",
                              "source",
                              "side",
                              "mode",
                              "fit",
                              "projection",
                              "distance",
                              "lighting",
                              "enabled"
                            ],
                            "additionalProperties": false
                          },
                          "west": {
                            "type": "object",
                            "properties": {
                              "materialId": {
                                "type": "string"
                              },
                              "identity": {
                                "type": "string"
                              },
                              "semantic": {
                                "type": "string",
                                "maxLength": 200
                              },
                              "source": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "const": "image",
                                        "type": "string"
                                      },
                                      "assetId": {
                                        "type": "string"
                                      },
                                      "uri": {
                                        "type": "string"
                                      },
                                      "mediaType": {
                                        "anyOf": [
                                          {
                                            "const": "image/png",
                                            "type": "string"
                                          },
                                          {
                                            "const": "image/jpeg",
                                            "type": "string"
                                          },
                                          {
                                            "const": "image/webp",
                                            "type": "string"
                                          }
                                        ]
                                      },
                                      "sha256": {
                                        "type": "string"
                                      },
                                      "byteLength": {
                                        "type": "number"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "assetId",
                                      "uri",
                                      "mediaType",
                                      "sha256",
                                      "byteLength"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "const": "asset",
                                        "type": "string"
                                      },
                                      "uri": {
                                        "type": "null"
                                      },
                                      "assetId": {
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "uri",
                                      "assetId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "side": {
                                "anyOf": [
                                  {
                                    "const": "north",
                                    "type": "string"
                                  },
                                  {
                                    "const": "south",
                                    "type": "string"
                                  },
                                  {
                                    "const": "east",
                                    "type": "string"
                                  },
                                  {
                                    "const": "west",
                                    "type": "string"
                                  }
                                ]
                              },
                              "mode": {
                                "const": "architectural",
                                "type": "string"
                              },
                              "fit": {
                                "anyOf": [
                                  {
                                    "const": "cover",
                                    "type": "string"
                                  },
                                  {
                                    "const": "contain",
                                    "type": "string"
                                  }
                                ]
                              },
                              "projection": {
                                "const": "flat",
                                "type": "string"
                              },
                              "distance": {
                                "type": "number"
                              },
                              "lighting": {
                                "anyOf": [
                                  {
                                    "const": "unlit",
                                    "type": "string"
                                  },
                                  {
                                    "const": "lit",
                                    "type": "string"
                                  }
                                ]
                              },
                              "enabled": {
                                "anyOf": [
                                  {
                                    "const": false,
                                    "type": "boolean"
                                  },
                                  {
                                    "const": true,
                                    "type": "boolean"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "identity",
                              "semantic",
                              "source",
                              "side",
                              "mode",
                              "fit",
                              "projection",
                              "distance",
                              "lighting",
                              "enabled"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [],
                        "additionalProperties": false
                      }
                    ]
                  }
                },
                "required": [
                  "identity",
                  "alias",
                  "label",
                  "level",
                  "parent",
                  "size",
                  "frame"
                ],
                "additionalProperties": false
              }
            },
            "levels": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "identity": {
                    "type": "string"
                  },
                  "label": {
                    "type": "string"
                  }
                },
                "required": [
                  "identity",
                  "label"
                ],
                "additionalProperties": false
              }
            },
            "portals": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "identity": {
                    "type": "string"
                  },
                  "alias": {
                    "type": "string",
                    "maxLength": 100
                  },
                  "from": {
                    "type": "string"
                  },
                  "to": {
                    "type": "string"
                  },
                  "frame": {
                    "type": "object",
                    "properties": {
                      "position": {
                        "type": "array",
                        "prefixItems": [
                          {
                            "type": "number"
                          },
                          {
                            "type": "number"
                          },
                          {
                            "type": "number"
                          }
                        ],
                        "minItems": 3,
                        "maxItems": 3,
                        "items": false
                      },
                      "quaternion": {
                        "type": "array",
                        "prefixItems": [
                          {
                            "type": "number"
                          },
                          {
                            "type": "number"
                          },
                          {
                            "type": "number"
                          },
                          {
                            "type": "number"
                          }
                        ],
                        "minItems": 4,
                        "maxItems": 4,
                        "items": false
                      }
                    },
                    "required": [
                      "position",
                      "quaternion"
                    ],
                    "additionalProperties": false
                  },
                  "width": {
                    "type": "number"
                  },
                  "height": {
                    "type": "number"
                  },
                  "traversable": {
                    "anyOf": [
                      {
                        "const": false,
                        "type": "boolean"
                      },
                      {
                        "const": true,
                        "type": "boolean"
                      }
                    ]
                  },
                  "door": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  }
                },
                "required": [
                  "identity",
                  "alias",
                  "from",
                  "to",
                  "frame",
                  "width",
                  "height",
                  "traversable",
                  "door"
                ],
                "additionalProperties": false
              }
            },
            "entrances": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "identity": {
                    "type": "string"
                  },
                  "alias": {
                    "type": "string",
                    "maxLength": 100
                  },
                  "room": {
                    "type": "string"
                  },
                  "frame": {
                    "type": "object",
                    "properties": {
                      "position": {
                        "type": "array",
                        "prefixItems": [
                          {
                            "type": "number"
                          },
                          {
                            "type": "number"
                          },
                          {
                            "type": "number"
                          }
                        ],
                        "minItems": 3,
                        "maxItems": 3,
                        "items": false
                      },
                      "quaternion": {
                        "type": "array",
                        "prefixItems": [
                          {
                            "type": "number"
                          },
                          {
                            "type": "number"
                          },
                          {
                            "type": "number"
                          },
                          {
                            "type": "number"
                          }
                        ],
                        "minItems": 4,
                        "maxItems": 4,
                        "items": false
                      }
                    },
                    "required": [
                      "position",
                      "quaternion"
                    ],
                    "additionalProperties": false
                  },
                  "width": {
                    "type": "number"
                  },
                  "height": {
                    "type": "number"
                  },
                  "traversable": {
                    "anyOf": [
                      {
                        "const": false,
                        "type": "boolean"
                      },
                      {
                        "const": true,
                        "type": "boolean"
                      }
                    ]
                  },
                  "door": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  }
                },
                "required": [
                  "identity",
                  "alias",
                  "room",
                  "frame",
                  "width",
                  "height",
                  "traversable",
                  "door"
                ],
                "additionalProperties": false
              }
            },
            "membership": {
              "type": "object",
              "properties": {},
              "required": [],
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          "required": [
            "version",
            "identity",
            "rooms",
            "levels",
            "portals",
            "membership"
          ],
          "additionalProperties": false
        },
        "worldFrames": {
          "type": "object",
          "properties": {},
          "required": [],
          "additionalProperties": {
            "type": "object",
            "properties": {
              "position": {
                "type": "array",
                "prefixItems": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ],
                "minItems": 3,
                "maxItems": 3,
                "items": false
              },
              "quaternion": {
                "type": "array",
                "prefixItems": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ],
                "minItems": 4,
                "maxItems": 4,
                "items": false
              }
            },
            "required": [
              "position",
              "quaternion"
            ],
            "additionalProperties": false
          }
        },
        "localPoses": {
          "type": "object",
          "properties": {},
          "required": [],
          "additionalProperties": {
            "type": "object",
            "properties": {
              "position": {
                "type": "array",
                "prefixItems": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ],
                "minItems": 3,
                "maxItems": 3,
                "items": false
              },
              "quaternion": {
                "type": "array",
                "prefixItems": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ],
                "minItems": 4,
                "maxItems": 4,
                "items": false
              },
              "scale": {
                "type": "array",
                "prefixItems": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ],
                "minItems": 3,
                "maxItems": 3,
                "items": false
              }
            },
            "required": [
              "position",
              "quaternion",
              "scale"
            ],
            "additionalProperties": false
          }
        },
        "programVerification": {
          "type": "object",
          "properties": {
            "policy": {
              "anyOf": [
                {
                  "const": "qway.room-program-geometry/1",
                  "type": "string"
                },
                {
                  "const": "qway.room-program-geometry/2",
                  "type": "string"
                },
                {
                  "const": "qway.room-program-geometry/3",
                  "type": "string"
                }
              ]
            },
            "actor": {
              "type": "object",
              "properties": {
                "radiusM": {
                  "type": "number"
                },
                "heightM": {
                  "type": "number"
                }
              },
              "required": [
                "radiusM",
                "heightM"
              ],
              "additionalProperties": false
            },
            "rooms": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "room": {
                    "type": "string"
                  },
                  "archetypeRevision": {
                    "type": "string"
                  },
                  "layout": {
                    "type": "object",
                    "properties": {
                      "policy": {
                        "const": "qway.room-program-layout/1",
                        "type": "string"
                      },
                      "strategy": {
                        "const": "bounded-geometric-search",
                        "type": "string"
                      },
                      "candidateBudget": {
                        "type": "number"
                      },
                      "candidatesTested": {
                        "type": "number"
                      },
                      "passesPerformed": {
                        "type": "number"
                      },
                      "initialRules": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "reference": {
                              "type": "string"
                            },
                            "status": {
                              "anyOf": [
                                {
                                  "const": "unsupported",
                                  "type": "string"
                                },
                                {
                                  "const": "satisfied",
                                  "type": "string"
                                },
                                {
                                  "const": "failed",
                                  "type": "string"
                                },
                                {
                                  "const": "unknown",
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "required": [
                            "reference",
                            "status"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "changedInstances": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "relaxedConstraints": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "termination": {
                        "anyOf": [
                          {
                            "const": "stationary",
                            "type": "string"
                          },
                          {
                            "const": "budget-exhausted",
                            "type": "string"
                          },
                          {
                            "const": "pass-limit",
                            "type": "string"
                          },
                          {
                            "const": "zero-score",
                            "type": "string"
                          }
                        ]
                      }
                    },
                    "required": [
                      "policy",
                      "strategy",
                      "candidateBudget",
                      "candidatesTested",
                      "passesPerformed",
                      "initialRules",
                      "changedInstances",
                      "relaxedConstraints",
                      "termination"
                    ],
                    "additionalProperties": false
                  },
                  "inventory": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "reference": {
                          "type": "string"
                        },
                        "priority": {
                          "anyOf": [
                            {
                              "const": "required",
                              "type": "string"
                            },
                            {
                              "const": "recommended",
                              "type": "string"
                            },
                            {
                              "const": "optional",
                              "type": "string"
                            }
                          ]
                        },
                        "requestedUnits": {
                          "type": "number"
                        },
                        "resolvedUnits": {
                          "type": "number"
                        },
                        "status": {
                          "anyOf": [
                            {
                              "const": "unsupported",
                              "type": "string"
                            },
                            {
                              "const": "satisfied",
                              "type": "string"
                            },
                            {
                              "const": "failed",
                              "type": "string"
                            },
                            {
                              "const": "unknown",
                              "type": "string"
                            }
                          ]
                        }
                      },
                      "required": [
                        "reference",
                        "priority",
                        "requestedUnits",
                        "resolvedUnits",
                        "status"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "rules": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "reference": {
                          "type": "string"
                        },
                        "kind": {
                          "anyOf": [
                            {
                              "const": "on",
                              "type": "string"
                            },
                            {
                              "const": "seating",
                              "type": "string"
                            },
                            {
                              "const": "beside",
                              "type": "string"
                            },
                            {
                              "const": "facing",
                              "type": "string"
                            },
                            {
                              "const": "near-window",
                              "type": "string"
                            },
                            {
                              "const": "wall-alignment",
                              "type": "string"
                            },
                            {
                              "const": "interior",
                              "type": "string"
                            },
                            {
                              "const": "access",
                              "type": "string"
                            },
                            {
                              "const": "visibility",
                              "type": "string"
                            },
                            {
                              "const": "clearance",
                              "type": "string"
                            },
                            {
                              "const": "circulation",
                              "type": "string"
                            },
                            {
                              "const": "minimum-dimensions",
                              "type": "string"
                            },
                            {
                              "const": "unsupported",
                              "type": "string"
                            }
                          ]
                        },
                        "priority": {
                          "anyOf": [
                            {
                              "const": "required",
                              "type": "string"
                            },
                            {
                              "const": "recommended",
                              "type": "string"
                            },
                            {
                              "const": "optional",
                              "type": "string"
                            }
                          ]
                        },
                        "strength": {
                          "anyOf": [
                            {
                              "const": "hard",
                              "type": "string"
                            },
                            {
                              "const": "soft",
                              "type": "string"
                            }
                          ]
                        },
                        "status": {
                          "anyOf": [
                            {
                              "const": "unsupported",
                              "type": "string"
                            },
                            {
                              "const": "satisfied",
                              "type": "string"
                            },
                            {
                              "const": "failed",
                              "type": "string"
                            },
                            {
                              "const": "unknown",
                              "type": "string"
                            }
                          ]
                        },
                        "message": {
                          "type": "string",
                          "maxLength": 2000
                        },
                        "pairs": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "subject": {
                                "type": "string"
                              },
                              "target": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "status": {
                                "anyOf": [
                                  {
                                    "const": "unsupported",
                                    "type": "string"
                                  },
                                  {
                                    "const": "satisfied",
                                    "type": "string"
                                  },
                                  {
                                    "const": "failed",
                                    "type": "string"
                                  },
                                  {
                                    "const": "unknown",
                                    "type": "string"
                                  }
                                ]
                              },
                              "message": {
                                "type": "string",
                                "maxLength": 2000
                              },
                              "residuals": {
                                "type": "object",
                                "properties": {},
                                "required": [],
                                "additionalProperties": {
                                  "type": "number"
                                }
                              }
                            },
                            "required": [
                              "subject",
                              "target",
                              "status",
                              "message",
                              "residuals"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "reference",
                        "kind",
                        "priority",
                        "strength",
                        "status",
                        "message",
                        "pairs"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "architecture": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "reference": {
                          "type": "string"
                        },
                        "kind": {
                          "anyOf": [
                            {
                              "const": "window",
                              "type": "string"
                            },
                            {
                              "const": "portal",
                              "type": "string"
                            },
                            {
                              "const": "wall-run",
                              "type": "string"
                            },
                            {
                              "const": "open-center",
                              "type": "string"
                            },
                            {
                              "const": "natural-light",
                              "type": "string"
                            },
                            {
                              "const": "ceiling-light",
                              "type": "string"
                            }
                          ]
                        },
                        "priority": {
                          "anyOf": [
                            {
                              "const": "required",
                              "type": "string"
                            },
                            {
                              "const": "recommended",
                              "type": "string"
                            },
                            {
                              "const": "optional",
                              "type": "string"
                            }
                          ]
                        },
                        "requested": {
                          "type": "number"
                        },
                        "verified": {
                          "type": "number"
                        },
                        "status": {
                          "anyOf": [
                            {
                              "const": "unsupported",
                              "type": "string"
                            },
                            {
                              "const": "satisfied",
                              "type": "string"
                            },
                            {
                              "const": "failed",
                              "type": "string"
                            },
                            {
                              "const": "unknown",
                              "type": "string"
                            }
                          ]
                        },
                        "message": {
                          "type": "string",
                          "maxLength": 2000
                        }
                      },
                      "required": [
                        "reference",
                        "kind",
                        "priority",
                        "requested",
                        "verified",
                        "status",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "room",
                  "archetypeRevision",
                  "inventory",
                  "rules",
                  "architecture"
                ],
                "additionalProperties": false
              }
            }
          },
          "required": [
            "policy",
            "actor",
            "rooms"
          ],
          "additionalProperties": false
        },
        "verification": {
          "type": "object",
          "properties": {
            "policy": {
              "const": "wright.portal-geometry/1",
              "type": "string"
            },
            "actor": {
              "type": "object",
              "properties": {
                "radius": {
                  "type": "number"
                },
                "height": {
                  "type": "number"
                }
              },
              "required": [
                "radius",
                "height"
              ],
              "additionalProperties": false
            },
            "portals": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "identity": {
                    "type": "string"
                  },
                  "requestedAperture": {
                    "anyOf": [
                      {
                        "const": "unknown",
                        "type": "string"
                      },
                      {
                        "const": "clear",
                        "type": "string"
                      },
                      {
                        "const": "collision",
                        "type": "string"
                      }
                    ]
                  },
                  "actorPassage": {
                    "anyOf": [
                      {
                        "const": "unknown",
                        "type": "string"
                      },
                      {
                        "const": "clear",
                        "type": "string"
                      },
                      {
                        "const": "collision",
                        "type": "string"
                      }
                    ]
                  }
                },
                "required": [
                  "identity",
                  "requestedAperture",
                  "actorPassage"
                ],
                "additionalProperties": false
              }
            },
            "entrances": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "identity": {
                    "type": "string"
                  },
                  "requestedAperture": {
                    "anyOf": [
                      {
                        "const": "unknown",
                        "type": "string"
                      },
                      {
                        "const": "clear",
                        "type": "string"
                      },
                      {
                        "const": "collision",
                        "type": "string"
                      }
                    ]
                  },
                  "actorPassage": {
                    "anyOf": [
                      {
                        "const": "unknown",
                        "type": "string"
                      },
                      {
                        "const": "clear",
                        "type": "string"
                      },
                      {
                        "const": "collision",
                        "type": "string"
                      }
                    ]
                  }
                },
                "required": [
                  "identity",
                  "requestedAperture",
                  "actorPassage"
                ],
                "additionalProperties": false
              }
            },
            "circulation": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "room": {
                    "type": "string"
                  },
                  "status": {
                    "anyOf": [
                      {
                        "const": "unsupported",
                        "type": "string"
                      },
                      {
                        "const": "ready",
                        "type": "string"
                      },
                      {
                        "const": "unresolved",
                        "type": "string"
                      },
                      {
                        "const": "not-requested",
                        "type": "string"
                      }
                    ]
                  },
                  "entryCount": {
                    "type": "number"
                  },
                  "reachableSamples": {
                    "type": "number"
                  },
                  "routeOutcomes": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                },
                "required": [
                  "room",
                  "status",
                  "entryCount",
                  "reachableSamples",
                  "routeOutcomes"
                ],
                "additionalProperties": false
              }
            },
            "navigationBoxes": {
              "type": "object",
              "properties": {},
              "required": [],
              "additionalProperties": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "min": {
                      "type": "array",
                      "prefixItems": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "number"
                        }
                      ],
                      "minItems": 3,
                      "maxItems": 3,
                      "items": false
                    },
                    "max": {
                      "type": "array",
                      "prefixItems": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "number"
                        }
                      ],
                      "minItems": 3,
                      "maxItems": 3,
                      "items": false
                    }
                  },
                  "required": [
                    "min",
                    "max"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "required": [
            "policy",
            "actor",
            "portals",
            "circulation",
            "navigationBoxes"
          ],
          "additionalProperties": false
        },
        "diagnostics": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string"
              },
              "severity": {
                "anyOf": [
                  {
                    "const": "error",
                    "type": "string"
                  },
                  {
                    "const": "warning",
                    "type": "string"
                  }
                ]
              },
              "identity": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "message": {
                "type": "string"
              }
            },
            "required": [
              "code",
              "severity",
              "identity",
              "message"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "version",
        "topology",
        "worldFrames",
        "localPoses",
        "diagnostics"
      ],
      "additionalProperties": false
    },
    "schema": {
      "const": "quay.scene",
      "type": "string"
    },
    "schemaVersion": {
      "const": "2.0.0-draft.1",
      "type": "string"
    },
    "semantic": {
      "type": "object",
      "properties": {
        "materials": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "version": {
                "const": "quay.material/1",
                "type": "string"
              },
              "identity": {
                "type": "string"
              },
              "alias": {
                "type": "string"
              },
              "label": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "category": {
                "anyOf": [
                  {
                    "const": "generic",
                    "type": "string"
                  },
                  {
                    "const": "wood",
                    "type": "string"
                  },
                  {
                    "const": "metal",
                    "type": "string"
                  },
                  {
                    "const": "stone",
                    "type": "string"
                  },
                  {
                    "const": "concrete",
                    "type": "string"
                  },
                  {
                    "const": "ceramic",
                    "type": "string"
                  },
                  {
                    "const": "fabric",
                    "type": "string"
                  },
                  {
                    "const": "glass",
                    "type": "string"
                  },
                  {
                    "const": "paper",
                    "type": "string"
                  },
                  {
                    "const": "plastic",
                    "type": "string"
                  },
                  {
                    "const": "paint",
                    "type": "string"
                  }
                ]
              },
              "shader": {
                "anyOf": [
                  {
                    "const": "unlit",
                    "type": "string"
                  },
                  {
                    "const": "standard",
                    "type": "string"
                  }
                ]
              },
              "color": {
                "type": "string"
              },
              "roughness": {
                "type": "number"
              },
              "metalness": {
                "type": "number"
              },
              "emissive": {
                "type": "string"
              },
              "emissiveIntensity": {
                "type": "number"
              },
              "opacity": {
                "type": "number"
              },
              "alphaMode": {
                "anyOf": [
                  {
                    "const": "opaque",
                    "type": "string"
                  },
                  {
                    "const": "mask",
                    "type": "string"
                  },
                  {
                    "const": "blend",
                    "type": "string"
                  }
                ]
              },
              "alphaCutoff": {
                "type": "number"
              },
              "side": {
                "anyOf": [
                  {
                    "const": "front",
                    "type": "string"
                  },
                  {
                    "const": "back",
                    "type": "string"
                  },
                  {
                    "const": "double",
                    "type": "string"
                  }
                ]
              },
              "preset": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "maps": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "slot": {
                      "anyOf": [
                        {
                          "const": "color",
                          "type": "string"
                        },
                        {
                          "const": "normal",
                          "type": "string"
                        },
                        {
                          "const": "roughness",
                          "type": "string"
                        },
                        {
                          "const": "metalness",
                          "type": "string"
                        },
                        {
                          "const": "emissive",
                          "type": "string"
                        },
                        {
                          "const": "occlusion",
                          "type": "string"
                        },
                        {
                          "const": "alpha",
                          "type": "string"
                        }
                      ]
                    },
                    "image": {
                      "type": "object",
                      "properties": {
                        "assetId": {
                          "type": "string"
                        },
                        "uri": {
                          "type": "string"
                        },
                        "sha256": {
                          "type": "string"
                        },
                        "byteLength": {
                          "type": "number"
                        },
                        "mediaType": {
                          "anyOf": [
                            {
                              "const": "image/png",
                              "type": "string"
                            },
                            {
                              "const": "image/jpeg",
                              "type": "string"
                            },
                            {
                              "const": "image/webp",
                              "type": "string"
                            }
                          ]
                        },
                        "displayName": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "assetId",
                        "uri",
                        "sha256",
                        "byteLength",
                        "mediaType",
                        "displayName"
                      ],
                      "additionalProperties": false
                    },
                    "repeat": {
                      "type": "array",
                      "prefixItems": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "number"
                        }
                      ],
                      "minItems": 2,
                      "maxItems": 2,
                      "items": false
                    },
                    "offset": {
                      "type": "array",
                      "prefixItems": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "number"
                        }
                      ],
                      "minItems": 2,
                      "maxItems": 2,
                      "items": false
                    },
                    "rotation": {
                      "type": "number"
                    },
                    "wrap": {
                      "anyOf": [
                        {
                          "const": "repeat",
                          "type": "string"
                        },
                        {
                          "const": "clamp",
                          "type": "string"
                        },
                        {
                          "const": "mirror",
                          "type": "string"
                        }
                      ]
                    }
                  },
                  "required": [
                    "slot",
                    "image",
                    "repeat",
                    "offset",
                    "rotation",
                    "wrap"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "required": [
              "version",
              "identity",
              "alias",
              "label",
              "description",
              "category",
              "shader",
              "color",
              "roughness",
              "metalness",
              "emissive",
              "emissiveIntensity",
              "opacity",
              "alphaMode",
              "alphaCutoff",
              "side",
              "preset",
              "maps"
            ],
            "additionalProperties": false
          }
        },
        "assetPolicy": {
          "const": "project-user-standard",
          "type": "string"
        },
        "composition": {
          "const": "quay.room-composition/1",
          "type": "string"
        },
        "version": {
          "const": "quay.semantic/1",
          "type": "string"
        },
        "sceneId": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "seed": {
          "type": "number"
        },
        "room": {
          "type": "object",
          "properties": {
            "identity": {
              "anyOf": [
                {
                  "type": "null"
                },
                {
                  "type": "string"
                }
              ]
            },
            "size": {
              "type": "array",
              "prefixItems": [
                {
                  "type": "number"
                },
                {
                  "type": "number"
                },
                {
                  "type": "number"
                }
              ],
              "minItems": 3,
              "maxItems": 3,
              "items": false
            }
          },
          "required": [
            "identity",
            "size"
          ],
          "additionalProperties": false
        },
        "profile": {
          "anyOf": [
            {
              "const": "static",
              "type": "string"
            },
            {
              "const": "physical",
              "type": "string"
            }
          ]
        },
        "objects": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "materialId": {
                "type": "string"
              },
              "region": {
                "anyOf": [
                  {
                    "const": "center",
                    "type": "string"
                  },
                  {
                    "const": "perimeter",
                    "type": "string"
                  }
                ]
              },
              "actor": {
                "type": "object",
                "properties": {
                  "policy": {
                    "const": "quay.actor-box/1",
                    "type": "string"
                  },
                  "size": {
                    "type": "array",
                    "prefixItems": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      }
                    ],
                    "minItems": 3,
                    "maxItems": 3,
                    "items": false
                  },
                  "eye": {
                    "type": "array",
                    "prefixItems": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      }
                    ],
                    "minItems": 3,
                    "maxItems": 3,
                    "items": false
                  },
                  "manipulationOrigin": {
                    "type": "array",
                    "prefixItems": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      }
                    ],
                    "minItems": 3,
                    "maxItems": 3,
                    "items": false
                  },
                  "reachM": {
                    "type": "number"
                  }
                },
                "required": [
                  "policy",
                  "size",
                  "eye",
                  "manipulationOrigin",
                  "reachM"
                ],
                "additionalProperties": false
              },
              "animation": {
                "type": "object",
                "properties": {
                  "policy": {
                    "const": "quay.animation/1",
                    "type": "string"
                  },
                  "clipIndex": {
                    "type": "number"
                  },
                  "clipName": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "mode": {
                    "anyOf": [
                      {
                        "const": "in-place",
                        "type": "string"
                      },
                      {
                        "const": "articulated",
                        "type": "string"
                      }
                    ]
                  },
                  "speed": {
                    "type": "number"
                  },
                  "loop": {
                    "anyOf": [
                      {
                        "const": false,
                        "type": "boolean"
                      },
                      {
                        "const": true,
                        "type": "boolean"
                      }
                    ]
                  },
                  "offsetSeconds": {
                    "type": "number"
                  }
                },
                "required": [
                  "policy",
                  "clipIndex",
                  "clipName",
                  "mode",
                  "speed",
                  "loop",
                  "offsetSeconds"
                ],
                "additionalProperties": false
              },
              "normalization": {
                "type": "object",
                "properties": {
                  "rawBounds": {
                    "type": "object",
                    "properties": {
                      "min": {
                        "type": "array",
                        "prefixItems": [
                          {
                            "type": "number"
                          },
                          {
                            "type": "number"
                          },
                          {
                            "type": "number"
                          }
                        ],
                        "minItems": 3,
                        "maxItems": 3,
                        "items": false
                      },
                      "max": {
                        "type": "array",
                        "prefixItems": [
                          {
                            "type": "number"
                          },
                          {
                            "type": "number"
                          },
                          {
                            "type": "number"
                          }
                        ],
                        "minItems": 3,
                        "maxItems": 3,
                        "items": false
                      }
                    },
                    "required": [
                      "min",
                      "max"
                    ],
                    "additionalProperties": false
                  },
                  "scale": {
                    "type": "array",
                    "prefixItems": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      }
                    ],
                    "minItems": 3,
                    "maxItems": 3,
                    "items": false
                  },
                  "baseOffset": {
                    "type": "array",
                    "prefixItems": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      }
                    ],
                    "minItems": 3,
                    "maxItems": 3,
                    "items": false
                  },
                  "forwardCorrection": {
                    "type": "array",
                    "prefixItems": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      }
                    ],
                    "minItems": 4,
                    "maxItems": 4,
                    "items": false
                  }
                },
                "required": [
                  "rawBounds",
                  "scale",
                  "baseOffset",
                  "forwardCorrection"
                ],
                "additionalProperties": false
              },
              "orientation": {
                "type": "object",
                "properties": {
                  "policy": {
                    "anyOf": [
                      {
                        "const": "quay.orientation/1",
                        "type": "string"
                      },
                      {
                        "const": "quay.orientation/2",
                        "type": "string"
                      }
                    ]
                  },
                  "quaternion": {
                    "type": "array",
                    "prefixItems": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      }
                    ],
                    "minItems": 4,
                    "maxItems": 4,
                    "items": false
                  },
                  "up": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "front": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "confidence": {
                    "type": "number"
                  },
                  "evidence": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                },
                "required": [
                  "policy",
                  "quaternion",
                  "up",
                  "front",
                  "confidence",
                  "evidence"
                ],
                "additionalProperties": false
              },
              "identity": {
                "type": "string"
              },
              "alias": {
                "type": "string"
              },
              "label": {
                "type": "string"
              },
              "notes": {
                "type": "string",
                "maxLength": 2000
              },
              "assetId": {
                "type": "string"
              },
              "manifestId": {
                "type": "string"
              },
              "role": {
                "type": "string"
              },
              "visible": {
                "anyOf": [
                  {
                    "const": false,
                    "type": "boolean"
                  },
                  {
                    "const": true,
                    "type": "boolean"
                  }
                ]
              },
              "pose": {
                "type": "object",
                "properties": {
                  "position": {
                    "type": "array",
                    "prefixItems": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      }
                    ],
                    "minItems": 3,
                    "maxItems": 3,
                    "items": false
                  },
                  "quaternion": {
                    "type": "array",
                    "prefixItems": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      }
                    ],
                    "minItems": 4,
                    "maxItems": 4,
                    "items": false
                  },
                  "scale": {
                    "type": "array",
                    "prefixItems": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      }
                    ],
                    "minItems": 3,
                    "maxItems": 3,
                    "items": false
                  }
                },
                "required": [],
                "additionalProperties": false
              },
              "size": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "array",
                    "prefixItems": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      }
                    ],
                    "minItems": 3,
                    "maxItems": 3,
                    "items": false
                  }
                ]
              },
              "sizing": {
                "type": "object",
                "properties": {
                  "measurement": {
                    "type": "object",
                    "properties": {
                      "reference": {
                        "anyOf": [
                          {
                            "const": "whole-bounds",
                            "type": "string"
                          },
                          {
                            "const": "withers",
                            "type": "string"
                          }
                        ]
                      },
                      "targetM": {
                        "type": "number"
                      },
                      "sourceReferenceM": {
                        "type": "number"
                      },
                      "method": {
                        "anyOf": [
                          {
                            "const": "measured-bounds",
                            "type": "string"
                          },
                          {
                            "const": "rig-shoulder-envelope-approximation/1",
                            "type": "string"
                          }
                        ]
                      },
                      "confidence": {
                        "type": "number"
                      },
                      "evidence": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    },
                    "required": [
                      "reference",
                      "targetM",
                      "sourceReferenceM",
                      "method",
                      "confidence",
                      "evidence"
                    ],
                    "additionalProperties": false
                  },
                  "policy": {
                    "const": "quay.sizing/1",
                    "type": "string"
                  },
                  "measuredDimensions": {
                    "type": "array",
                    "prefixItems": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      }
                    ],
                    "minItems": 3,
                    "maxItems": 3,
                    "items": false
                  },
                  "orientedDimensions": {
                    "type": "array",
                    "prefixItems": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      }
                    ],
                    "minItems": 3,
                    "maxItems": 3,
                    "items": false
                  },
                  "chosenDimensions": {
                    "type": "array",
                    "prefixItems": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      }
                    ],
                    "minItems": 3,
                    "maxItems": 3,
                    "items": false
                  },
                  "finalSceneDimensions": {
                    "type": "array",
                    "prefixItems": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      }
                    ],
                    "minItems": 3,
                    "maxItems": 3,
                    "items": false
                  },
                  "uniformScale": {
                    "type": "number"
                  },
                  "profile": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "object",
                        "properties": {
                          "schema": {
                            "const": "quay.archetype",
                            "type": "string"
                          },
                          "schemaVersion": {
                            "const": "1.0.0",
                            "type": "string"
                          },
                          "profileId": {
                            "type": "string"
                          },
                          "revision": {
                            "type": "number"
                          },
                          "parentId": {
                            "anyOf": [
                              {
                                "type": "null"
                              },
                              {
                                "type": "string"
                              }
                            ]
                          },
                          "semanticClass": {
                            "type": "string"
                          },
                          "status": {
                            "anyOf": [
                              {
                                "const": "accepted",
                                "type": "string"
                              },
                              {
                                "const": "suggested",
                                "type": "string"
                              },
                              {
                                "const": "rejected",
                                "type": "string"
                              },
                              {
                                "const": "user-corrected",
                                "type": "string"
                              }
                            ]
                          },
                          "dimensions": {
                            "type": "object",
                            "properties": {
                              "width": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "minM": {
                                        "type": "number"
                                      },
                                      "typicalM": {
                                        "type": "number"
                                      },
                                      "maxM": {
                                        "type": "number"
                                      },
                                      "reference": {
                                        "anyOf": [
                                          {
                                            "const": "whole-bounds",
                                            "type": "string"
                                          },
                                          {
                                            "const": "withers",
                                            "type": "string"
                                          },
                                          {
                                            "const": "seat",
                                            "type": "string"
                                          },
                                          {
                                            "const": "worktop",
                                            "type": "string"
                                          },
                                          {
                                            "const": "opening",
                                            "type": "string"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "minM",
                                      "typicalM",
                                      "maxM",
                                      "reference"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "height": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "minM": {
                                        "type": "number"
                                      },
                                      "typicalM": {
                                        "type": "number"
                                      },
                                      "maxM": {
                                        "type": "number"
                                      },
                                      "reference": {
                                        "anyOf": [
                                          {
                                            "const": "whole-bounds",
                                            "type": "string"
                                          },
                                          {
                                            "const": "withers",
                                            "type": "string"
                                          },
                                          {
                                            "const": "seat",
                                            "type": "string"
                                          },
                                          {
                                            "const": "worktop",
                                            "type": "string"
                                          },
                                          {
                                            "const": "opening",
                                            "type": "string"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "minM",
                                      "typicalM",
                                      "maxM",
                                      "reference"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "depth": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "minM": {
                                        "type": "number"
                                      },
                                      "typicalM": {
                                        "type": "number"
                                      },
                                      "maxM": {
                                        "type": "number"
                                      },
                                      "reference": {
                                        "anyOf": [
                                          {
                                            "const": "whole-bounds",
                                            "type": "string"
                                          },
                                          {
                                            "const": "withers",
                                            "type": "string"
                                          },
                                          {
                                            "const": "seat",
                                            "type": "string"
                                          },
                                          {
                                            "const": "worktop",
                                            "type": "string"
                                          },
                                          {
                                            "const": "opening",
                                            "type": "string"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "minM",
                                      "typicalM",
                                      "maxM",
                                      "reference"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              }
                            },
                            "required": [
                              "width",
                              "height",
                              "depth"
                            ],
                            "additionalProperties": false
                          },
                          "preferredDimension": {
                            "anyOf": [
                              {
                                "type": "null"
                              },
                              {
                                "const": "width",
                                "type": "string"
                              },
                              {
                                "const": "height",
                                "type": "string"
                              },
                              {
                                "const": "depth",
                                "type": "string"
                              }
                            ]
                          },
                          "grounding": {
                            "anyOf": [
                              {
                                "const": "architectural",
                                "type": "string"
                              },
                              {
                                "const": "unknown",
                                "type": "string"
                              },
                              {
                                "const": "floor",
                                "type": "string"
                              },
                              {
                                "const": "support",
                                "type": "string"
                              }
                            ]
                          },
                          "orientation": {
                            "type": "object",
                            "properties": {
                              "up": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "const": "+Y",
                                    "type": "string"
                                  },
                                  {
                                    "const": "+Z",
                                    "type": "string"
                                  },
                                  {
                                    "const": "+X",
                                    "type": "string"
                                  },
                                  {
                                    "const": "-Y",
                                    "type": "string"
                                  },
                                  {
                                    "const": "-Z",
                                    "type": "string"
                                  },
                                  {
                                    "const": "-X",
                                    "type": "string"
                                  }
                                ]
                              },
                              "forward": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "const": "+Z",
                                    "type": "string"
                                  },
                                  {
                                    "const": "+X",
                                    "type": "string"
                                  },
                                  {
                                    "const": "-Z",
                                    "type": "string"
                                  },
                                  {
                                    "const": "-X",
                                    "type": "string"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "up",
                              "forward"
                            ],
                            "additionalProperties": false
                          },
                          "affordances": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "clearances": {
                            "type": "object",
                            "properties": {
                              "usableSideM": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "number"
                                  }
                                ]
                              },
                              "circulationM": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "number"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "usableSideM",
                              "circulationM"
                            ],
                            "additionalProperties": false
                          },
                          "relationHints": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "provenance": {
                            "type": "object",
                            "properties": {
                              "source": {
                                "anyOf": [
                                  {
                                    "const": "standard",
                                    "type": "string"
                                  },
                                  {
                                    "const": "curated",
                                    "type": "string"
                                  },
                                  {
                                    "const": "ai_inferred",
                                    "type": "string"
                                  },
                                  {
                                    "const": "user_confirmed",
                                    "type": "string"
                                  },
                                  {
                                    "const": "project_specific",
                                    "type": "string"
                                  }
                                ]
                              },
                              "producer": {
                                "type": "string"
                              },
                              "model": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "inferenceVersion": {
                                "type": "string"
                              },
                              "requestedClass": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "confidence": {
                                "type": "number"
                              },
                              "createdAt": {
                                "type": "string"
                              },
                              "evidence": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            },
                            "required": [
                              "source",
                              "producer",
                              "model",
                              "inferenceVersion",
                              "requestedClass",
                              "confidence",
                              "createdAt",
                              "evidence"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "schema",
                          "schemaVersion",
                          "profileId",
                          "revision",
                          "parentId",
                          "semanticClass",
                          "status",
                          "dimensions",
                          "preferredDimension",
                          "grounding",
                          "orientation",
                          "affordances",
                          "clearances",
                          "relationHints",
                          "provenance"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  },
                  "source": {
                    "anyOf": [
                      {
                        "const": "archetype",
                        "type": "string"
                      },
                      {
                        "const": "instance",
                        "type": "string"
                      },
                      {
                        "const": "conservative-fallback",
                        "type": "string"
                      }
                    ]
                  },
                  "plausibility": {
                    "anyOf": [
                      {
                        "const": "unknown",
                        "type": "string"
                      },
                      {
                        "const": "plausible",
                        "type": "string"
                      },
                      {
                        "const": "implausible",
                        "type": "string"
                      }
                    ]
                  },
                  "diagnostics": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                },
                "required": [
                  "policy",
                  "measuredDimensions",
                  "orientedDimensions",
                  "chosenDimensions",
                  "uniformScale",
                  "profile",
                  "source",
                  "plausibility",
                  "diagnostics"
                ],
                "additionalProperties": false
              },
              "architecture": {
                "type": "object",
                "properties": {
                  "boundary": {
                    "anyOf": [
                      {
                        "const": "front",
                        "type": "string"
                      },
                      {
                        "const": "back",
                        "type": "string"
                      },
                      {
                        "const": "left",
                        "type": "string"
                      },
                      {
                        "const": "right",
                        "type": "string"
                      }
                    ]
                  },
                  "section": {
                    "anyOf": [
                      {
                        "const": "full",
                        "type": "string"
                      },
                      {
                        "const": "opening-left",
                        "type": "string"
                      },
                      {
                        "const": "opening-right",
                        "type": "string"
                      },
                      {
                        "const": "opening-header",
                        "type": "string"
                      },
                      {
                        "const": "opening-sill",
                        "type": "string"
                      }
                    ]
                  },
                  "opening": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  }
                },
                "required": [
                  "boundary",
                  "section",
                  "opening"
                ],
                "additionalProperties": false
              },
              "physics": {
                "type": "object",
                "properties": {
                  "motion": {
                    "anyOf": [
                      {
                        "const": "static",
                        "type": "string"
                      },
                      {
                        "const": "dynamic",
                        "type": "string"
                      },
                      {
                        "const": "kinematic",
                        "type": "string"
                      }
                    ]
                  },
                  "collision": {
                    "anyOf": [
                      {
                        "const": "none",
                        "type": "string"
                      },
                      {
                        "const": "solid",
                        "type": "string"
                      },
                      {
                        "const": "sensor",
                        "type": "string"
                      }
                    ]
                  },
                  "controller": {
                    "anyOf": [
                      {
                        "const": "none",
                        "type": "string"
                      },
                      {
                        "const": "character",
                        "type": "string"
                      }
                    ]
                  },
                  "collider": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "object",
                        "properties": {
                          "identity": {
                            "type": "string"
                          },
                          "manifestId": {
                            "anyOf": [
                              {
                                "type": "null"
                              },
                              {
                                "type": "string"
                              }
                            ]
                          },
                          "featureId": {
                            "anyOf": [
                              {
                                "type": "null"
                              },
                              {
                                "type": "string"
                              }
                            ]
                          },
                          "kind": {
                            "anyOf": [
                              {
                                "const": "object",
                                "type": "string"
                              },
                              {
                                "const": "surface",
                                "type": "string"
                              },
                              {
                                "const": "component",
                                "type": "string"
                              },
                              {
                                "const": "collider",
                                "type": "string"
                              }
                            ]
                          }
                        },
                        "required": [
                          "identity",
                          "manifestId",
                          "featureId",
                          "kind"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  },
                  "shape": {
                    "anyOf": [
                      {
                        "const": "auto",
                        "type": "string"
                      },
                      {
                        "const": "box",
                        "type": "string"
                      },
                      {
                        "const": "convex-hull",
                        "type": "string"
                      },
                      {
                        "const": "decomposition",
                        "type": "string"
                      },
                      {
                        "const": "triangle-mesh",
                        "type": "string"
                      }
                    ]
                  },
                  "massKg": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "number"
                      }
                    ]
                  },
                  "friction": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "number"
                      }
                    ]
                  },
                  "restitution": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "number"
                      }
                    ]
                  },
                  "provenance": {
                    "type": "object",
                    "properties": {},
                    "required": [],
                    "additionalProperties": {
                      "anyOf": [
                        {
                          "const": "instance",
                          "type": "string"
                        },
                        {
                          "const": "asset-override",
                          "type": "string"
                        },
                        {
                          "const": "profile",
                          "type": "string"
                        },
                        {
                          "const": "inference",
                          "type": "string"
                        },
                        {
                          "const": "fallback",
                          "type": "string"
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "motion",
                  "collision",
                  "controller",
                  "collider",
                  "massKg",
                  "friction",
                  "restitution",
                  "provenance"
                ],
                "additionalProperties": false
              },
              "interaction": {
                "type": "object",
                "properties": {
                  "capabilities": {
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "const": "grab",
                          "type": "string"
                        },
                        {
                          "const": "open",
                          "type": "string"
                        },
                        {
                          "const": "close",
                          "type": "string"
                        },
                        {
                          "const": "toggle",
                          "type": "string"
                        },
                        {
                          "const": "walk",
                          "type": "string"
                        },
                        {
                          "const": "animate",
                          "type": "string"
                        }
                      ]
                    }
                  },
                  "enabled": {
                    "anyOf": [
                      {
                        "const": false,
                        "type": "boolean"
                      },
                      {
                        "const": true,
                        "type": "boolean"
                      }
                    ]
                  },
                  "cooldownSeconds": {
                    "type": "number"
                  }
                },
                "required": [
                  "capabilities",
                  "enabled",
                  "cooldownSeconds"
                ],
                "additionalProperties": false
              },
              "span": {
                "type": "object",
                "properties": {
                  "start": {
                    "type": "number"
                  },
                  "end": {
                    "type": "number"
                  },
                  "line": {
                    "type": "number"
                  },
                  "column": {
                    "type": "number"
                  }
                },
                "required": [
                  "start",
                  "end",
                  "line",
                  "column"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "identity",
              "alias",
              "label",
              "assetId",
              "manifestId",
              "role",
              "visible",
              "pose",
              "size",
              "physics",
              "interaction",
              "span"
            ],
            "additionalProperties": false
          }
        },
        "wallImages": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "materialId": {
                "type": "string"
              },
              "identity": {
                "type": "string"
              },
              "alias": {
                "type": "string"
              },
              "label": {
                "type": "string"
              },
              "assetId": {
                "type": "string"
              },
              "wallInstanceId": {
                "type": "string"
              },
              "uri": {
                "type": "string"
              },
              "sha256": {
                "type": "string"
              },
              "byteLength": {
                "type": "number"
              },
              "mediaType": {
                "anyOf": [
                  {
                    "const": "image/png",
                    "type": "string"
                  },
                  {
                    "const": "image/jpeg",
                    "type": "string"
                  },
                  {
                    "const": "image/webp",
                    "type": "string"
                  }
                ]
              },
              "displayName": {
                "type": "string"
              },
              "position": {
                "type": "array",
                "prefixItems": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ],
                "minItems": 2,
                "maxItems": 2,
                "items": false
              },
              "size": {
                "type": "array",
                "prefixItems": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ],
                "minItems": 2,
                "maxItems": 2,
                "items": false
              },
              "surfaceOffset": {
                "type": "number"
              },
              "preserveAspectRatio": {
                "anyOf": [
                  {
                    "const": false,
                    "type": "boolean"
                  },
                  {
                    "const": true,
                    "type": "boolean"
                  }
                ]
              },
              "span": {
                "type": "object",
                "properties": {
                  "start": {
                    "type": "number"
                  },
                  "end": {
                    "type": "number"
                  },
                  "line": {
                    "type": "number"
                  },
                  "column": {
                    "type": "number"
                  }
                },
                "required": [
                  "start",
                  "end",
                  "line",
                  "column"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "identity",
              "alias",
              "label",
              "assetId",
              "wallInstanceId",
              "uri",
              "sha256",
              "byteLength",
              "mediaType",
              "displayName",
              "position",
              "size",
              "surfaceOffset",
              "preserveAspectRatio",
              "span"
            ],
            "additionalProperties": false
          }
        },
        "interactiveLabels": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "identity": {
                "type": "string"
              },
              "alias": {
                "type": "string"
              },
              "parentObjectId": {
                "type": "string"
              },
              "text": {
                "type": "string",
                "maxLength": 200
              },
              "icon": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "anchor": {
                "anyOf": [
                  {
                    "const": "center",
                    "type": "string"
                  },
                  {
                    "const": "front",
                    "type": "string"
                  },
                  {
                    "const": "left",
                    "type": "string"
                  },
                  {
                    "const": "right",
                    "type": "string"
                  },
                  {
                    "const": "above",
                    "type": "string"
                  },
                  {
                    "const": "custom",
                    "type": "string"
                  }
                ]
              },
              "offset": {
                "type": "array",
                "prefixItems": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ],
                "minItems": 3,
                "maxItems": 3,
                "items": false
              },
              "maxDistance": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              "billboard": {
                "anyOf": [
                  {
                    "const": false,
                    "type": "boolean"
                  },
                  {
                    "const": true,
                    "type": "boolean"
                  }
                ]
              },
              "theme": {
                "anyOf": [
                  {
                    "const": "default",
                    "type": "string"
                  },
                  {
                    "const": "cool",
                    "type": "string"
                  },
                  {
                    "const": "warm",
                    "type": "string"
                  }
                ]
              },
              "action": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "const": "none",
                        "type": "string"
                      }
                    },
                    "required": [
                      "kind"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "anyOf": [
                          {
                            "const": "pdf",
                            "type": "string"
                          },
                          {
                            "const": "html",
                            "type": "string"
                          },
                          {
                            "const": "audio",
                            "type": "string"
                          },
                          {
                            "const": "video",
                            "type": "string"
                          }
                        ]
                      },
                      "assetId": {
                        "type": "string"
                      },
                      "uri": {
                        "type": "string"
                      },
                      "sha256": {
                        "type": "string"
                      },
                      "byteLength": {
                        "type": "number"
                      },
                      "mediaType": {
                        "type": "string"
                      },
                      "displayName": {
                        "type": "string"
                      },
                      "title": {
                        "anyOf": [
                          {
                            "type": "null"
                          },
                          {
                            "type": "string"
                          }
                        ]
                      },
                      "posterUri": {
                        "anyOf": [
                          {
                            "type": "null"
                          },
                          {
                            "type": "string"
                          }
                        ]
                      },
                      "captionsUri": {
                        "anyOf": [
                          {
                            "type": "null"
                          },
                          {
                            "type": "string"
                          }
                        ]
                      },
                      "autoplay": {
                        "anyOf": [
                          {
                            "const": false,
                            "type": "boolean"
                          },
                          {
                            "const": true,
                            "type": "boolean"
                          }
                        ]
                      },
                      "loop": {
                        "anyOf": [
                          {
                            "const": false,
                            "type": "boolean"
                          },
                          {
                            "const": true,
                            "type": "boolean"
                          }
                        ]
                      },
                      "muted": {
                        "anyOf": [
                          {
                            "const": false,
                            "type": "boolean"
                          },
                          {
                            "const": true,
                            "type": "boolean"
                          }
                        ]
                      },
                      "volume": {
                        "type": "number"
                      },
                      "restartOnOpen": {
                        "anyOf": [
                          {
                            "const": false,
                            "type": "boolean"
                          },
                          {
                            "const": true,
                            "type": "boolean"
                          }
                        ]
                      },
                      "startSeconds": {
                        "type": "number"
                      },
                      "endSeconds": {
                        "anyOf": [
                          {
                            "type": "null"
                          },
                          {
                            "type": "number"
                          }
                        ]
                      }
                    },
                    "required": [
                      "kind",
                      "assetId",
                      "uri",
                      "sha256",
                      "byteLength",
                      "mediaType",
                      "displayName",
                      "title",
                      "posterUri",
                      "captionsUri",
                      "autoplay",
                      "loop",
                      "muted",
                      "volume",
                      "restartOnOpen",
                      "startSeconds",
                      "endSeconds"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "const": "ridley",
                        "type": "string"
                      },
                      "target": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "kind",
                      "target"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "const": "external-link",
                        "type": "string"
                      },
                      "url": {
                        "type": "string",
                        "maxLength": 2048
                      }
                    },
                    "required": [
                      "kind",
                      "url"
                    ],
                    "additionalProperties": false
                  }
                ]
              },
              "span": {
                "type": "object",
                "properties": {
                  "start": {
                    "type": "number"
                  },
                  "end": {
                    "type": "number"
                  },
                  "line": {
                    "type": "number"
                  },
                  "column": {
                    "type": "number"
                  }
                },
                "required": [
                  "start",
                  "end",
                  "line",
                  "column"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "identity",
              "alias",
              "parentObjectId",
              "text",
              "icon",
              "anchor",
              "offset",
              "maxDistance",
              "billboard",
              "theme",
              "action",
              "span"
            ],
            "additionalProperties": false
          }
        },
        "relations": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "identity": {
                "type": "string"
              },
              "kind": {
                "anyOf": [
                  {
                    "const": "on",
                    "type": "string"
                  },
                  {
                    "const": "beside",
                    "type": "string"
                  },
                  {
                    "const": "facing",
                    "type": "string"
                  },
                  {
                    "const": "inside",
                    "type": "string"
                  },
                  {
                    "const": "against",
                    "type": "string"
                  },
                  {
                    "const": "attached-to",
                    "type": "string"
                  },
                  {
                    "const": "keep-clear",
                    "type": "string"
                  },
                  {
                    "const": "reachable-from",
                    "type": "string"
                  }
                ]
              },
              "subject": {
                "type": "object",
                "properties": {
                  "identity": {
                    "type": "string"
                  },
                  "manifestId": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "featureId": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "kind": {
                    "anyOf": [
                      {
                        "const": "object",
                        "type": "string"
                      },
                      {
                        "const": "surface",
                        "type": "string"
                      },
                      {
                        "const": "component",
                        "type": "string"
                      },
                      {
                        "const": "collider",
                        "type": "string"
                      }
                    ]
                  }
                },
                "required": [
                  "identity",
                  "manifestId",
                  "featureId",
                  "kind"
                ],
                "additionalProperties": false
              },
              "target": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "identity": {
                        "type": "string"
                      },
                      "manifestId": {
                        "anyOf": [
                          {
                            "type": "null"
                          },
                          {
                            "type": "string"
                          }
                        ]
                      },
                      "featureId": {
                        "anyOf": [
                          {
                            "type": "null"
                          },
                          {
                            "type": "string"
                          }
                        ]
                      },
                      "kind": {
                        "anyOf": [
                          {
                            "const": "object",
                            "type": "string"
                          },
                          {
                            "const": "surface",
                            "type": "string"
                          },
                          {
                            "const": "component",
                            "type": "string"
                          },
                          {
                            "const": "collider",
                            "type": "string"
                          }
                        ]
                      }
                    },
                    "required": [
                      "identity",
                      "manifestId",
                      "featureId",
                      "kind"
                    ],
                    "additionalProperties": false
                  }
                ]
              },
              "temporal": {
                "anyOf": [
                  {
                    "const": "initial",
                    "type": "string"
                  },
                  {
                    "const": "monitor",
                    "type": "string"
                  },
                  {
                    "const": "maintain",
                    "type": "string"
                  }
                ]
              },
              "strength": {
                "anyOf": [
                  {
                    "const": "hard",
                    "type": "string"
                  },
                  {
                    "const": "soft",
                    "type": "string"
                  }
                ]
              },
              "weight": {
                "type": "number"
              },
              "parameters": {
                "type": "object",
                "properties": {},
                "required": [],
                "additionalProperties": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "number"
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "number"
                      }
                    }
                  ]
                }
              },
              "sourceCommand": {
                "type": "string"
              },
              "span": {
                "type": "object",
                "properties": {
                  "start": {
                    "type": "number"
                  },
                  "end": {
                    "type": "number"
                  },
                  "line": {
                    "type": "number"
                  },
                  "column": {
                    "type": "number"
                  }
                },
                "required": [
                  "start",
                  "end",
                  "line",
                  "column"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "identity",
              "kind",
              "subject",
              "target",
              "temporal",
              "strength",
              "weight",
              "parameters",
              "sourceCommand",
              "span"
            ],
            "additionalProperties": false
          }
        },
        "bindings": {
          "type": "object",
          "properties": {},
          "required": [],
          "additionalProperties": {
            "type": "string"
          }
        },
        "dependencies": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "assetId": {
                "type": "string"
              },
              "manifestId": {
                "type": "string"
              },
              "analysisRevision": {
                "type": "string"
              },
              "contentHash": {
                "type": "string"
              }
            },
            "required": [
              "assetId",
              "manifestId",
              "analysisRevision",
              "contentHash"
            ],
            "additionalProperties": false
          }
        },
        "versions": {
          "type": "object",
          "properties": {
            "compiler": {
              "const": "quay.compiler/1",
              "type": "string"
            },
            "layout": {
              "anyOf": [
                {
                  "const": "quay.legacy-layout-adapter/1",
                  "type": "string"
                },
                {
                  "const": "quay.semantic-layout/1",
                  "type": "string"
                },
                {
                  "const": "quay.semantic-layout/2",
                  "type": "string"
                }
              ]
            },
            "policy": {
              "anyOf": [
                {
                  "const": "quay.static-policy/1",
                  "type": "string"
                },
                {
                  "const": "quay.physical-policy/1",
                  "type": "string"
                }
              ]
            }
          },
          "required": [
            "compiler",
            "layout",
            "policy"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "version",
        "sceneId",
        "name",
        "seed",
        "room",
        "profile",
        "objects",
        "relations",
        "bindings",
        "dependencies",
        "versions"
      ],
      "additionalProperties": false
    },
    "projection": {
      "type": "object",
      "properties": {
        "materials": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "version": {
                "const": "quay.material/1",
                "type": "string"
              },
              "identity": {
                "type": "string"
              },
              "alias": {
                "type": "string"
              },
              "label": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "category": {
                "anyOf": [
                  {
                    "const": "generic",
                    "type": "string"
                  },
                  {
                    "const": "wood",
                    "type": "string"
                  },
                  {
                    "const": "metal",
                    "type": "string"
                  },
                  {
                    "const": "stone",
                    "type": "string"
                  },
                  {
                    "const": "concrete",
                    "type": "string"
                  },
                  {
                    "const": "ceramic",
                    "type": "string"
                  },
                  {
                    "const": "fabric",
                    "type": "string"
                  },
                  {
                    "const": "glass",
                    "type": "string"
                  },
                  {
                    "const": "paper",
                    "type": "string"
                  },
                  {
                    "const": "plastic",
                    "type": "string"
                  },
                  {
                    "const": "paint",
                    "type": "string"
                  }
                ]
              },
              "shader": {
                "anyOf": [
                  {
                    "const": "unlit",
                    "type": "string"
                  },
                  {
                    "const": "standard",
                    "type": "string"
                  }
                ]
              },
              "color": {
                "type": "string"
              },
              "roughness": {
                "type": "number"
              },
              "metalness": {
                "type": "number"
              },
              "emissive": {
                "type": "string"
              },
              "emissiveIntensity": {
                "type": "number"
              },
              "opacity": {
                "type": "number"
              },
              "alphaMode": {
                "anyOf": [
                  {
                    "const": "opaque",
                    "type": "string"
                  },
                  {
                    "const": "mask",
                    "type": "string"
                  },
                  {
                    "const": "blend",
                    "type": "string"
                  }
                ]
              },
              "alphaCutoff": {
                "type": "number"
              },
              "side": {
                "anyOf": [
                  {
                    "const": "front",
                    "type": "string"
                  },
                  {
                    "const": "back",
                    "type": "string"
                  },
                  {
                    "const": "double",
                    "type": "string"
                  }
                ]
              },
              "preset": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "maps": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "slot": {
                      "anyOf": [
                        {
                          "const": "color",
                          "type": "string"
                        },
                        {
                          "const": "normal",
                          "type": "string"
                        },
                        {
                          "const": "roughness",
                          "type": "string"
                        },
                        {
                          "const": "metalness",
                          "type": "string"
                        },
                        {
                          "const": "emissive",
                          "type": "string"
                        },
                        {
                          "const": "occlusion",
                          "type": "string"
                        },
                        {
                          "const": "alpha",
                          "type": "string"
                        }
                      ]
                    },
                    "image": {
                      "type": "object",
                      "properties": {
                        "assetId": {
                          "type": "string"
                        },
                        "uri": {
                          "type": "string"
                        },
                        "sha256": {
                          "type": "string"
                        },
                        "byteLength": {
                          "type": "number"
                        },
                        "mediaType": {
                          "anyOf": [
                            {
                              "const": "image/png",
                              "type": "string"
                            },
                            {
                              "const": "image/jpeg",
                              "type": "string"
                            },
                            {
                              "const": "image/webp",
                              "type": "string"
                            }
                          ]
                        },
                        "displayName": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "assetId",
                        "uri",
                        "sha256",
                        "byteLength",
                        "mediaType",
                        "displayName"
                      ],
                      "additionalProperties": false
                    },
                    "repeat": {
                      "type": "array",
                      "prefixItems": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "number"
                        }
                      ],
                      "minItems": 2,
                      "maxItems": 2,
                      "items": false
                    },
                    "offset": {
                      "type": "array",
                      "prefixItems": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "number"
                        }
                      ],
                      "minItems": 2,
                      "maxItems": 2,
                      "items": false
                    },
                    "rotation": {
                      "type": "number"
                    },
                    "wrap": {
                      "anyOf": [
                        {
                          "const": "repeat",
                          "type": "string"
                        },
                        {
                          "const": "clamp",
                          "type": "string"
                        },
                        {
                          "const": "mirror",
                          "type": "string"
                        }
                      ]
                    }
                  },
                  "required": [
                    "slot",
                    "image",
                    "repeat",
                    "offset",
                    "rotation",
                    "wrap"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "required": [
              "version",
              "identity",
              "alias",
              "label",
              "description",
              "category",
              "shader",
              "color",
              "roughness",
              "metalness",
              "emissive",
              "emissiveIntensity",
              "opacity",
              "alphaMode",
              "alphaCutoff",
              "side",
              "preset",
              "maps"
            ],
            "additionalProperties": false
          }
        },
        "schema": {
          "const": "quay.scene",
          "type": "string"
        },
        "schemaVersion": {
          "const": "1.0.0",
          "type": "string"
        },
        "sceneId": {
          "type": "string"
        },
        "revision": {
          "type": "number"
        },
        "name": {
          "type": "string"
        },
        "createdAt": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "units": {
          "const": "metres",
          "type": "string"
        },
        "coordinateSystem": {
          "const": "right-handed-y-up-negative-z-forward",
          "type": "string"
        },
        "seed": {
          "type": "number"
        },
        "environment": {
          "type": "object",
          "properties": {
            "room": {
              "type": "object",
              "properties": {
                "width": {
                  "type": "number"
                },
                "depth": {
                  "type": "number"
                },
                "height": {
                  "type": "number"
                },
                "floorY": {
                  "type": "number"
                }
              },
              "required": [
                "width",
                "depth",
                "height",
                "floorY"
              ],
              "additionalProperties": false
            },
            "background": {
              "type": "string"
            },
            "fog": {
              "anyOf": [
                {
                  "type": "null"
                },
                {
                  "type": "object",
                  "properties": {
                    "color": {
                      "type": "string"
                    },
                    "near": {
                      "type": "number"
                    },
                    "far": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "color",
                    "near",
                    "far"
                  ],
                  "additionalProperties": false
                }
              ]
            },
            "floor": {
              "type": "object",
              "properties": {
                "visible": {
                  "anyOf": [
                    {
                      "const": false,
                      "type": "boolean"
                    },
                    {
                      "const": true,
                      "type": "boolean"
                    }
                  ]
                },
                "color": {
                  "type": "string"
                },
                "receiveShadow": {
                  "anyOf": [
                    {
                      "const": false,
                      "type": "boolean"
                    },
                    {
                      "const": true,
                      "type": "boolean"
                    }
                  ]
                },
                "gridVisible": {
                  "anyOf": [
                    {
                      "const": false,
                      "type": "boolean"
                    },
                    {
                      "const": true,
                      "type": "boolean"
                    }
                  ]
                }
              },
              "required": [
                "visible",
                "color",
                "receiveShadow",
                "gridVisible"
              ],
              "additionalProperties": false
            },
            "lights": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "type": {
                    "anyOf": [
                      {
                        "const": "ambient",
                        "type": "string"
                      },
                      {
                        "const": "hemisphere",
                        "type": "string"
                      },
                      {
                        "const": "directional",
                        "type": "string"
                      },
                      {
                        "const": "point",
                        "type": "string"
                      }
                    ]
                  },
                  "color": {
                    "type": "string"
                  },
                  "groundColor": {
                    "type": "string"
                  },
                  "intensity": {
                    "type": "number"
                  },
                  "position": {
                    "type": "array",
                    "prefixItems": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      }
                    ],
                    "minItems": 3,
                    "maxItems": 3,
                    "items": false
                  },
                  "castShadow": {
                    "anyOf": [
                      {
                        "const": false,
                        "type": "boolean"
                      },
                      {
                        "const": true,
                        "type": "boolean"
                      }
                    ]
                  }
                },
                "required": [
                  "type",
                  "color",
                  "intensity",
                  "position",
                  "castShadow"
                ],
                "additionalProperties": false
              }
            }
          },
          "required": [
            "room",
            "background",
            "fog",
            "floor",
            "lights"
          ],
          "additionalProperties": false
        },
        "assets": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "library": {
                "type": "object",
                "properties": {
                  "version": {
                    "const": "quay.asset-library/1",
                    "type": "string"
                  },
                  "alias": {
                    "type": "string"
                  },
                  "scope": {
                    "anyOf": [
                      {
                        "const": "standard",
                        "type": "string"
                      },
                      {
                        "const": "user",
                        "type": "string"
                      },
                      {
                        "const": "project",
                        "type": "string"
                      }
                    ]
                  },
                  "projectId": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "origin": {
                    "type": "object",
                    "properties": {
                      "provider": {
                        "type": "string"
                      },
                      "originalAssetId": {
                        "type": "string"
                      },
                      "originalUrl": {
                        "anyOf": [
                          {
                            "type": "null"
                          },
                          {
                            "type": "string"
                          }
                        ]
                      },
                      "author": {
                        "anyOf": [
                          {
                            "type": "null"
                          },
                          {
                            "type": "string"
                          }
                        ]
                      },
                      "license": {
                        "type": "string"
                      },
                      "attributionRequired": {
                        "anyOf": [
                          {
                            "const": false,
                            "type": "boolean"
                          },
                          {
                            "const": true,
                            "type": "boolean"
                          }
                        ]
                      },
                      "originalFilename": {
                        "type": "string"
                      },
                      "downloadedAt": {
                        "type": "string"
                      },
                      "contentHash": {
                        "type": "string"
                      },
                      "sourceHash": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "provider",
                      "originalAssetId",
                      "originalUrl",
                      "author",
                      "license",
                      "attributionRequired",
                      "originalFilename",
                      "downloadedAt",
                      "contentHash",
                      "sourceHash"
                    ],
                    "additionalProperties": false
                  },
                  "semantics": {
                    "type": "object",
                    "properties": {
                      "taxonomy": {
                        "const": "quay.asset-taxonomy/1",
                        "type": "string"
                      },
                      "category": {
                        "type": "string"
                      },
                      "styles": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "roomTypes": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "affordances": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "capacity": {
                        "anyOf": [
                          {
                            "type": "null"
                          },
                          {
                            "type": "number"
                          }
                        ]
                      },
                      "confidence": {
                        "type": "number"
                      },
                      "state": {
                        "anyOf": [
                          {
                            "const": "accepted",
                            "type": "string"
                          },
                          {
                            "const": "unknown",
                            "type": "string"
                          },
                          {
                            "const": "suggested",
                            "type": "string"
                          }
                        ]
                      },
                      "producer": {
                        "type": "string"
                      },
                      "model": {
                        "anyOf": [
                          {
                            "type": "null"
                          },
                          {
                            "type": "string"
                          }
                        ]
                      }
                    },
                    "required": [
                      "taxonomy",
                      "category",
                      "styles",
                      "roomTypes",
                      "affordances",
                      "capacity",
                      "confidence",
                      "state",
                      "producer",
                      "model"
                    ],
                    "additionalProperties": false
                  },
                  "manifestId": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "archetypeId": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "cost": {
                    "type": "object",
                    "properties": {
                      "triangles": {
                        "anyOf": [
                          {
                            "type": "null"
                          },
                          {
                            "type": "number"
                          }
                        ]
                      },
                      "materials": {
                        "anyOf": [
                          {
                            "type": "null"
                          },
                          {
                            "type": "number"
                          }
                        ]
                      },
                      "textureBytes": {
                        "anyOf": [
                          {
                            "type": "null"
                          },
                          {
                            "type": "number"
                          }
                        ]
                      },
                      "texturePixels": {
                        "anyOf": [
                          {
                            "type": "null"
                          },
                          {
                            "type": "number"
                          }
                        ]
                      }
                    },
                    "required": [
                      "triangles",
                      "materials",
                      "textureBytes",
                      "texturePixels"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "version",
                  "alias",
                  "scope",
                  "projectId",
                  "origin",
                  "semantics",
                  "manifestId",
                  "archetypeId",
                  "cost"
                ],
                "additionalProperties": false
              },
              "assetId": {
                "type": "string"
              },
              "uri": {
                "type": "string"
              },
              "sha256": {
                "type": "string"
              },
              "byteLength": {
                "type": "number"
              },
              "mediaType": {
                "const": "model/gltf-binary",
                "type": "string"
              },
              "displayName": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "category": {
                "type": "string"
              },
              "canonicalSize": {
                "type": "array",
                "prefixItems": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ],
                "minItems": 3,
                "maxItems": 3,
                "items": false
              },
              "normalization": {
                "type": "object",
                "properties": {
                  "rawBounds": {
                    "type": "object",
                    "properties": {
                      "min": {
                        "type": "array",
                        "prefixItems": [
                          {
                            "type": "number"
                          },
                          {
                            "type": "number"
                          },
                          {
                            "type": "number"
                          }
                        ],
                        "minItems": 3,
                        "maxItems": 3,
                        "items": false
                      },
                      "max": {
                        "type": "array",
                        "prefixItems": [
                          {
                            "type": "number"
                          },
                          {
                            "type": "number"
                          },
                          {
                            "type": "number"
                          }
                        ],
                        "minItems": 3,
                        "maxItems": 3,
                        "items": false
                      }
                    },
                    "required": [
                      "min",
                      "max"
                    ],
                    "additionalProperties": false
                  },
                  "scale": {
                    "type": "array",
                    "prefixItems": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      }
                    ],
                    "minItems": 3,
                    "maxItems": 3,
                    "items": false
                  },
                  "baseOffset": {
                    "type": "array",
                    "prefixItems": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      }
                    ],
                    "minItems": 3,
                    "maxItems": 3,
                    "items": false
                  },
                  "forwardCorrection": {
                    "type": "array",
                    "prefixItems": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      }
                    ],
                    "minItems": 4,
                    "maxItems": 4,
                    "items": false
                  }
                },
                "required": [
                  "rawBounds",
                  "scale",
                  "baseOffset",
                  "forwardCorrection"
                ],
                "additionalProperties": false
              },
              "placement": {
                "anyOf": [
                  {
                    "const": "floor_only",
                    "type": "string"
                  },
                  {
                    "const": "support_only",
                    "type": "string"
                  },
                  {
                    "const": "floor_or_support",
                    "type": "string"
                  }
                ]
              },
              "supportsObjects": {
                "anyOf": [
                  {
                    "const": false,
                    "type": "boolean"
                  },
                  {
                    "const": true,
                    "type": "boolean"
                  }
                ]
              },
              "wallAlignment": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "const": "center",
                    "type": "string"
                  },
                  {
                    "const": "left",
                    "type": "string"
                  },
                  {
                    "const": "right",
                    "type": "string"
                  }
                ]
              },
              "availability": {
                "anyOf": [
                  {
                    "const": "global",
                    "type": "string"
                  },
                  {
                    "const": "local",
                    "type": "string"
                  }
                ]
              },
              "roomId": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "supportSurfaces": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "surfaceId": {
                      "type": "string"
                    },
                    "label": {
                      "type": "string"
                    },
                    "center": {
                      "type": "array",
                      "prefixItems": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "number"
                        }
                      ],
                      "minItems": 3,
                      "maxItems": 3,
                      "items": false
                    },
                    "normal": {
                      "type": "array",
                      "prefixItems": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "number"
                        }
                      ],
                      "minItems": 3,
                      "maxItems": 3,
                      "items": false
                    },
                    "size": {
                      "type": "array",
                      "prefixItems": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "number"
                        }
                      ],
                      "minItems": 2,
                      "maxItems": 2,
                      "items": false
                    },
                    "source": {
                      "anyOf": [
                        {
                          "const": "bounds",
                          "type": "string"
                        },
                        {
                          "const": "mesh",
                          "type": "string"
                        },
                        {
                          "const": "manual",
                          "type": "string"
                        }
                      ]
                    }
                  },
                  "required": [
                    "surfaceId",
                    "label",
                    "center",
                    "normal",
                    "size",
                    "source"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "required": [
              "assetId",
              "uri",
              "sha256",
              "byteLength",
              "mediaType",
              "displayName",
              "description",
              "category",
              "canonicalSize",
              "normalization",
              "placement",
              "supportsObjects",
              "supportSurfaces"
            ],
            "additionalProperties": false
          }
        },
        "imageAssets": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "assetId": {
                "type": "string"
              },
              "uri": {
                "type": "string"
              },
              "sha256": {
                "type": "string"
              },
              "byteLength": {
                "type": "number"
              },
              "mediaType": {
                "anyOf": [
                  {
                    "const": "image/png",
                    "type": "string"
                  },
                  {
                    "const": "image/jpeg",
                    "type": "string"
                  },
                  {
                    "const": "image/webp",
                    "type": "string"
                  }
                ]
              },
              "displayName": {
                "type": "string"
              }
            },
            "required": [
              "assetId",
              "uri",
              "sha256",
              "byteLength",
              "mediaType",
              "displayName"
            ],
            "additionalProperties": false
          }
        },
        "instances": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "materialId": {
                "type": "string"
              },
              "normalization": {
                "type": "object",
                "properties": {
                  "rawBounds": {
                    "type": "object",
                    "properties": {
                      "min": {
                        "type": "array",
                        "prefixItems": [
                          {
                            "type": "number"
                          },
                          {
                            "type": "number"
                          },
                          {
                            "type": "number"
                          }
                        ],
                        "minItems": 3,
                        "maxItems": 3,
                        "items": false
                      },
                      "max": {
                        "type": "array",
                        "prefixItems": [
                          {
                            "type": "number"
                          },
                          {
                            "type": "number"
                          },
                          {
                            "type": "number"
                          }
                        ],
                        "minItems": 3,
                        "maxItems": 3,
                        "items": false
                      }
                    },
                    "required": [
                      "min",
                      "max"
                    ],
                    "additionalProperties": false
                  },
                  "scale": {
                    "type": "array",
                    "prefixItems": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      }
                    ],
                    "minItems": 3,
                    "maxItems": 3,
                    "items": false
                  },
                  "baseOffset": {
                    "type": "array",
                    "prefixItems": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      }
                    ],
                    "minItems": 3,
                    "maxItems": 3,
                    "items": false
                  },
                  "forwardCorrection": {
                    "type": "array",
                    "prefixItems": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      }
                    ],
                    "minItems": 4,
                    "maxItems": 4,
                    "items": false
                  }
                },
                "required": [
                  "rawBounds",
                  "scale",
                  "baseOffset",
                  "forwardCorrection"
                ],
                "additionalProperties": false
              },
              "instanceId": {
                "type": "string"
              },
              "assetId": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "transform": {
                "type": "object",
                "properties": {
                  "position": {
                    "type": "array",
                    "prefixItems": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      }
                    ],
                    "minItems": 3,
                    "maxItems": 3,
                    "items": false
                  },
                  "quaternion": {
                    "type": "array",
                    "prefixItems": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      }
                    ],
                    "minItems": 4,
                    "maxItems": 4,
                    "items": false
                  },
                  "scale": {
                    "type": "array",
                    "prefixItems": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      }
                    ],
                    "minItems": 3,
                    "maxItems": 3,
                    "items": false
                  }
                },
                "required": [
                  "position",
                  "quaternion",
                  "scale"
                ],
                "additionalProperties": false
              },
              "visible": {
                "anyOf": [
                  {
                    "const": false,
                    "type": "boolean"
                  },
                  {
                    "const": true,
                    "type": "boolean"
                  }
                ]
              },
              "castShadow": {
                "anyOf": [
                  {
                    "const": false,
                    "type": "boolean"
                  },
                  {
                    "const": true,
                    "type": "boolean"
                  }
                ]
              },
              "receiveShadow": {
                "anyOf": [
                  {
                    "const": false,
                    "type": "boolean"
                  },
                  {
                    "const": true,
                    "type": "boolean"
                  }
                ]
              },
              "locked": {
                "anyOf": [
                  {
                    "const": false,
                    "type": "boolean"
                  },
                  {
                    "const": true,
                    "type": "boolean"
                  }
                ]
              },
              "placement": {
                "type": "object",
                "properties": {
                  "source": {
                    "anyOf": [
                      {
                        "const": "manual",
                        "type": "string"
                      },
                      {
                        "const": "solver",
                        "type": "string"
                      },
                      {
                        "const": "imported",
                        "type": "string"
                      }
                    ]
                  },
                  "supportingInstanceId": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "supportSurfaceId": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "solverStatus": {
                    "anyOf": [
                      {
                        "const": "unresolved",
                        "type": "string"
                      },
                      {
                        "const": "fallback",
                        "type": "string"
                      },
                      {
                        "const": "placed",
                        "type": "string"
                      }
                    ]
                  }
                },
                "required": [
                  "source",
                  "supportingInstanceId",
                  "supportSurfaceId",
                  "solverStatus"
                ],
                "additionalProperties": false
              },
              "tags": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "wallImage": {
                "type": "object",
                "properties": {
                  "wallInstanceId": {
                    "type": "string"
                  },
                  "assetId": {
                    "type": "string"
                  },
                  "position": {
                    "type": "array",
                    "prefixItems": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      }
                    ],
                    "minItems": 2,
                    "maxItems": 2,
                    "items": false
                  },
                  "size": {
                    "type": "array",
                    "prefixItems": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "number"
                      }
                    ],
                    "minItems": 2,
                    "maxItems": 2,
                    "items": false
                  },
                  "surfaceOffset": {
                    "type": "number"
                  },
                  "preserveAspectRatio": {
                    "anyOf": [
                      {
                        "const": false,
                        "type": "boolean"
                      },
                      {
                        "const": true,
                        "type": "boolean"
                      }
                    ]
                  },
                  "surface": {
                    "anyOf": [
                      {
                        "const": "floor",
                        "type": "string"
                      },
                      {
                        "const": "wall",
                        "type": "string"
                      }
                    ]
                  }
                },
                "required": [
                  "wallInstanceId",
                  "assetId",
                  "position",
                  "size",
                  "surfaceOffset",
                  "preserveAspectRatio"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "instanceId",
              "assetId",
              "name",
              "transform",
              "visible",
              "castShadow",
              "receiveShadow",
              "locked",
              "placement",
              "tags"
            ],
            "additionalProperties": false
          }
        },
        "relations": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "relationId": {
                "type": "string"
              },
              "type": {
                "anyOf": [
                  {
                    "const": "ON",
                    "type": "string"
                  },
                  {
                    "const": "NEAR",
                    "type": "string"
                  },
                  {
                    "const": "LEFT_OF",
                    "type": "string"
                  },
                  {
                    "const": "RIGHT_OF",
                    "type": "string"
                  },
                  {
                    "const": "IN_FRONT_OF",
                    "type": "string"
                  },
                  {
                    "const": "BEHIND",
                    "type": "string"
                  },
                  {
                    "const": "FACING",
                    "type": "string"
                  },
                  {
                    "const": "CENTERED_ON",
                    "type": "string"
                  },
                  {
                    "const": "ALIGNED_WITH",
                    "type": "string"
                  },
                  {
                    "const": "AGAINST_WALL",
                    "type": "string"
                  },
                  {
                    "const": "KEEP_CLEAR_OF",
                    "type": "string"
                  }
                ]
              },
              "subjectInstanceId": {
                "type": "string"
              },
              "targetInstanceId": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "strength": {
                "anyOf": [
                  {
                    "const": "hard",
                    "type": "string"
                  },
                  {
                    "const": "soft",
                    "type": "string"
                  }
                ]
              },
              "status": {
                "anyOf": [
                  {
                    "const": "satisfied",
                    "type": "string"
                  },
                  {
                    "const": "unresolved",
                    "type": "string"
                  },
                  {
                    "const": "degraded",
                    "type": "string"
                  }
                ]
              },
              "message": {
                "type": "string"
              }
            },
            "required": [
              "relationId",
              "type",
              "subjectInstanceId",
              "targetInstanceId",
              "strength",
              "status",
              "message"
            ],
            "additionalProperties": false
          }
        },
        "diagnostics": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string"
              },
              "severity": {
                "anyOf": [
                  {
                    "const": "error",
                    "type": "string"
                  },
                  {
                    "const": "warning",
                    "type": "string"
                  },
                  {
                    "const": "info",
                    "type": "string"
                  }
                ]
              },
              "message": {
                "type": "string"
              },
              "instanceIds": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "relationId": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "measurements": {
                "type": "object",
                "properties": {},
                "required": [],
                "additionalProperties": {
                  "type": "number"
                }
              }
            },
            "required": [
              "code",
              "severity",
              "message",
              "instanceIds",
              "relationId"
            ],
            "additionalProperties": false
          }
        },
        "unplacedInstanceIds": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "camera": {
          "type": "object",
          "properties": {
            "type": {
              "const": "perspective",
              "type": "string"
            },
            "position": {
              "type": "array",
              "prefixItems": [
                {
                  "type": "number"
                },
                {
                  "type": "number"
                },
                {
                  "type": "number"
                }
              ],
              "minItems": 3,
              "maxItems": 3,
              "items": false
            },
            "target": {
              "type": "array",
              "prefixItems": [
                {
                  "type": "number"
                },
                {
                  "type": "number"
                },
                {
                  "type": "number"
                }
              ],
              "minItems": 3,
              "maxItems": 3,
              "items": false
            },
            "up": {
              "type": "array",
              "prefixItems": [
                {
                  "type": "number"
                },
                {
                  "type": "number"
                },
                {
                  "type": "number"
                }
              ],
              "minItems": 3,
              "maxItems": 3,
              "items": false
            },
            "fovDegrees": {
              "type": "number"
            },
            "near": {
              "type": "number"
            },
            "far": {
              "type": "number"
            }
          },
          "required": [
            "type",
            "position",
            "target",
            "up",
            "fovDegrees",
            "near",
            "far"
          ],
          "additionalProperties": false
        },
        "provenance": {
          "type": "object",
          "properties": {
            "createdBy": {
              "anyOf": [
                {
                  "const": "quay",
                  "type": "string"
                },
                {
                  "const": "import",
                  "type": "string"
                }
              ]
            },
            "planner": {
              "anyOf": [
                {
                  "type": "null"
                },
                {
                  "type": "object",
                  "properties": {
                    "provider": {
                      "anyOf": [
                        {
                          "const": "openai",
                          "type": "string"
                        },
                        {
                          "const": "fake",
                          "type": "string"
                        }
                      ]
                    },
                    "model": {
                      "type": "string"
                    },
                    "promptTemplateVersion": {
                      "type": "string"
                    },
                    "requestId": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "provider",
                    "model",
                    "promptTemplateVersion",
                    "requestId"
                  ],
                  "additionalProperties": false
                }
              ]
            },
            "layoutEngineVersion": {
              "type": "string"
            },
            "threeVersion": {
              "type": "string"
            },
            "sourcePrompt": {
              "type": "string"
            }
          },
          "required": [
            "createdBy",
            "planner",
            "layoutEngineVersion",
            "threeVersion",
            "sourcePrompt"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "schema",
        "schemaVersion",
        "sceneId",
        "revision",
        "name",
        "createdAt",
        "updatedAt",
        "units",
        "coordinateSystem",
        "seed",
        "environment",
        "assets",
        "instances",
        "relations",
        "diagnostics",
        "unplacedInstanceIds",
        "camera",
        "provenance"
      ],
      "additionalProperties": false
    },
    "evaluations": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "identity": {
            "type": "string"
          },
          "status": {
            "anyOf": [
              {
                "const": "unsupported",
                "type": "string"
              },
              {
                "const": "satisfied",
                "type": "string"
              },
              {
                "const": "failed",
                "type": "string"
              },
              {
                "const": "unknown",
                "type": "string"
              }
            ]
          },
          "message": {
            "type": "string"
          },
          "residuals": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": {
              "type": "number"
            }
          }
        },
        "required": [
          "identity",
          "status",
          "message",
          "residuals"
        ],
        "additionalProperties": false
      }
    },
    "diagnostics": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "severity": {
            "anyOf": [
              {
                "const": "error",
                "type": "string"
              },
              {
                "const": "warning",
                "type": "string"
              },
              {
                "const": "info",
                "type": "string"
              }
            ]
          },
          "message": {
            "type": "string"
          },
          "span": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "object",
                "properties": {
                  "start": {
                    "type": "number"
                  },
                  "end": {
                    "type": "number"
                  },
                  "line": {
                    "type": "number"
                  },
                  "column": {
                    "type": "number"
                  }
                },
                "required": [
                  "start",
                  "end",
                  "line",
                  "column"
                ],
                "additionalProperties": false
              }
            ]
          },
          "identity": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          }
        },
        "required": [
          "code",
          "severity",
          "message",
          "span",
          "identity"
        ],
        "additionalProperties": false
      }
    },
    "provenance": {
      "type": "object",
      "properties": {
        "sourceHash": {
          "type": "string"
        },
        "versions": {
          "type": "object",
          "properties": {
            "compiler": {
              "const": "quay.compiler/1",
              "type": "string"
            },
            "layout": {
              "anyOf": [
                {
                  "const": "quay.legacy-layout-adapter/1",
                  "type": "string"
                },
                {
                  "const": "quay.semantic-layout/1",
                  "type": "string"
                },
                {
                  "const": "quay.semantic-layout/2",
                  "type": "string"
                }
              ]
            },
            "policy": {
              "anyOf": [
                {
                  "const": "quay.static-policy/1",
                  "type": "string"
                },
                {
                  "const": "quay.physical-policy/1",
                  "type": "string"
                }
              ]
            }
          },
          "required": [
            "compiler",
            "layout",
            "policy"
          ],
          "additionalProperties": false
        },
        "dependencies": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "assetId": {
                "type": "string"
              },
              "manifestId": {
                "type": "string"
              },
              "analysisRevision": {
                "type": "string"
              },
              "contentHash": {
                "type": "string"
              }
            },
            "required": [
              "assetId",
              "manifestId",
              "analysisRevision",
              "contentHash"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "sourceHash",
        "versions",
        "dependencies"
      ],
      "additionalProperties": false
    },
    "readiness": {
      "const": "static-preview",
      "type": "string"
    },
    "physics": {
      "type": "object",
      "properties": {
        "version": {
          "const": "quay.physics-preparation/1",
          "type": "string"
        },
        "ready": {
          "anyOf": [
            {
              "const": false,
              "type": "boolean"
            },
            {
              "const": true,
              "type": "boolean"
            }
          ]
        },
        "gravity": {
          "type": "array",
          "prefixItems": [
            {
              "type": "number"
            },
            {
              "type": "number"
            },
            {
              "type": "number"
            }
          ],
          "minItems": 3,
          "maxItems": 3,
          "items": false
        },
        "stepSeconds": {
          "type": "number"
        },
        "maxCatchUpSteps": {
          "type": "number"
        },
        "bodies": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "instanceId": {
                "type": "string"
              },
              "motion": {
                "anyOf": [
                  {
                    "const": "static",
                    "type": "string"
                  },
                  {
                    "const": "dynamic",
                    "type": "string"
                  },
                  {
                    "const": "kinematic",
                    "type": "string"
                  }
                ]
              },
              "collision": {
                "anyOf": [
                  {
                    "const": "none",
                    "type": "string"
                  },
                  {
                    "const": "solid",
                    "type": "string"
                  },
                  {
                    "const": "sensor",
                    "type": "string"
                  }
                ]
              },
              "controller": {
                "anyOf": [
                  {
                    "const": "none",
                    "type": "string"
                  },
                  {
                    "const": "character",
                    "type": "string"
                  }
                ]
              },
              "role": {
                "type": "string"
              },
              "canGrab": {
                "anyOf": [
                  {
                    "const": false,
                    "type": "boolean"
                  },
                  {
                    "const": true,
                    "type": "boolean"
                  }
                ]
              },
              "massKg": {
                "type": "number"
              },
              "friction": {
                "type": "number"
              },
              "restitution": {
                "type": "number"
              },
              "colliders": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "shape": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "kind": {
                              "const": "box",
                              "type": "string"
                            },
                            "center": {
                              "type": "array",
                              "prefixItems": [
                                {
                                  "type": "number"
                                },
                                {
                                  "type": "number"
                                },
                                {
                                  "type": "number"
                                }
                              ],
                              "minItems": 3,
                              "maxItems": 3,
                              "items": false
                            },
                            "halfExtents": {
                              "type": "array",
                              "prefixItems": [
                                {
                                  "type": "number"
                                },
                                {
                                  "type": "number"
                                },
                                {
                                  "type": "number"
                                }
                              ],
                              "minItems": 3,
                              "maxItems": 3,
                              "items": false
                            }
                          },
                          "required": [
                            "kind",
                            "center",
                            "halfExtents"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "kind": {
                              "const": "convex",
                              "type": "string"
                            },
                            "vertices": {
                              "type": "array",
                              "items": {
                                "type": "number"
                              }
                            }
                          },
                          "required": [
                            "kind",
                            "vertices"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "kind": {
                              "const": "triangle-mesh",
                              "type": "string"
                            },
                            "vertices": {
                              "type": "array",
                              "items": {
                                "type": "number"
                              }
                            },
                            "indices": {
                              "type": "array",
                              "items": {
                                "type": "number"
                              }
                            }
                          },
                          "required": [
                            "kind",
                            "vertices",
                            "indices"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    },
                    "volumeM3": {
                      "type": "number"
                    },
                    "evidence": {
                      "type": "string"
                    },
                    "approximate": {
                      "anyOf": [
                        {
                          "const": false,
                          "type": "boolean"
                        },
                        {
                          "const": true,
                          "type": "boolean"
                        }
                      ]
                    }
                  },
                  "required": [
                    "shape",
                    "volumeM3",
                    "evidence",
                    "approximate"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "required": [
              "instanceId",
              "motion",
              "collision",
              "controller",
              "role",
              "canGrab",
              "massKg",
              "friction",
              "restitution",
              "colliders"
            ],
            "additionalProperties": false
          }
        },
        "diagnostics": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string"
              },
              "severity": {
                "anyOf": [
                  {
                    "const": "error",
                    "type": "string"
                  },
                  {
                    "const": "warning",
                    "type": "string"
                  }
                ]
              },
              "instanceId": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "message": {
                "type": "string"
              }
            },
            "required": [
              "code",
              "severity",
              "instanceId",
              "message"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "version",
        "ready",
        "gravity",
        "stepSeconds",
        "maxCatchUpSteps",
        "bodies",
        "diagnostics"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "schema",
    "schemaVersion",
    "semantic",
    "projection",
    "evaluations",
    "diagnostics",
    "provenance",
    "readiness"
  ],
  "additionalProperties": false
}

QUAY SceneDocument

Download scene.schema.json

Root propertyRequiredConstraint
schemayes{"const":"quay.scene"}
schemaVersionyes{"const":"1.0.0"}
sceneIdyes{"type":"string","format":"uuid"}
revisionyes{"type":"integer","minimum":0}
nameyes{"type":"string","minLength":1,"maxLength":200}
createdAtyes{"type":"string","format":"date-time"}
updatedAtyes{"type":"string","format":"date-time"}
unitsyes{"const":"metres"}
coordinateSystemyes{"const":"right-handed-y-up-negative-z-forward"}
seedyes{"type":"integer","minimum":0,"maximum":4294967295}
environmentyes{"$ref":"#/$defs/environment"}
assetsyes{"type":"array","maxItems":500,"items":{"$ref":"#/$defs/asset"}}
imageAssetsno{"type":"array","maxItems":1000,"items":{"$ref":"#/$defs/imageAsset"}}
instancesyes{"type":"array","maxItems":2000,"items":{"$ref":"#/$defs/instance"}}
relationsyes{"type":"array","maxItems":5000,"items":{"$ref":"#/$defs/resolvedRelation"}}
diagnosticsyes{"type":"array","maxItems":1000,"items":{"$ref":"#/$defs/diagnostic"}}
unplacedInstanceIdsyes{"type":"array","maxItems":2000,"uniqueItems":true,"items":{"type":"string","format":"uuid"}}
camerayes{"$ref":"#/$defs/camera"}
provenanceyes{"$ref":"#/$defs/provenance"}
materialsno{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"version":{"const":"quay.material/1","type":"string"},"identity":{"type":"string"},"alias":{"type":"string"},"label":{"type":"string"},"description":{"type":"string"},"category":{"anyOf":[{"const":"generic","type":"string"},{"const":"wood","type":"string"},{"const":"metal","type":"string"},{"const":"stone","type":"string"},{"const":"concrete","type":"string"},{"const":"ceramic","type":"string"},{"const":"fabric","type":"string"},{"const":"glass","type":"string"},{"const":"paper","type":"string"},{"const":"plastic","type":"string"},{"const":"paint","type":"string"}]},"shader":{"anyOf":[{"const":"standard","type":"string"},{"const":"unlit","type":"string"}]},"color":{"type":"string"},"roughness":{"type":"number"},"metalness":{"type":"number"},"emissive":{"type":"string"},"emissiveIntensity":{"type":"number"},"opacity":{"type":"number"},"alphaMode":{"anyOf":[{"const":"opaque","type":"string"},{"const":"mask","type":"string"},{"const":"blend","type":"string"}]},"alphaCutoff":{"type":"number"},"side":{"anyOf":[{"const":"front","type":"string"},{"const":"back","type":"string"},{"const":"double","type":"string"}]},"preset":{"anyOf":[{"type":"null"},{"type":"string"}]},"maps":{"type":"array","items":{"type":"object","properties":{"slot":{"anyOf":[{"const":"color","type":"string"},{"const":"normal","type":"string"},{"const":"roughness","type":"string"},{"const":"metalness","type":"string"},{"const":"emissive","type":"string"},{"const":"occlusion","type":"string"},{"const":"alpha","type":"string"}]},"image":{"type":"object","properties":{"assetId":{"type":"string"},"uri":{"type":"string"},"sha256":{"type":"string"},"byteLength":{"type":"number"},"mediaType":{"anyOf":[{"const":"image/png","type":"string"},{"const":"image/jpeg","type":"string"},{"const":"image/webp","type":"string"}]},"displayName":{"type":"string"}},"required":["assetId","uri","sha256","byteLength","mediaType","displayName"],"additionalProperties":false},"repeat":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"minItems":2,"maxItems":2,"items":false},"offset":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"minItems":2,"maxItems":2,"items":false},"rotation":{"type":"number"},"wrap":{"anyOf":[{"const":"repeat","type":"string"},{"const":"clamp","type":"string"},{"const":"mirror","type":"string"}]}},"required":["slot","image","repeat","offset","rotation","wrap"],"additionalProperties":false}}},"required":["version","identity","alias","label","description","category","shader","color","roughness","metalness","emissive","emissiveIntensity","opacity","alphaMode","alphaCutoff","side","preset","maps"],"additionalProperties":false}}
Complete schema including nested definitions
JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://quay.local/schemas/scene.schema.json",
  "title": "QUAY SceneDocument",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "schema",
    "schemaVersion",
    "sceneId",
    "revision",
    "name",
    "createdAt",
    "updatedAt",
    "units",
    "coordinateSystem",
    "seed",
    "environment",
    "assets",
    "instances",
    "relations",
    "diagnostics",
    "unplacedInstanceIds",
    "camera",
    "provenance"
  ],
  "properties": {
    "schema": {
      "const": "quay.scene"
    },
    "schemaVersion": {
      "const": "1.0.0"
    },
    "sceneId": {
      "type": "string",
      "format": "uuid"
    },
    "revision": {
      "type": "integer",
      "minimum": 0
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "createdAt": {
      "type": "string",
      "format": "date-time"
    },
    "updatedAt": {
      "type": "string",
      "format": "date-time"
    },
    "units": {
      "const": "metres"
    },
    "coordinateSystem": {
      "const": "right-handed-y-up-negative-z-forward"
    },
    "seed": {
      "type": "integer",
      "minimum": 0,
      "maximum": 4294967295
    },
    "environment": {
      "$ref": "#/$defs/environment"
    },
    "assets": {
      "type": "array",
      "maxItems": 500,
      "items": {
        "$ref": "#/$defs/asset"
      }
    },
    "imageAssets": {
      "type": "array",
      "maxItems": 1000,
      "items": {
        "$ref": "#/$defs/imageAsset"
      }
    },
    "instances": {
      "type": "array",
      "maxItems": 2000,
      "items": {
        "$ref": "#/$defs/instance"
      }
    },
    "relations": {
      "type": "array",
      "maxItems": 5000,
      "items": {
        "$ref": "#/$defs/resolvedRelation"
      }
    },
    "diagnostics": {
      "type": "array",
      "maxItems": 1000,
      "items": {
        "$ref": "#/$defs/diagnostic"
      }
    },
    "unplacedInstanceIds": {
      "type": "array",
      "maxItems": 2000,
      "uniqueItems": true,
      "items": {
        "type": "string",
        "format": "uuid"
      }
    },
    "camera": {
      "$ref": "#/$defs/camera"
    },
    "provenance": {
      "$ref": "#/$defs/provenance"
    },
    "materials": {
      "type": "array",
      "maxItems": 1000,
      "items": {
        "type": "object",
        "properties": {
          "version": {
            "const": "quay.material/1",
            "type": "string"
          },
          "identity": {
            "type": "string"
          },
          "alias": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "category": {
            "anyOf": [
              {
                "const": "generic",
                "type": "string"
              },
              {
                "const": "wood",
                "type": "string"
              },
              {
                "const": "metal",
                "type": "string"
              },
              {
                "const": "stone",
                "type": "string"
              },
              {
                "const": "concrete",
                "type": "string"
              },
              {
                "const": "ceramic",
                "type": "string"
              },
              {
                "const": "fabric",
                "type": "string"
              },
              {
                "const": "glass",
                "type": "string"
              },
              {
                "const": "paper",
                "type": "string"
              },
              {
                "const": "plastic",
                "type": "string"
              },
              {
                "const": "paint",
                "type": "string"
              }
            ]
          },
          "shader": {
            "anyOf": [
              {
                "const": "standard",
                "type": "string"
              },
              {
                "const": "unlit",
                "type": "string"
              }
            ]
          },
          "color": {
            "type": "string"
          },
          "roughness": {
            "type": "number"
          },
          "metalness": {
            "type": "number"
          },
          "emissive": {
            "type": "string"
          },
          "emissiveIntensity": {
            "type": "number"
          },
          "opacity": {
            "type": "number"
          },
          "alphaMode": {
            "anyOf": [
              {
                "const": "opaque",
                "type": "string"
              },
              {
                "const": "mask",
                "type": "string"
              },
              {
                "const": "blend",
                "type": "string"
              }
            ]
          },
          "alphaCutoff": {
            "type": "number"
          },
          "side": {
            "anyOf": [
              {
                "const": "front",
                "type": "string"
              },
              {
                "const": "back",
                "type": "string"
              },
              {
                "const": "double",
                "type": "string"
              }
            ]
          },
          "preset": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "maps": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "slot": {
                  "anyOf": [
                    {
                      "const": "color",
                      "type": "string"
                    },
                    {
                      "const": "normal",
                      "type": "string"
                    },
                    {
                      "const": "roughness",
                      "type": "string"
                    },
                    {
                      "const": "metalness",
                      "type": "string"
                    },
                    {
                      "const": "emissive",
                      "type": "string"
                    },
                    {
                      "const": "occlusion",
                      "type": "string"
                    },
                    {
                      "const": "alpha",
                      "type": "string"
                    }
                  ]
                },
                "image": {
                  "type": "object",
                  "properties": {
                    "assetId": {
                      "type": "string"
                    },
                    "uri": {
                      "type": "string"
                    },
                    "sha256": {
                      "type": "string"
                    },
                    "byteLength": {
                      "type": "number"
                    },
                    "mediaType": {
                      "anyOf": [
                        {
                          "const": "image/png",
                          "type": "string"
                        },
                        {
                          "const": "image/jpeg",
                          "type": "string"
                        },
                        {
                          "const": "image/webp",
                          "type": "string"
                        }
                      ]
                    },
                    "displayName": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "assetId",
                    "uri",
                    "sha256",
                    "byteLength",
                    "mediaType",
                    "displayName"
                  ],
                  "additionalProperties": false
                },
                "repeat": {
                  "type": "array",
                  "prefixItems": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "number"
                    }
                  ],
                  "minItems": 2,
                  "maxItems": 2,
                  "items": false
                },
                "offset": {
                  "type": "array",
                  "prefixItems": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "number"
                    }
                  ],
                  "minItems": 2,
                  "maxItems": 2,
                  "items": false
                },
                "rotation": {
                  "type": "number"
                },
                "wrap": {
                  "anyOf": [
                    {
                      "const": "repeat",
                      "type": "string"
                    },
                    {
                      "const": "clamp",
                      "type": "string"
                    },
                    {
                      "const": "mirror",
                      "type": "string"
                    }
                  ]
                }
              },
              "required": [
                "slot",
                "image",
                "repeat",
                "offset",
                "rotation",
                "wrap"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "version",
          "identity",
          "alias",
          "label",
          "description",
          "category",
          "shader",
          "color",
          "roughness",
          "metalness",
          "emissive",
          "emissiveIntensity",
          "opacity",
          "alphaMode",
          "alphaCutoff",
          "side",
          "preset",
          "maps"
        ],
        "additionalProperties": false
      }
    }
  },
  "$defs": {
    "vec3": {
      "type": "array",
      "minItems": 3,
      "maxItems": 3,
      "prefixItems": [
        {
          "type": "number"
        },
        {
          "type": "number"
        },
        {
          "type": "number"
        }
      ],
      "items": false
    },
    "length2": {
      "type": "array",
      "minItems": 2,
      "maxItems": 2,
      "prefixItems": [
        {
          "type": "number"
        },
        {
          "type": "number"
        }
      ],
      "items": false
    },
    "positiveLength2": {
      "type": "array",
      "minItems": 2,
      "maxItems": 2,
      "prefixItems": [
        {
          "type": "number",
          "exclusiveMinimum": 0
        },
        {
          "type": "number",
          "exclusiveMinimum": 0
        }
      ],
      "items": false
    },
    "positiveVec3": {
      "type": "array",
      "minItems": 3,
      "maxItems": 3,
      "prefixItems": [
        {
          "type": "number",
          "exclusiveMinimum": 0
        },
        {
          "type": "number",
          "exclusiveMinimum": 0
        },
        {
          "type": "number",
          "exclusiveMinimum": 0
        }
      ],
      "items": false
    },
    "quaternion": {
      "type": "array",
      "minItems": 4,
      "maxItems": 4,
      "prefixItems": [
        {
          "type": "number"
        },
        {
          "type": "number"
        },
        {
          "type": "number"
        },
        {
          "type": "number"
        }
      ],
      "items": false
    },
    "color": {
      "type": "string",
      "pattern": "^#[0-9A-Fa-f]{6}$"
    },
    "bounds": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "min",
        "max"
      ],
      "properties": {
        "min": {
          "$ref": "#/$defs/vec3"
        },
        "max": {
          "$ref": "#/$defs/vec3"
        }
      }
    },
    "transform": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "position",
        "quaternion",
        "scale"
      ],
      "properties": {
        "position": {
          "$ref": "#/$defs/vec3"
        },
        "quaternion": {
          "$ref": "#/$defs/quaternion"
        },
        "scale": {
          "$ref": "#/$defs/positiveVec3"
        }
      }
    },
    "environment": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "room",
        "background",
        "fog",
        "floor",
        "lights"
      ],
      "properties": {
        "room": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "width",
            "depth",
            "height",
            "floorY"
          ],
          "properties": {
            "width": {
              "type": "number",
              "exclusiveMinimum": 0,
              "maximum": 10000
            },
            "depth": {
              "type": "number",
              "exclusiveMinimum": 0,
              "maximum": 10000
            },
            "height": {
              "type": "number",
              "exclusiveMinimum": 0,
              "maximum": 10000
            },
            "floorY": {
              "type": "number"
            }
          }
        },
        "background": {
          "$ref": "#/$defs/color"
        },
        "fog": {
          "oneOf": [
            {
              "type": "null"
            },
            {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "color",
                "near",
                "far"
              ],
              "properties": {
                "color": {
                  "$ref": "#/$defs/color"
                },
                "near": {
                  "type": "number",
                  "minimum": 0
                },
                "far": {
                  "type": "number",
                  "exclusiveMinimum": 0
                }
              }
            }
          ]
        },
        "floor": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "visible",
            "color",
            "receiveShadow",
            "gridVisible"
          ],
          "properties": {
            "visible": {
              "type": "boolean"
            },
            "color": {
              "$ref": "#/$defs/color"
            },
            "receiveShadow": {
              "type": "boolean"
            },
            "gridVisible": {
              "type": "boolean"
            }
          }
        },
        "lights": {
          "type": "array",
          "maxItems": 16,
          "items": {
            "$ref": "#/$defs/light"
          }
        }
      }
    },
    "light": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "type",
        "color",
        "intensity",
        "position",
        "castShadow"
      ],
      "properties": {
        "type": {
          "enum": [
            "ambient",
            "hemisphere",
            "directional",
            "point"
          ]
        },
        "color": {
          "$ref": "#/$defs/color"
        },
        "groundColor": {
          "$ref": "#/$defs/color"
        },
        "intensity": {
          "type": "number",
          "minimum": 0,
          "maximum": 100000
        },
        "position": {
          "$ref": "#/$defs/vec3"
        },
        "castShadow": {
          "type": "boolean"
        }
      }
    },
    "asset": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "assetId",
        "uri",
        "sha256",
        "byteLength",
        "mediaType",
        "displayName",
        "description",
        "category",
        "canonicalSize",
        "normalization",
        "placement",
        "supportsObjects",
        "supportSurfaces"
      ],
      "properties": {
        "library": {
          "type": "object",
          "properties": {
            "version": {
              "const": "quay.asset-library/1",
              "type": "string"
            },
            "alias": {
              "type": "string"
            },
            "scope": {
              "anyOf": [
                {
                  "const": "standard",
                  "type": "string"
                },
                {
                  "const": "user",
                  "type": "string"
                },
                {
                  "const": "project",
                  "type": "string"
                }
              ]
            },
            "projectId": {
              "anyOf": [
                {
                  "type": "null"
                },
                {
                  "type": "string"
                }
              ]
            },
            "origin": {
              "type": "object",
              "properties": {
                "provider": {
                  "type": "string"
                },
                "originalAssetId": {
                  "type": "string"
                },
                "originalUrl": {
                  "anyOf": [
                    {
                      "type": "null"
                    },
                    {
                      "type": "string"
                    }
                  ]
                },
                "author": {
                  "anyOf": [
                    {
                      "type": "null"
                    },
                    {
                      "type": "string"
                    }
                  ]
                },
                "license": {
                  "type": "string"
                },
                "attributionRequired": {
                  "anyOf": [
                    {
                      "const": false,
                      "type": "boolean"
                    },
                    {
                      "const": true,
                      "type": "boolean"
                    }
                  ]
                },
                "originalFilename": {
                  "type": "string"
                },
                "downloadedAt": {
                  "type": "string"
                },
                "contentHash": {
                  "type": "string"
                },
                "sourceHash": {
                  "type": "string"
                }
              },
              "required": [
                "provider",
                "originalAssetId",
                "originalUrl",
                "author",
                "license",
                "attributionRequired",
                "originalFilename",
                "downloadedAt",
                "contentHash",
                "sourceHash"
              ],
              "additionalProperties": false
            },
            "semantics": {
              "type": "object",
              "properties": {
                "taxonomy": {
                  "const": "quay.asset-taxonomy/1",
                  "type": "string"
                },
                "category": {
                  "type": "string"
                },
                "styles": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "roomTypes": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "affordances": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "capacity": {
                  "anyOf": [
                    {
                      "type": "null"
                    },
                    {
                      "type": "number"
                    }
                  ]
                },
                "confidence": {
                  "type": "number"
                },
                "state": {
                  "anyOf": [
                    {
                      "const": "accepted",
                      "type": "string"
                    },
                    {
                      "const": "suggested",
                      "type": "string"
                    },
                    {
                      "const": "unknown",
                      "type": "string"
                    }
                  ]
                },
                "producer": {
                  "type": "string"
                },
                "model": {
                  "anyOf": [
                    {
                      "type": "null"
                    },
                    {
                      "type": "string"
                    }
                  ]
                }
              },
              "required": [
                "taxonomy",
                "category",
                "styles",
                "roomTypes",
                "affordances",
                "capacity",
                "confidence",
                "state",
                "producer",
                "model"
              ],
              "additionalProperties": false
            },
            "manifestId": {
              "anyOf": [
                {
                  "type": "null"
                },
                {
                  "type": "string"
                }
              ]
            },
            "archetypeId": {
              "anyOf": [
                {
                  "type": "null"
                },
                {
                  "type": "string"
                }
              ]
            },
            "cost": {
              "type": "object",
              "properties": {
                "triangles": {
                  "anyOf": [
                    {
                      "type": "null"
                    },
                    {
                      "type": "number"
                    }
                  ]
                },
                "materials": {
                  "anyOf": [
                    {
                      "type": "null"
                    },
                    {
                      "type": "number"
                    }
                  ]
                },
                "textureBytes": {
                  "anyOf": [
                    {
                      "type": "null"
                    },
                    {
                      "type": "number"
                    }
                  ]
                },
                "texturePixels": {
                  "anyOf": [
                    {
                      "type": "null"
                    },
                    {
                      "type": "number"
                    }
                  ]
                }
              },
              "required": [
                "triangles",
                "materials",
                "textureBytes",
                "texturePixels"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "version",
            "alias",
            "scope",
            "projectId",
            "origin",
            "semantics",
            "manifestId",
            "archetypeId",
            "cost"
          ],
          "additionalProperties": false
        },
        "assetId": {
          "type": "string",
          "format": "uuid"
        },
        "uri": {
          "type": "string",
          "minLength": 1,
          "maxLength": 2048
        },
        "sha256": {
          "type": "string",
          "pattern": "^[0-9a-f]{64}$"
        },
        "byteLength": {
          "type": "integer",
          "minimum": 1
        },
        "mediaType": {
          "const": "model/gltf-binary"
        },
        "displayName": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200
        },
        "description": {
          "type": "string",
          "minLength": 1,
          "maxLength": 2000
        },
        "category": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "canonicalSize": {
          "$ref": "#/$defs/positiveVec3"
        },
        "normalization": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "rawBounds",
            "scale",
            "baseOffset",
            "forwardCorrection"
          ],
          "properties": {
            "rawBounds": {
              "$ref": "#/$defs/bounds"
            },
            "scale": {
              "$ref": "#/$defs/positiveVec3"
            },
            "baseOffset": {
              "$ref": "#/$defs/vec3"
            },
            "forwardCorrection": {
              "$ref": "#/$defs/quaternion"
            }
          }
        },
        "placement": {
          "enum": [
            "floor_only",
            "support_only",
            "floor_or_support"
          ]
        },
        "supportsObjects": {
          "type": "boolean"
        },
        "wallAlignment": {
          "type": [
            "string",
            "null"
          ],
          "enum": [
            "left",
            "center",
            "right",
            null
          ]
        },
        "availability": {
          "enum": [
            "global",
            "local"
          ]
        },
        "roomId": {
          "type": [
            "string",
            "null"
          ]
        },
        "supportSurfaces": {
          "type": "array",
          "maxItems": 50,
          "items": {
            "$ref": "#/$defs/supportSurface"
          }
        }
      }
    },
    "imageAsset": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "assetId",
        "uri",
        "sha256",
        "byteLength",
        "mediaType",
        "displayName"
      ],
      "properties": {
        "assetId": {
          "type": "string",
          "format": "uuid"
        },
        "uri": {
          "type": "string",
          "minLength": 1,
          "maxLength": 2000
        },
        "sha256": {
          "type": "string",
          "pattern": "^[0-9a-fA-F]{64}$"
        },
        "byteLength": {
          "type": "integer",
          "minimum": 1
        },
        "mediaType": {
          "enum": [
            "image/png",
            "image/jpeg",
            "image/webp"
          ]
        },
        "displayName": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200
        }
      }
    },
    "supportSurface": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "surfaceId",
        "label",
        "center",
        "normal",
        "size",
        "source"
      ],
      "properties": {
        "surfaceId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "label": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "center": {
          "$ref": "#/$defs/vec3"
        },
        "normal": {
          "$ref": "#/$defs/vec3"
        },
        "size": {
          "type": "array",
          "minItems": 2,
          "maxItems": 2,
          "prefixItems": [
            {
              "type": "number",
              "exclusiveMinimum": 0
            },
            {
              "type": "number",
              "exclusiveMinimum": 0
            }
          ],
          "items": false
        },
        "source": {
          "enum": [
            "bounds",
            "mesh",
            "manual"
          ]
        }
      }
    },
    "instance": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "instanceId",
        "assetId",
        "name",
        "transform",
        "visible",
        "castShadow",
        "receiveShadow",
        "locked",
        "placement",
        "tags"
      ],
      "properties": {
        "instanceId": {
          "type": "string",
          "format": "uuid"
        },
        "assetId": {
          "type": "string",
          "format": "uuid"
        },
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200
        },
        "transform": {
          "$ref": "#/$defs/transform"
        },
        "normalization": {
          "$ref": "#/$defs/asset/properties/normalization"
        },
        "wallImage": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "wallInstanceId",
            "assetId",
            "position",
            "size",
            "surfaceOffset",
            "preserveAspectRatio"
          ],
          "properties": {
            "wallInstanceId": {
              "type": "string",
              "format": "uuid"
            },
            "assetId": {
              "type": "string",
              "format": "uuid"
            },
            "position": {
              "$ref": "#/$defs/length2"
            },
            "size": {
              "$ref": "#/$defs/positiveLength2"
            },
            "surfaceOffset": {
              "type": "number",
              "minimum": 0
            },
            "preserveAspectRatio": {
              "type": "boolean"
            },
            "surface": {
              "enum": [
                "wall",
                "floor"
              ]
            }
          }
        },
        "visible": {
          "type": "boolean"
        },
        "castShadow": {
          "type": "boolean"
        },
        "receiveShadow": {
          "type": "boolean"
        },
        "locked": {
          "type": "boolean"
        },
        "placement": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "source",
            "supportingInstanceId",
            "supportSurfaceId",
            "solverStatus"
          ],
          "properties": {
            "source": {
              "enum": [
                "solver",
                "manual",
                "imported"
              ]
            },
            "supportingInstanceId": {
              "type": [
                "string",
                "null"
              ],
              "format": "uuid"
            },
            "supportSurfaceId": {
              "type": [
                "string",
                "null"
              ],
              "maxLength": 100
            },
            "solverStatus": {
              "enum": [
                "placed",
                "fallback",
                "unresolved"
              ]
            }
          }
        },
        "tags": {
          "type": "array",
          "maxItems": 50,
          "uniqueItems": true,
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          }
        },
        "materialId": {
          "type": "string",
          "format": "uuid"
        }
      }
    },
    "resolvedRelation": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "relationId",
        "type",
        "subjectInstanceId",
        "targetInstanceId",
        "strength",
        "status",
        "message"
      ],
      "properties": {
        "relationId": {
          "type": "string",
          "format": "uuid"
        },
        "type": {
          "enum": [
            "ON",
            "NEAR",
            "LEFT_OF",
            "RIGHT_OF",
            "IN_FRONT_OF",
            "BEHIND",
            "FACING",
            "CENTERED_ON",
            "ALIGNED_WITH",
            "AGAINST_WALL",
            "KEEP_CLEAR_OF"
          ]
        },
        "subjectInstanceId": {
          "type": "string",
          "format": "uuid"
        },
        "targetInstanceId": {
          "type": [
            "string",
            "null"
          ],
          "format": "uuid"
        },
        "strength": {
          "enum": [
            "hard",
            "soft"
          ]
        },
        "status": {
          "enum": [
            "satisfied",
            "degraded",
            "unresolved"
          ]
        },
        "message": {
          "type": "string",
          "maxLength": 500
        }
      }
    },
    "diagnostic": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "code",
        "severity",
        "message",
        "instanceIds",
        "relationId"
      ],
      "properties": {
        "code": {
          "type": "string",
          "pattern": "^[A-Z][A-Z0-9_]{1,63}$"
        },
        "severity": {
          "enum": [
            "info",
            "warning",
            "error"
          ]
        },
        "message": {
          "type": "string",
          "minLength": 1,
          "maxLength": 1000
        },
        "instanceIds": {
          "type": "array",
          "maxItems": 50,
          "uniqueItems": true,
          "items": {
            "type": "string",
            "format": "uuid"
          }
        },
        "relationId": {
          "type": [
            "string",
            "null"
          ],
          "format": "uuid"
        },
        "measurements": {
          "type": "object",
          "additionalProperties": {
            "type": "number"
          }
        }
      }
    },
    "camera": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "type",
        "position",
        "target",
        "up",
        "fovDegrees",
        "near",
        "far"
      ],
      "properties": {
        "type": {
          "const": "perspective"
        },
        "position": {
          "$ref": "#/$defs/vec3"
        },
        "target": {
          "$ref": "#/$defs/vec3"
        },
        "up": {
          "$ref": "#/$defs/vec3"
        },
        "fovDegrees": {
          "type": "number",
          "exclusiveMinimum": 1,
          "exclusiveMaximum": 179
        },
        "near": {
          "type": "number",
          "exclusiveMinimum": 0
        },
        "far": {
          "type": "number",
          "exclusiveMinimum": 0
        }
      }
    },
    "provenance": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "createdBy",
        "planner",
        "layoutEngineVersion",
        "threeVersion",
        "sourcePrompt"
      ],
      "properties": {
        "createdBy": {
          "enum": [
            "quay",
            "import"
          ]
        },
        "planner": {
          "oneOf": [
            {
              "type": "null"
            },
            {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "provider",
                "model",
                "promptTemplateVersion",
                "requestId"
              ],
              "properties": {
                "provider": {
                  "enum": [
                    "openai",
                    "fake"
                  ]
                },
                "model": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "promptTemplateVersion": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 50
                },
                "requestId": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200
                }
              }
            }
          ]
        },
        "layoutEngineVersion": {
          "type": "string",
          "minLength": 1,
          "maxLength": 50
        },
        "threeVersion": {
          "type": "string",
          "minLength": 1,
          "maxLength": 50
        },
        "sourcePrompt": {
          "type": "string",
          "maxLength": 4000
        }
      }
    }
  }
}

worldpack.schema.json

Download worldpack.schema.json

Root propertyRequiredConstraint
schemayes{"const":"quay.worldpack","type":"string"}
versionyes{"const":"1.0.0","type":"string"}
containeryes{"const":"zip-store/1","type":"string"}
worldIdyes{"type":"string"}
sceneIdyes{"type":"string"}
buildIdyes{"type":"string"}
runtimeyes{"type":"object","properties":{"scene":{"const":"2.0.0-draft.1","type":"string"},"wright":{"anyOf":[{"type":"null"},{"const":"wright.resolved/1","type":"string"}]},"experience":{"anyOf":[{"type":"null"},{"const":"1.0.0","type":"string"}]},"cinematic":{"anyOf":[{"type":"null"},{"const":"1.0.0","type":"string"}]},"capabilities":{"type":"array","items":{"type":"string"}}},"required":["scene","wright","experience","cinematic","capabilities"],"additionalProperties":false}
worldyes{"type":"string"}
topologyyes{"anyOf":[{"type":"null"},{"type":"string"}]}
experienceyes{"anyOf":[{"type":"null"},{"type":"string"}]}
cinematicyes{"anyOf":[{"type":"null"},{"type":"string"}]}
entryyes{"type":"object","properties":{"room":{"type":"string"},"state":{"anyOf":[{"type":"null"},{"type":"string"}]}},"required":["room","state"],"additionalProperties":false}
roomsyes{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"chunk":{"type":"string"},"adjacent":{"type":"array","items":{"type":"string"}},"objects":{"type":"array","items":{"type":"string"}}},"required":["id","chunk","adjacent","objects"],"additionalProperties":false}}
assetsyes{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"resource":{"type":"string"},"scope":{"anyOf":[{"const":"standard","type":"string"},{"const":"user","type":"string"},{"const":"project","type":"string"}]},"projectId":{"anyOf":[{"type":"null"},{"type":"string"}]},"manifestId":{"type":"string"}},"required":["id","resource","scope","projectId","manifestId"],"additionalProperties":false}}
audioyes{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"resource":{"type":"string"}},"required":["id","resource"],"additionalProperties":false}}
contentno{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"resource":{"type":"string"},"mediaType":{"type":"string"}},"required":["id","resource","mediaType"],"additionalProperties":false}}
metadatayes{"type":"object","properties":{"licenses":{"type":"string"},"provenance":{"type":"string"},"build":{"type":"string"}},"required":["licenses","provenance","build"],"additionalProperties":false}
profilesno{"type":"object","properties":{"desktop":{"type":"string"},"mobile":{"type":"string"}},"required":["desktop","mobile"],"additionalProperties":false}
ramsno{"type":"object","properties":{"config":{"type":"string"},"site":{"type":"object","properties":{"entry":{"type":"string"},"files":{"type":"array","items":{"type":"string"}}},"required":["entry","files"],"additionalProperties":false}},"required":["config"],"additionalProperties":false}
resourcesyes{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"hash":{"type":"string"},"bytes":{"type":"number"},"kind":{"anyOf":[{"const":"scene","type":"string"},{"const":"world","type":"string"},{"const":"topology","type":"string"},{"const":"experience","type":"string"},{"const":"cinematic","type":"string"},{"const":"glb","type":"string"},{"const":"audio","type":"string"},{"const":"image","type":"string"},{"const":"content","type":"string"},{"const":"metadata","type":"string"},{"const":"debug","type":"string"},{"const":"rams","type":"string"},{"const":"site","type":"string"}]},"encoding":{"anyOf":[{"const":"json","type":"string"},{"const":"cbor","type":"string"},{"const":"binary","type":"string"}]},"dependencies":{"type":"array","items":{"type":"string"}}},"required":["path","hash","bytes","kind","encoding","dependencies"],"additionalProperties":false}}
Complete schema including nested definitions
JSON
{
  "type": "object",
  "properties": {
    "schema": {
      "const": "quay.worldpack",
      "type": "string"
    },
    "version": {
      "const": "1.0.0",
      "type": "string"
    },
    "container": {
      "const": "zip-store/1",
      "type": "string"
    },
    "worldId": {
      "type": "string"
    },
    "sceneId": {
      "type": "string"
    },
    "buildId": {
      "type": "string"
    },
    "runtime": {
      "type": "object",
      "properties": {
        "scene": {
          "const": "2.0.0-draft.1",
          "type": "string"
        },
        "wright": {
          "anyOf": [
            {
              "type": "null"
            },
            {
              "const": "wright.resolved/1",
              "type": "string"
            }
          ]
        },
        "experience": {
          "anyOf": [
            {
              "type": "null"
            },
            {
              "const": "1.0.0",
              "type": "string"
            }
          ]
        },
        "cinematic": {
          "anyOf": [
            {
              "type": "null"
            },
            {
              "const": "1.0.0",
              "type": "string"
            }
          ]
        },
        "capabilities": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "scene",
        "wright",
        "experience",
        "cinematic",
        "capabilities"
      ],
      "additionalProperties": false
    },
    "world": {
      "type": "string"
    },
    "topology": {
      "anyOf": [
        {
          "type": "null"
        },
        {
          "type": "string"
        }
      ]
    },
    "experience": {
      "anyOf": [
        {
          "type": "null"
        },
        {
          "type": "string"
        }
      ]
    },
    "cinematic": {
      "anyOf": [
        {
          "type": "null"
        },
        {
          "type": "string"
        }
      ]
    },
    "entry": {
      "type": "object",
      "properties": {
        "room": {
          "type": "string"
        },
        "state": {
          "anyOf": [
            {
              "type": "null"
            },
            {
              "type": "string"
            }
          ]
        }
      },
      "required": [
        "room",
        "state"
      ],
      "additionalProperties": false
    },
    "rooms": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "chunk": {
            "type": "string"
          },
          "adjacent": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "objects": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "id",
          "chunk",
          "adjacent",
          "objects"
        ],
        "additionalProperties": false
      }
    },
    "assets": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "resource": {
            "type": "string"
          },
          "scope": {
            "anyOf": [
              {
                "const": "standard",
                "type": "string"
              },
              {
                "const": "user",
                "type": "string"
              },
              {
                "const": "project",
                "type": "string"
              }
            ]
          },
          "projectId": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "manifestId": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "resource",
          "scope",
          "projectId",
          "manifestId"
        ],
        "additionalProperties": false
      }
    },
    "audio": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "resource": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "resource"
        ],
        "additionalProperties": false
      }
    },
    "content": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "resource": {
            "type": "string"
          },
          "mediaType": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "resource",
          "mediaType"
        ],
        "additionalProperties": false
      }
    },
    "metadata": {
      "type": "object",
      "properties": {
        "licenses": {
          "type": "string"
        },
        "provenance": {
          "type": "string"
        },
        "build": {
          "type": "string"
        }
      },
      "required": [
        "licenses",
        "provenance",
        "build"
      ],
      "additionalProperties": false
    },
    "profiles": {
      "type": "object",
      "properties": {
        "desktop": {
          "type": "string"
        },
        "mobile": {
          "type": "string"
        }
      },
      "required": [
        "desktop",
        "mobile"
      ],
      "additionalProperties": false
    },
    "rams": {
      "type": "object",
      "properties": {
        "config": {
          "type": "string"
        },
        "site": {
          "type": "object",
          "properties": {
            "entry": {
              "type": "string"
            },
            "files": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "required": [
            "entry",
            "files"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "config"
      ],
      "additionalProperties": false
    },
    "resources": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "path": {
            "type": "string"
          },
          "hash": {
            "type": "string"
          },
          "bytes": {
            "type": "number"
          },
          "kind": {
            "anyOf": [
              {
                "const": "scene",
                "type": "string"
              },
              {
                "const": "world",
                "type": "string"
              },
              {
                "const": "topology",
                "type": "string"
              },
              {
                "const": "experience",
                "type": "string"
              },
              {
                "const": "cinematic",
                "type": "string"
              },
              {
                "const": "glb",
                "type": "string"
              },
              {
                "const": "audio",
                "type": "string"
              },
              {
                "const": "image",
                "type": "string"
              },
              {
                "const": "content",
                "type": "string"
              },
              {
                "const": "metadata",
                "type": "string"
              },
              {
                "const": "debug",
                "type": "string"
              },
              {
                "const": "rams",
                "type": "string"
              },
              {
                "const": "site",
                "type": "string"
              }
            ]
          },
          "encoding": {
            "anyOf": [
              {
                "const": "json",
                "type": "string"
              },
              {
                "const": "cbor",
                "type": "string"
              },
              {
                "const": "binary",
                "type": "string"
              }
            ]
          },
          "dependencies": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "path",
          "hash",
          "bytes",
          "kind",
          "encoding",
          "dependencies"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "schema",
    "version",
    "container",
    "worldId",
    "sceneId",
    "buildId",
    "runtime",
    "world",
    "topology",
    "experience",
    "cinematic",
    "entry",
    "rooms",
    "assets",
    "audio",
    "metadata",
    "resources"
  ],
  "additionalProperties": false
}

wright.schema.json

Download wright.schema.json

Root propertyRequiredConstraint
versionyes{"const":"wright.world/1","type":"string"}
identityyes{"type":"string"}
roomsyes{"type":"array","items":{"type":"object","properties":{"furnishing":{"type":"object","properties":{"roomProgram":{"type":"object","properties":{"repair":{"type":"object","properties":{"stage":{"const":"semantic","type":"string"},"attempts":{"type":"number"},"strategy":{"anyOf":[{"const":"none","type":"string"},{"const":"bounded-semantic-revision","type":"string"}]},"initialFailures":{"type":"array","items":{"type":"string"}},"finalState":{"const":"accepted","type":"string"},"relaxedConstraints":{"type":"array","items":{"type":"string"}}},"required":["stage","attempts","strategy","initialFailures","finalState","relaxedConstraints"],"additionalProperties":false},"enrichment":{"type":"object","properties":{"provider":{"type":"string"},"model":{"type":"string"},"version":{"type":"string"}},"required":["provider","model","version"],"additionalProperties":false},"intent":{"type":"object","properties":{"version":{"const":"qway.room-program/1","type":"string"},"archetype":{"type":"string"},"archetypeRevision":{"type":"string"},"purpose":{"type":"string"},"capacity":{"type":"number"},"style":{"type":"string"},"zones":{"type":"array","items":{"type":"object","properties":{"reference":{"type":"string"},"purpose":{"type":"string"},"priority":{"anyOf":[{"const":"required","type":"string"},{"const":"recommended","type":"string"},{"const":"optional","type":"string"}]}},"required":["reference","purpose","priority"],"additionalProperties":false}},"needs":{"type":"array","items":{"type":"object","properties":{"reference":{"type":"string"},"category":{"type":"string"},"zone":{"type":"string"},"quantity":{"type":"number"},"capacity":{"anyOf":[{"type":"null"},{"type":"number"}]},"priority":{"anyOf":[{"const":"required","type":"string"},{"const":"recommended","type":"string"},{"const":"optional","type":"string"}]},"assetAlias":{"anyOf":[{"type":"null"},{"type":"string"}]},"placement":{"anyOf":[{"const":"auto","type":"string"},{"const":"center","type":"string"},{"const":"perimeter","type":"string"}]},"evidence":{"type":"object","properties":{"origin":{"anyOf":[{"const":"explicit","type":"string"},{"const":"archetype","type":"string"},{"const":"inferred","type":"string"}]},"confidence":{"type":"number"},"explanation":{"type":"string"}},"required":["origin","confidence","explanation"],"additionalProperties":false}},"required":["reference","category","zone","quantity","capacity","priority","assetAlias","placement","evidence"],"additionalProperties":false}},"rules":{"type":"array","items":{"type":"object","properties":{"reference":{"type":"string"},"kind":{"anyOf":[{"const":"on","type":"string"},{"const":"seating","type":"string"},{"const":"beside","type":"string"},{"const":"facing","type":"string"},{"const":"near-window","type":"string"},{"const":"wall-alignment","type":"string"},{"const":"interior","type":"string"},{"const":"access","type":"string"},{"const":"visibility","type":"string"},{"const":"clearance","type":"string"},{"const":"circulation","type":"string"},{"const":"minimum-dimensions","type":"string"},{"const":"unsupported","type":"string"}]},"subjects":{"type":"array","items":{"type":"string"}},"target":{"anyOf":[{"type":"null"},{"type":"string"}]},"priority":{"anyOf":[{"const":"required","type":"string"},{"const":"recommended","type":"string"},{"const":"optional","type":"string"}]},"strength":{"anyOf":[{"const":"hard","type":"string"},{"const":"soft","type":"string"}]},"clearanceM":{"anyOf":[{"type":"null"},{"type":"number"}]},"description":{"type":"string"},"evidence":{"type":"object","properties":{"origin":{"anyOf":[{"const":"explicit","type":"string"},{"const":"archetype","type":"string"},{"const":"inferred","type":"string"}]},"confidence":{"type":"number"},"explanation":{"type":"string"}},"required":["origin","confidence","explanation"],"additionalProperties":false}},"required":["reference","kind","subjects","target","priority","strength","clearanceM","description","evidence"],"additionalProperties":false}},"architecture":{"type":"array","items":{"type":"object","properties":{"reference":{"type":"string"},"kind":{"anyOf":[{"const":"window","type":"string"},{"const":"portal","type":"string"},{"const":"wall-run","type":"string"},{"const":"open-center","type":"string"},{"const":"natural-light","type":"string"},{"const":"ceiling-light","type":"string"}]},"quantity":{"type":"number"},"priority":{"anyOf":[{"const":"required","type":"string"},{"const":"recommended","type":"string"},{"const":"optional","type":"string"}]},"evidence":{"type":"object","properties":{"origin":{"anyOf":[{"const":"explicit","type":"string"},{"const":"archetype","type":"string"},{"const":"inferred","type":"string"}]},"confidence":{"type":"number"},"explanation":{"type":"string"}},"required":["origin","confidence","explanation"],"additionalProperties":false}},"required":["reference","kind","quantity","priority","evidence"],"additionalProperties":false}},"exclusions":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"evidence":{"type":"object","properties":{"origin":{"const":"explicit","type":"string"},"confidence":{"type":"number"},"explanation":{"type":"string"}},"required":["origin","confidence","explanation"],"additionalProperties":false}},"required":["category","evidence"],"additionalProperties":false}},"uncertainties":{"type":"array","items":{"type":"string"}}},"required":["version","archetype","archetypeRevision","purpose","capacity","style","zones","needs","rules","architecture","exclusions","uncertainties"],"additionalProperties":false},"archetypeSnapshot":{"type":"object","properties":{"version":{"const":"qway.room-program/1","type":"string"},"archetype":{"type":"string"},"archetypeRevision":{"type":"string"},"purpose":{"type":"string"},"capacity":{"type":"number"},"style":{"type":"string"},"zones":{"type":"array","items":{"type":"object","properties":{"reference":{"type":"string"},"purpose":{"type":"string"},"priority":{"anyOf":[{"const":"required","type":"string"},{"const":"recommended","type":"string"},{"const":"optional","type":"string"}]}},"required":["reference","purpose","priority"],"additionalProperties":false}},"needs":{"type":"array","items":{"type":"object","properties":{"reference":{"type":"string"},"category":{"type":"string"},"zone":{"type":"string"},"quantity":{"type":"number"},"capacity":{"anyOf":[{"type":"null"},{"type":"number"}]},"priority":{"anyOf":[{"const":"required","type":"string"},{"const":"recommended","type":"string"},{"const":"optional","type":"string"}]},"assetAlias":{"anyOf":[{"type":"null"},{"type":"string"}]},"placement":{"anyOf":[{"const":"auto","type":"string"},{"const":"center","type":"string"},{"const":"perimeter","type":"string"}]},"evidence":{"type":"object","properties":{"origin":{"anyOf":[{"const":"explicit","type":"string"},{"const":"archetype","type":"string"},{"const":"inferred","type":"string"}]},"confidence":{"type":"number"},"explanation":{"type":"string"}},"required":["origin","confidence","explanation"],"additionalProperties":false}},"required":["reference","category","zone","quantity","capacity","priority","assetAlias","placement","evidence"],"additionalProperties":false}},"rules":{"type":"array","items":{"type":"object","properties":{"reference":{"type":"string"},"kind":{"anyOf":[{"const":"on","type":"string"},{"const":"seating","type":"string"},{"const":"beside","type":"string"},{"const":"facing","type":"string"},{"const":"near-window","type":"string"},{"const":"wall-alignment","type":"string"},{"const":"interior","type":"string"},{"const":"access","type":"string"},{"const":"visibility","type":"string"},{"const":"clearance","type":"string"},{"const":"circulation","type":"string"},{"const":"minimum-dimensions","type":"string"},{"const":"unsupported","type":"string"}]},"subjects":{"type":"array","items":{"type":"string"}},"target":{"anyOf":[{"type":"null"},{"type":"string"}]},"priority":{"anyOf":[{"const":"required","type":"string"},{"const":"recommended","type":"string"},{"const":"optional","type":"string"}]},"strength":{"anyOf":[{"const":"hard","type":"string"},{"const":"soft","type":"string"}]},"clearanceM":{"anyOf":[{"type":"null"},{"type":"number"}]},"description":{"type":"string"},"evidence":{"type":"object","properties":{"origin":{"anyOf":[{"const":"explicit","type":"string"},{"const":"archetype","type":"string"},{"const":"inferred","type":"string"}]},"confidence":{"type":"number"},"explanation":{"type":"string"}},"required":["origin","confidence","explanation"],"additionalProperties":false}},"required":["reference","kind","subjects","target","priority","strength","clearanceM","description","evidence"],"additionalProperties":false}},"architecture":{"type":"array","items":{"type":"object","properties":{"reference":{"type":"string"},"kind":{"anyOf":[{"const":"window","type":"string"},{"const":"portal","type":"string"},{"const":"wall-run","type":"string"},{"const":"open-center","type":"string"},{"const":"natural-light","type":"string"},{"const":"ceiling-light","type":"string"}]},"quantity":{"type":"number"},"priority":{"anyOf":[{"const":"required","type":"string"},{"const":"recommended","type":"string"},{"const":"optional","type":"string"}]},"evidence":{"type":"object","properties":{"origin":{"anyOf":[{"const":"explicit","type":"string"},{"const":"archetype","type":"string"},{"const":"inferred","type":"string"}]},"confidence":{"type":"number"},"explanation":{"type":"string"}},"required":["origin","confidence","explanation"],"additionalProperties":false}},"required":["reference","kind","quantity","priority","evidence"],"additionalProperties":false}},"exclusions":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"evidence":{"type":"object","properties":{"origin":{"const":"explicit","type":"string"},"confidence":{"type":"number"},"explanation":{"type":"string"}},"required":["origin","confidence","explanation"],"additionalProperties":false}},"required":["category","evidence"],"additionalProperties":false}},"uncertainties":{"type":"array","items":{"type":"string"}}},"required":["version","archetype","archetypeRevision","purpose","capacity","style","zones","needs","rules","architecture","exclusions","uncertainties"],"additionalProperties":false},"bindings":{"type":"object","properties":{},"required":[],"additionalProperties":{"type":"string"}}},"required":["intent","archetypeSnapshot","bindings"],"additionalProperties":false},"version":{"const":"qway.furnishing/1","type":"string"},"purpose":{"type":"string"},"capacity":{"type":"number"},"style":{"type":"string"},"needs":{"type":"array","items":{"type":"object","properties":{"identity":{"type":"string"},"category":{"type":"string"},"quantity":{"type":"number"},"capacity":{"anyOf":[{"type":"null"},{"type":"number"}]},"assetAlias":{"anyOf":[{"type":"null"},{"type":"string"}]},"placement":{"anyOf":[{"const":"auto","type":"string"},{"const":"center","type":"string"},{"const":"perimeter","type":"string"}]},"relation":{"anyOf":[{"type":"null"},{"const":"on","type":"string"},{"const":"seating","type":"string"},{"const":"near-window","type":"string"}]},"target":{"anyOf":[{"type":"null"},{"type":"string"}]},"instances":{"type":"array","items":{"type":"array","items":{"type":"string"}}}},"required":["identity","category","quantity","capacity","assetAlias","placement","relation","target","instances"],"additionalProperties":false}}},"required":["version","purpose","capacity","style","needs"],"additionalProperties":false},"identity":{"type":"string"},"alias":{"type":"string","maxLength":100},"label":{"type":"string","maxLength":200},"level":{"anyOf":[{"type":"null"},{"type":"string"}]},"parent":{"anyOf":[{"type":"null"},{"type":"string"}]},"size":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"frame":{"type":"object","properties":{"position":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"quaternion":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":4,"maxItems":4,"items":false}},"required":["position","quaternion"],"additionalProperties":false},"backdrop":{"anyOf":[{"type":"object","properties":{"identity":{"type":"string"},"semantic":{"type":"string","maxLength":200},"source":{"anyOf":[{"type":"object","properties":{"kind":{"const":"image","type":"string"},"assetId":{"type":"string"},"uri":{"type":"string"},"mediaType":{"anyOf":[{"const":"image/png","type":"string"},{"const":"image/jpeg","type":"string"},{"const":"image/webp","type":"string"}]},"sha256":{"type":"string"},"byteLength":{"type":"number"}},"required":["kind","assetId","uri","mediaType","sha256","byteLength"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"asset","type":"string"},"uri":{"type":"null"},"assetId":{"type":"string"}},"required":["kind","uri","assetId"],"additionalProperties":false}]},"side":{"anyOf":[{"const":"north","type":"string"},{"const":"south","type":"string"},{"const":"east","type":"string"},{"const":"west","type":"string"}]},"mode":{"const":"architectural","type":"string"},"fit":{"anyOf":[{"const":"cover","type":"string"},{"const":"contain","type":"string"}]},"projection":{"const":"flat","type":"string"},"distance":{"type":"number"},"lighting":{"anyOf":[{"const":"unlit","type":"string"},{"const":"lit","type":"string"}]},"enabled":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"materialId":{"type":"string"}},"required":["identity","semantic","source","side","mode","fit","projection","distance","lighting","enabled"],"additionalProperties":false},{"type":"object","properties":{"north":{"type":"object","properties":{"identity":{"type":"string"},"semantic":{"type":"string","maxLength":200},"source":{"anyOf":[{"type":"object","properties":{"kind":{"const":"image","type":"string"},"assetId":{"type":"string"},"uri":{"type":"string"},"mediaType":{"anyOf":[{"const":"image/png","type":"string"},{"const":"image/jpeg","type":"string"},{"const":"image/webp","type":"string"}]},"sha256":{"type":"string"},"byteLength":{"type":"number"}},"required":["kind","assetId","uri","mediaType","sha256","byteLength"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"asset","type":"string"},"uri":{"type":"null"},"assetId":{"type":"string"}},"required":["kind","uri","assetId"],"additionalProperties":false}]},"side":{"anyOf":[{"const":"north","type":"string"},{"const":"south","type":"string"},{"const":"east","type":"string"},{"const":"west","type":"string"}]},"mode":{"const":"architectural","type":"string"},"fit":{"anyOf":[{"const":"cover","type":"string"},{"const":"contain","type":"string"}]},"projection":{"const":"flat","type":"string"},"distance":{"type":"number"},"lighting":{"anyOf":[{"const":"unlit","type":"string"},{"const":"lit","type":"string"}]},"enabled":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"materialId":{"type":"string"}},"required":["identity","semantic","source","side","mode","fit","projection","distance","lighting","enabled"],"additionalProperties":false},"south":{"type":"object","properties":{"identity":{"type":"string"},"semantic":{"type":"string","maxLength":200},"source":{"anyOf":[{"type":"object","properties":{"kind":{"const":"image","type":"string"},"assetId":{"type":"string"},"uri":{"type":"string"},"mediaType":{"anyOf":[{"const":"image/png","type":"string"},{"const":"image/jpeg","type":"string"},{"const":"image/webp","type":"string"}]},"sha256":{"type":"string"},"byteLength":{"type":"number"}},"required":["kind","assetId","uri","mediaType","sha256","byteLength"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"asset","type":"string"},"uri":{"type":"null"},"assetId":{"type":"string"}},"required":["kind","uri","assetId"],"additionalProperties":false}]},"side":{"anyOf":[{"const":"north","type":"string"},{"const":"south","type":"string"},{"const":"east","type":"string"},{"const":"west","type":"string"}]},"mode":{"const":"architectural","type":"string"},"fit":{"anyOf":[{"const":"cover","type":"string"},{"const":"contain","type":"string"}]},"projection":{"const":"flat","type":"string"},"distance":{"type":"number"},"lighting":{"anyOf":[{"const":"unlit","type":"string"},{"const":"lit","type":"string"}]},"enabled":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"materialId":{"type":"string"}},"required":["identity","semantic","source","side","mode","fit","projection","distance","lighting","enabled"],"additionalProperties":false},"east":{"type":"object","properties":{"identity":{"type":"string"},"semantic":{"type":"string","maxLength":200},"source":{"anyOf":[{"type":"object","properties":{"kind":{"const":"image","type":"string"},"assetId":{"type":"string"},"uri":{"type":"string"},"mediaType":{"anyOf":[{"const":"image/png","type":"string"},{"const":"image/jpeg","type":"string"},{"const":"image/webp","type":"string"}]},"sha256":{"type":"string"},"byteLength":{"type":"number"}},"required":["kind","assetId","uri","mediaType","sha256","byteLength"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"asset","type":"string"},"uri":{"type":"null"},"assetId":{"type":"string"}},"required":["kind","uri","assetId"],"additionalProperties":false}]},"side":{"anyOf":[{"const":"north","type":"string"},{"const":"south","type":"string"},{"const":"east","type":"string"},{"const":"west","type":"string"}]},"mode":{"const":"architectural","type":"string"},"fit":{"anyOf":[{"const":"cover","type":"string"},{"const":"contain","type":"string"}]},"projection":{"const":"flat","type":"string"},"distance":{"type":"number"},"lighting":{"anyOf":[{"const":"unlit","type":"string"},{"const":"lit","type":"string"}]},"enabled":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"materialId":{"type":"string"}},"required":["identity","semantic","source","side","mode","fit","projection","distance","lighting","enabled"],"additionalProperties":false},"west":{"type":"object","properties":{"identity":{"type":"string"},"semantic":{"type":"string","maxLength":200},"source":{"anyOf":[{"type":"object","properties":{"kind":{"const":"image","type":"string"},"assetId":{"type":"string"},"uri":{"type":"string"},"mediaType":{"anyOf":[{"const":"image/png","type":"string"},{"const":"image/jpeg","type":"string"},{"const":"image/webp","type":"string"}]},"sha256":{"type":"string"},"byteLength":{"type":"number"}},"required":["kind","assetId","uri","mediaType","sha256","byteLength"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"asset","type":"string"},"uri":{"type":"null"},"assetId":{"type":"string"}},"required":["kind","uri","assetId"],"additionalProperties":false}]},"side":{"anyOf":[{"const":"north","type":"string"},{"const":"south","type":"string"},{"const":"east","type":"string"},{"const":"west","type":"string"}]},"mode":{"const":"architectural","type":"string"},"fit":{"anyOf":[{"const":"cover","type":"string"},{"const":"contain","type":"string"}]},"projection":{"const":"flat","type":"string"},"distance":{"type":"number"},"lighting":{"anyOf":[{"const":"unlit","type":"string"},{"const":"lit","type":"string"}]},"enabled":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"materialId":{"type":"string"}},"required":["identity","semantic","source","side","mode","fit","projection","distance","lighting","enabled"],"additionalProperties":false}},"required":[],"additionalProperties":false}]}},"required":["identity","alias","label","level","parent","size","frame"],"additionalProperties":false}}
levelsyes{"type":"array","items":{"type":"object","properties":{"identity":{"type":"string"},"label":{"type":"string"}},"required":["identity","label"],"additionalProperties":false}}
portalsyes{"type":"array","items":{"type":"object","properties":{"identity":{"type":"string"},"alias":{"type":"string","maxLength":100},"from":{"type":"string"},"to":{"type":"string"},"frame":{"type":"object","properties":{"position":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"quaternion":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":4,"maxItems":4,"items":false}},"required":["position","quaternion"],"additionalProperties":false},"width":{"type":"number"},"height":{"type":"number"},"traversable":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"door":{"anyOf":[{"type":"null"},{"type":"string"}]}},"required":["identity","alias","from","to","frame","width","height","traversable","door"],"additionalProperties":false}}
entrancesno{"type":"array","items":{"type":"object","properties":{"identity":{"type":"string"},"alias":{"type":"string","maxLength":100},"room":{"type":"string"},"frame":{"type":"object","properties":{"position":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":3,"maxItems":3,"items":false},"quaternion":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}],"minItems":4,"maxItems":4,"items":false}},"required":["position","quaternion"],"additionalProperties":false},"width":{"type":"number"},"height":{"type":"number"},"traversable":{"anyOf":[{"const":false,"type":"boolean"},{"const":true,"type":"boolean"}]},"door":{"anyOf":[{"type":"null"},{"type":"string"}]}},"required":["identity","alias","room","frame","width","height","traversable","door"],"additionalProperties":false}}
membershipyes{"type":"object","properties":{},"required":[],"additionalProperties":{"type":"string"}}
Complete schema including nested definitions
JSON
{
  "type": "object",
  "properties": {
    "version": {
      "const": "wright.world/1",
      "type": "string"
    },
    "identity": {
      "type": "string"
    },
    "rooms": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "furnishing": {
            "type": "object",
            "properties": {
              "roomProgram": {
                "type": "object",
                "properties": {
                  "repair": {
                    "type": "object",
                    "properties": {
                      "stage": {
                        "const": "semantic",
                        "type": "string"
                      },
                      "attempts": {
                        "type": "number"
                      },
                      "strategy": {
                        "anyOf": [
                          {
                            "const": "none",
                            "type": "string"
                          },
                          {
                            "const": "bounded-semantic-revision",
                            "type": "string"
                          }
                        ]
                      },
                      "initialFailures": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "finalState": {
                        "const": "accepted",
                        "type": "string"
                      },
                      "relaxedConstraints": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    },
                    "required": [
                      "stage",
                      "attempts",
                      "strategy",
                      "initialFailures",
                      "finalState",
                      "relaxedConstraints"
                    ],
                    "additionalProperties": false
                  },
                  "enrichment": {
                    "type": "object",
                    "properties": {
                      "provider": {
                        "type": "string"
                      },
                      "model": {
                        "type": "string"
                      },
                      "version": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "provider",
                      "model",
                      "version"
                    ],
                    "additionalProperties": false
                  },
                  "intent": {
                    "type": "object",
                    "properties": {
                      "version": {
                        "const": "qway.room-program/1",
                        "type": "string"
                      },
                      "archetype": {
                        "type": "string"
                      },
                      "archetypeRevision": {
                        "type": "string"
                      },
                      "purpose": {
                        "type": "string"
                      },
                      "capacity": {
                        "type": "number"
                      },
                      "style": {
                        "type": "string"
                      },
                      "zones": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "reference": {
                              "type": "string"
                            },
                            "purpose": {
                              "type": "string"
                            },
                            "priority": {
                              "anyOf": [
                                {
                                  "const": "required",
                                  "type": "string"
                                },
                                {
                                  "const": "recommended",
                                  "type": "string"
                                },
                                {
                                  "const": "optional",
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "required": [
                            "reference",
                            "purpose",
                            "priority"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "needs": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "reference": {
                              "type": "string"
                            },
                            "category": {
                              "type": "string"
                            },
                            "zone": {
                              "type": "string"
                            },
                            "quantity": {
                              "type": "number"
                            },
                            "capacity": {
                              "anyOf": [
                                {
                                  "type": "null"
                                },
                                {
                                  "type": "number"
                                }
                              ]
                            },
                            "priority": {
                              "anyOf": [
                                {
                                  "const": "required",
                                  "type": "string"
                                },
                                {
                                  "const": "recommended",
                                  "type": "string"
                                },
                                {
                                  "const": "optional",
                                  "type": "string"
                                }
                              ]
                            },
                            "assetAlias": {
                              "anyOf": [
                                {
                                  "type": "null"
                                },
                                {
                                  "type": "string"
                                }
                              ]
                            },
                            "placement": {
                              "anyOf": [
                                {
                                  "const": "auto",
                                  "type": "string"
                                },
                                {
                                  "const": "center",
                                  "type": "string"
                                },
                                {
                                  "const": "perimeter",
                                  "type": "string"
                                }
                              ]
                            },
                            "evidence": {
                              "type": "object",
                              "properties": {
                                "origin": {
                                  "anyOf": [
                                    {
                                      "const": "explicit",
                                      "type": "string"
                                    },
                                    {
                                      "const": "archetype",
                                      "type": "string"
                                    },
                                    {
                                      "const": "inferred",
                                      "type": "string"
                                    }
                                  ]
                                },
                                "confidence": {
                                  "type": "number"
                                },
                                "explanation": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "origin",
                                "confidence",
                                "explanation"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "reference",
                            "category",
                            "zone",
                            "quantity",
                            "capacity",
                            "priority",
                            "assetAlias",
                            "placement",
                            "evidence"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "rules": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "reference": {
                              "type": "string"
                            },
                            "kind": {
                              "anyOf": [
                                {
                                  "const": "on",
                                  "type": "string"
                                },
                                {
                                  "const": "seating",
                                  "type": "string"
                                },
                                {
                                  "const": "beside",
                                  "type": "string"
                                },
                                {
                                  "const": "facing",
                                  "type": "string"
                                },
                                {
                                  "const": "near-window",
                                  "type": "string"
                                },
                                {
                                  "const": "wall-alignment",
                                  "type": "string"
                                },
                                {
                                  "const": "interior",
                                  "type": "string"
                                },
                                {
                                  "const": "access",
                                  "type": "string"
                                },
                                {
                                  "const": "visibility",
                                  "type": "string"
                                },
                                {
                                  "const": "clearance",
                                  "type": "string"
                                },
                                {
                                  "const": "circulation",
                                  "type": "string"
                                },
                                {
                                  "const": "minimum-dimensions",
                                  "type": "string"
                                },
                                {
                                  "const": "unsupported",
                                  "type": "string"
                                }
                              ]
                            },
                            "subjects": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "target": {
                              "anyOf": [
                                {
                                  "type": "null"
                                },
                                {
                                  "type": "string"
                                }
                              ]
                            },
                            "priority": {
                              "anyOf": [
                                {
                                  "const": "required",
                                  "type": "string"
                                },
                                {
                                  "const": "recommended",
                                  "type": "string"
                                },
                                {
                                  "const": "optional",
                                  "type": "string"
                                }
                              ]
                            },
                            "strength": {
                              "anyOf": [
                                {
                                  "const": "hard",
                                  "type": "string"
                                },
                                {
                                  "const": "soft",
                                  "type": "string"
                                }
                              ]
                            },
                            "clearanceM": {
                              "anyOf": [
                                {
                                  "type": "null"
                                },
                                {
                                  "type": "number"
                                }
                              ]
                            },
                            "description": {
                              "type": "string"
                            },
                            "evidence": {
                              "type": "object",
                              "properties": {
                                "origin": {
                                  "anyOf": [
                                    {
                                      "const": "explicit",
                                      "type": "string"
                                    },
                                    {
                                      "const": "archetype",
                                      "type": "string"
                                    },
                                    {
                                      "const": "inferred",
                                      "type": "string"
                                    }
                                  ]
                                },
                                "confidence": {
                                  "type": "number"
                                },
                                "explanation": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "origin",
                                "confidence",
                                "explanation"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "reference",
                            "kind",
                            "subjects",
                            "target",
                            "priority",
                            "strength",
                            "clearanceM",
                            "description",
                            "evidence"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "architecture": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "reference": {
                              "type": "string"
                            },
                            "kind": {
                              "anyOf": [
                                {
                                  "const": "window",
                                  "type": "string"
                                },
                                {
                                  "const": "portal",
                                  "type": "string"
                                },
                                {
                                  "const": "wall-run",
                                  "type": "string"
                                },
                                {
                                  "const": "open-center",
                                  "type": "string"
                                },
                                {
                                  "const": "natural-light",
                                  "type": "string"
                                },
                                {
                                  "const": "ceiling-light",
                                  "type": "string"
                                }
                              ]
                            },
                            "quantity": {
                              "type": "number"
                            },
                            "priority": {
                              "anyOf": [
                                {
                                  "const": "required",
                                  "type": "string"
                                },
                                {
                                  "const": "recommended",
                                  "type": "string"
                                },
                                {
                                  "const": "optional",
                                  "type": "string"
                                }
                              ]
                            },
                            "evidence": {
                              "type": "object",
                              "properties": {
                                "origin": {
                                  "anyOf": [
                                    {
                                      "const": "explicit",
                                      "type": "string"
                                    },
                                    {
                                      "const": "archetype",
                                      "type": "string"
                                    },
                                    {
                                      "const": "inferred",
                                      "type": "string"
                                    }
                                  ]
                                },
                                "confidence": {
                                  "type": "number"
                                },
                                "explanation": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "origin",
                                "confidence",
                                "explanation"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "reference",
                            "kind",
                            "quantity",
                            "priority",
                            "evidence"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "exclusions": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "category": {
                              "type": "string"
                            },
                            "evidence": {
                              "type": "object",
                              "properties": {
                                "origin": {
                                  "const": "explicit",
                                  "type": "string"
                                },
                                "confidence": {
                                  "type": "number"
                                },
                                "explanation": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "origin",
                                "confidence",
                                "explanation"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "category",
                            "evidence"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "uncertainties": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    },
                    "required": [
                      "version",
                      "archetype",
                      "archetypeRevision",
                      "purpose",
                      "capacity",
                      "style",
                      "zones",
                      "needs",
                      "rules",
                      "architecture",
                      "exclusions",
                      "uncertainties"
                    ],
                    "additionalProperties": false
                  },
                  "archetypeSnapshot": {
                    "type": "object",
                    "properties": {
                      "version": {
                        "const": "qway.room-program/1",
                        "type": "string"
                      },
                      "archetype": {
                        "type": "string"
                      },
                      "archetypeRevision": {
                        "type": "string"
                      },
                      "purpose": {
                        "type": "string"
                      },
                      "capacity": {
                        "type": "number"
                      },
                      "style": {
                        "type": "string"
                      },
                      "zones": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "reference": {
                              "type": "string"
                            },
                            "purpose": {
                              "type": "string"
                            },
                            "priority": {
                              "anyOf": [
                                {
                                  "const": "required",
                                  "type": "string"
                                },
                                {
                                  "const": "recommended",
                                  "type": "string"
                                },
                                {
                                  "const": "optional",
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "required": [
                            "reference",
                            "purpose",
                            "priority"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "needs": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "reference": {
                              "type": "string"
                            },
                            "category": {
                              "type": "string"
                            },
                            "zone": {
                              "type": "string"
                            },
                            "quantity": {
                              "type": "number"
                            },
                            "capacity": {
                              "anyOf": [
                                {
                                  "type": "null"
                                },
                                {
                                  "type": "number"
                                }
                              ]
                            },
                            "priority": {
                              "anyOf": [
                                {
                                  "const": "required",
                                  "type": "string"
                                },
                                {
                                  "const": "recommended",
                                  "type": "string"
                                },
                                {
                                  "const": "optional",
                                  "type": "string"
                                }
                              ]
                            },
                            "assetAlias": {
                              "anyOf": [
                                {
                                  "type": "null"
                                },
                                {
                                  "type": "string"
                                }
                              ]
                            },
                            "placement": {
                              "anyOf": [
                                {
                                  "const": "auto",
                                  "type": "string"
                                },
                                {
                                  "const": "center",
                                  "type": "string"
                                },
                                {
                                  "const": "perimeter",
                                  "type": "string"
                                }
                              ]
                            },
                            "evidence": {
                              "type": "object",
                              "properties": {
                                "origin": {
                                  "anyOf": [
                                    {
                                      "const": "explicit",
                                      "type": "string"
                                    },
                                    {
                                      "const": "archetype",
                                      "type": "string"
                                    },
                                    {
                                      "const": "inferred",
                                      "type": "string"
                                    }
                                  ]
                                },
                                "confidence": {
                                  "type": "number"
                                },
                                "explanation": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "origin",
                                "confidence",
                                "explanation"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "reference",
                            "category",
                            "zone",
                            "quantity",
                            "capacity",
                            "priority",
                            "assetAlias",
                            "placement",
                            "evidence"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "rules": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "reference": {
                              "type": "string"
                            },
                            "kind": {
                              "anyOf": [
                                {
                                  "const": "on",
                                  "type": "string"
                                },
                                {
                                  "const": "seating",
                                  "type": "string"
                                },
                                {
                                  "const": "beside",
                                  "type": "string"
                                },
                                {
                                  "const": "facing",
                                  "type": "string"
                                },
                                {
                                  "const": "near-window",
                                  "type": "string"
                                },
                                {
                                  "const": "wall-alignment",
                                  "type": "string"
                                },
                                {
                                  "const": "interior",
                                  "type": "string"
                                },
                                {
                                  "const": "access",
                                  "type": "string"
                                },
                                {
                                  "const": "visibility",
                                  "type": "string"
                                },
                                {
                                  "const": "clearance",
                                  "type": "string"
                                },
                                {
                                  "const": "circulation",
                                  "type": "string"
                                },
                                {
                                  "const": "minimum-dimensions",
                                  "type": "string"
                                },
                                {
                                  "const": "unsupported",
                                  "type": "string"
                                }
                              ]
                            },
                            "subjects": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "target": {
                              "anyOf": [
                                {
                                  "type": "null"
                                },
                                {
                                  "type": "string"
                                }
                              ]
                            },
                            "priority": {
                              "anyOf": [
                                {
                                  "const": "required",
                                  "type": "string"
                                },
                                {
                                  "const": "recommended",
                                  "type": "string"
                                },
                                {
                                  "const": "optional",
                                  "type": "string"
                                }
                              ]
                            },
                            "strength": {
                              "anyOf": [
                                {
                                  "const": "hard",
                                  "type": "string"
                                },
                                {
                                  "const": "soft",
                                  "type": "string"
                                }
                              ]
                            },
                            "clearanceM": {
                              "anyOf": [
                                {
                                  "type": "null"
                                },
                                {
                                  "type": "number"
                                }
                              ]
                            },
                            "description": {
                              "type": "string"
                            },
                            "evidence": {
                              "type": "object",
                              "properties": {
                                "origin": {
                                  "anyOf": [
                                    {
                                      "const": "explicit",
                                      "type": "string"
                                    },
                                    {
                                      "const": "archetype",
                                      "type": "string"
                                    },
                                    {
                                      "const": "inferred",
                                      "type": "string"
                                    }
                                  ]
                                },
                                "confidence": {
                                  "type": "number"
                                },
                                "explanation": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "origin",
                                "confidence",
                                "explanation"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "reference",
                            "kind",
                            "subjects",
                            "target",
                            "priority",
                            "strength",
                            "clearanceM",
                            "description",
                            "evidence"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "architecture": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "reference": {
                              "type": "string"
                            },
                            "kind": {
                              "anyOf": [
                                {
                                  "const": "window",
                                  "type": "string"
                                },
                                {
                                  "const": "portal",
                                  "type": "string"
                                },
                                {
                                  "const": "wall-run",
                                  "type": "string"
                                },
                                {
                                  "const": "open-center",
                                  "type": "string"
                                },
                                {
                                  "const": "natural-light",
                                  "type": "string"
                                },
                                {
                                  "const": "ceiling-light",
                                  "type": "string"
                                }
                              ]
                            },
                            "quantity": {
                              "type": "number"
                            },
                            "priority": {
                              "anyOf": [
                                {
                                  "const": "required",
                                  "type": "string"
                                },
                                {
                                  "const": "recommended",
                                  "type": "string"
                                },
                                {
                                  "const": "optional",
                                  "type": "string"
                                }
                              ]
                            },
                            "evidence": {
                              "type": "object",
                              "properties": {
                                "origin": {
                                  "anyOf": [
                                    {
                                      "const": "explicit",
                                      "type": "string"
                                    },
                                    {
                                      "const": "archetype",
                                      "type": "string"
                                    },
                                    {
                                      "const": "inferred",
                                      "type": "string"
                                    }
                                  ]
                                },
                                "confidence": {
                                  "type": "number"
                                },
                                "explanation": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "origin",
                                "confidence",
                                "explanation"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "reference",
                            "kind",
                            "quantity",
                            "priority",
                            "evidence"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "exclusions": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "category": {
                              "type": "string"
                            },
                            "evidence": {
                              "type": "object",
                              "properties": {
                                "origin": {
                                  "const": "explicit",
                                  "type": "string"
                                },
                                "confidence": {
                                  "type": "number"
                                },
                                "explanation": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "origin",
                                "confidence",
                                "explanation"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "category",
                            "evidence"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "uncertainties": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    },
                    "required": [
                      "version",
                      "archetype",
                      "archetypeRevision",
                      "purpose",
                      "capacity",
                      "style",
                      "zones",
                      "needs",
                      "rules",
                      "architecture",
                      "exclusions",
                      "uncertainties"
                    ],
                    "additionalProperties": false
                  },
                  "bindings": {
                    "type": "object",
                    "properties": {},
                    "required": [],
                    "additionalProperties": {
                      "type": "string"
                    }
                  }
                },
                "required": [
                  "intent",
                  "archetypeSnapshot",
                  "bindings"
                ],
                "additionalProperties": false
              },
              "version": {
                "const": "qway.furnishing/1",
                "type": "string"
              },
              "purpose": {
                "type": "string"
              },
              "capacity": {
                "type": "number"
              },
              "style": {
                "type": "string"
              },
              "needs": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "identity": {
                      "type": "string"
                    },
                    "category": {
                      "type": "string"
                    },
                    "quantity": {
                      "type": "number"
                    },
                    "capacity": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "number"
                        }
                      ]
                    },
                    "assetAlias": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "string"
                        }
                      ]
                    },
                    "placement": {
                      "anyOf": [
                        {
                          "const": "auto",
                          "type": "string"
                        },
                        {
                          "const": "center",
                          "type": "string"
                        },
                        {
                          "const": "perimeter",
                          "type": "string"
                        }
                      ]
                    },
                    "relation": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "const": "on",
                          "type": "string"
                        },
                        {
                          "const": "seating",
                          "type": "string"
                        },
                        {
                          "const": "near-window",
                          "type": "string"
                        }
                      ]
                    },
                    "target": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "string"
                        }
                      ]
                    },
                    "instances": {
                      "type": "array",
                      "items": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "required": [
                    "identity",
                    "category",
                    "quantity",
                    "capacity",
                    "assetAlias",
                    "placement",
                    "relation",
                    "target",
                    "instances"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "required": [
              "version",
              "purpose",
              "capacity",
              "style",
              "needs"
            ],
            "additionalProperties": false
          },
          "identity": {
            "type": "string"
          },
          "alias": {
            "type": "string",
            "maxLength": 100
          },
          "label": {
            "type": "string",
            "maxLength": 200
          },
          "level": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "parent": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "size": {
            "type": "array",
            "prefixItems": [
              {
                "type": "number"
              },
              {
                "type": "number"
              },
              {
                "type": "number"
              }
            ],
            "minItems": 3,
            "maxItems": 3,
            "items": false
          },
          "frame": {
            "type": "object",
            "properties": {
              "position": {
                "type": "array",
                "prefixItems": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ],
                "minItems": 3,
                "maxItems": 3,
                "items": false
              },
              "quaternion": {
                "type": "array",
                "prefixItems": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ],
                "minItems": 4,
                "maxItems": 4,
                "items": false
              }
            },
            "required": [
              "position",
              "quaternion"
            ],
            "additionalProperties": false
          },
          "backdrop": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "identity": {
                    "type": "string"
                  },
                  "semantic": {
                    "type": "string",
                    "maxLength": 200
                  },
                  "source": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "const": "image",
                            "type": "string"
                          },
                          "assetId": {
                            "type": "string"
                          },
                          "uri": {
                            "type": "string"
                          },
                          "mediaType": {
                            "anyOf": [
                              {
                                "const": "image/png",
                                "type": "string"
                              },
                              {
                                "const": "image/jpeg",
                                "type": "string"
                              },
                              {
                                "const": "image/webp",
                                "type": "string"
                              }
                            ]
                          },
                          "sha256": {
                            "type": "string"
                          },
                          "byteLength": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "kind",
                          "assetId",
                          "uri",
                          "mediaType",
                          "sha256",
                          "byteLength"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "const": "asset",
                            "type": "string"
                          },
                          "uri": {
                            "type": "null"
                          },
                          "assetId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "kind",
                          "uri",
                          "assetId"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  },
                  "side": {
                    "anyOf": [
                      {
                        "const": "north",
                        "type": "string"
                      },
                      {
                        "const": "south",
                        "type": "string"
                      },
                      {
                        "const": "east",
                        "type": "string"
                      },
                      {
                        "const": "west",
                        "type": "string"
                      }
                    ]
                  },
                  "mode": {
                    "const": "architectural",
                    "type": "string"
                  },
                  "fit": {
                    "anyOf": [
                      {
                        "const": "cover",
                        "type": "string"
                      },
                      {
                        "const": "contain",
                        "type": "string"
                      }
                    ]
                  },
                  "projection": {
                    "const": "flat",
                    "type": "string"
                  },
                  "distance": {
                    "type": "number"
                  },
                  "lighting": {
                    "anyOf": [
                      {
                        "const": "unlit",
                        "type": "string"
                      },
                      {
                        "const": "lit",
                        "type": "string"
                      }
                    ]
                  },
                  "enabled": {
                    "anyOf": [
                      {
                        "const": false,
                        "type": "boolean"
                      },
                      {
                        "const": true,
                        "type": "boolean"
                      }
                    ]
                  },
                  "materialId": {
                    "type": "string"
                  }
                },
                "required": [
                  "identity",
                  "semantic",
                  "source",
                  "side",
                  "mode",
                  "fit",
                  "projection",
                  "distance",
                  "lighting",
                  "enabled"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "north": {
                    "type": "object",
                    "properties": {
                      "identity": {
                        "type": "string"
                      },
                      "semantic": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "source": {
                        "anyOf": [
                          {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "const": "image",
                                "type": "string"
                              },
                              "assetId": {
                                "type": "string"
                              },
                              "uri": {
                                "type": "string"
                              },
                              "mediaType": {
                                "anyOf": [
                                  {
                                    "const": "image/png",
                                    "type": "string"
                                  },
                                  {
                                    "const": "image/jpeg",
                                    "type": "string"
                                  },
                                  {
                                    "const": "image/webp",
                                    "type": "string"
                                  }
                                ]
                              },
                              "sha256": {
                                "type": "string"
                              },
                              "byteLength": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "kind",
                              "assetId",
                              "uri",
                              "mediaType",
                              "sha256",
                              "byteLength"
                            ],
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "const": "asset",
                                "type": "string"
                              },
                              "uri": {
                                "type": "null"
                              },
                              "assetId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "kind",
                              "uri",
                              "assetId"
                            ],
                            "additionalProperties": false
                          }
                        ]
                      },
                      "side": {
                        "anyOf": [
                          {
                            "const": "north",
                            "type": "string"
                          },
                          {
                            "const": "south",
                            "type": "string"
                          },
                          {
                            "const": "east",
                            "type": "string"
                          },
                          {
                            "const": "west",
                            "type": "string"
                          }
                        ]
                      },
                      "mode": {
                        "const": "architectural",
                        "type": "string"
                      },
                      "fit": {
                        "anyOf": [
                          {
                            "const": "cover",
                            "type": "string"
                          },
                          {
                            "const": "contain",
                            "type": "string"
                          }
                        ]
                      },
                      "projection": {
                        "const": "flat",
                        "type": "string"
                      },
                      "distance": {
                        "type": "number"
                      },
                      "lighting": {
                        "anyOf": [
                          {
                            "const": "unlit",
                            "type": "string"
                          },
                          {
                            "const": "lit",
                            "type": "string"
                          }
                        ]
                      },
                      "enabled": {
                        "anyOf": [
                          {
                            "const": false,
                            "type": "boolean"
                          },
                          {
                            "const": true,
                            "type": "boolean"
                          }
                        ]
                      },
                      "materialId": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "identity",
                      "semantic",
                      "source",
                      "side",
                      "mode",
                      "fit",
                      "projection",
                      "distance",
                      "lighting",
                      "enabled"
                    ],
                    "additionalProperties": false
                  },
                  "south": {
                    "type": "object",
                    "properties": {
                      "identity": {
                        "type": "string"
                      },
                      "semantic": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "source": {
                        "anyOf": [
                          {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "const": "image",
                                "type": "string"
                              },
                              "assetId": {
                                "type": "string"
                              },
                              "uri": {
                                "type": "string"
                              },
                              "mediaType": {
                                "anyOf": [
                                  {
                                    "const": "image/png",
                                    "type": "string"
                                  },
                                  {
                                    "const": "image/jpeg",
                                    "type": "string"
                                  },
                                  {
                                    "const": "image/webp",
                                    "type": "string"
                                  }
                                ]
                              },
                              "sha256": {
                                "type": "string"
                              },
                              "byteLength": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "kind",
                              "assetId",
                              "uri",
                              "mediaType",
                              "sha256",
                              "byteLength"
                            ],
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "const": "asset",
                                "type": "string"
                              },
                              "uri": {
                                "type": "null"
                              },
                              "assetId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "kind",
                              "uri",
                              "assetId"
                            ],
                            "additionalProperties": false
                          }
                        ]
                      },
                      "side": {
                        "anyOf": [
                          {
                            "const": "north",
                            "type": "string"
                          },
                          {
                            "const": "south",
                            "type": "string"
                          },
                          {
                            "const": "east",
                            "type": "string"
                          },
                          {
                            "const": "west",
                            "type": "string"
                          }
                        ]
                      },
                      "mode": {
                        "const": "architectural",
                        "type": "string"
                      },
                      "fit": {
                        "anyOf": [
                          {
                            "const": "cover",
                            "type": "string"
                          },
                          {
                            "const": "contain",
                            "type": "string"
                          }
                        ]
                      },
                      "projection": {
                        "const": "flat",
                        "type": "string"
                      },
                      "distance": {
                        "type": "number"
                      },
                      "lighting": {
                        "anyOf": [
                          {
                            "const": "unlit",
                            "type": "string"
                          },
                          {
                            "const": "lit",
                            "type": "string"
                          }
                        ]
                      },
                      "enabled": {
                        "anyOf": [
                          {
                            "const": false,
                            "type": "boolean"
                          },
                          {
                            "const": true,
                            "type": "boolean"
                          }
                        ]
                      },
                      "materialId": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "identity",
                      "semantic",
                      "source",
                      "side",
                      "mode",
                      "fit",
                      "projection",
                      "distance",
                      "lighting",
                      "enabled"
                    ],
                    "additionalProperties": false
                  },
                  "east": {
                    "type": "object",
                    "properties": {
                      "identity": {
                        "type": "string"
                      },
                      "semantic": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "source": {
                        "anyOf": [
                          {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "const": "image",
                                "type": "string"
                              },
                              "assetId": {
                                "type": "string"
                              },
                              "uri": {
                                "type": "string"
                              },
                              "mediaType": {
                                "anyOf": [
                                  {
                                    "const": "image/png",
                                    "type": "string"
                                  },
                                  {
                                    "const": "image/jpeg",
                                    "type": "string"
                                  },
                                  {
                                    "const": "image/webp",
                                    "type": "string"
                                  }
                                ]
                              },
                              "sha256": {
                                "type": "string"
                              },
                              "byteLength": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "kind",
                              "assetId",
                              "uri",
                              "mediaType",
                              "sha256",
                              "byteLength"
                            ],
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "const": "asset",
                                "type": "string"
                              },
                              "uri": {
                                "type": "null"
                              },
                              "assetId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "kind",
                              "uri",
                              "assetId"
                            ],
                            "additionalProperties": false
                          }
                        ]
                      },
                      "side": {
                        "anyOf": [
                          {
                            "const": "north",
                            "type": "string"
                          },
                          {
                            "const": "south",
                            "type": "string"
                          },
                          {
                            "const": "east",
                            "type": "string"
                          },
                          {
                            "const": "west",
                            "type": "string"
                          }
                        ]
                      },
                      "mode": {
                        "const": "architectural",
                        "type": "string"
                      },
                      "fit": {
                        "anyOf": [
                          {
                            "const": "cover",
                            "type": "string"
                          },
                          {
                            "const": "contain",
                            "type": "string"
                          }
                        ]
                      },
                      "projection": {
                        "const": "flat",
                        "type": "string"
                      },
                      "distance": {
                        "type": "number"
                      },
                      "lighting": {
                        "anyOf": [
                          {
                            "const": "unlit",
                            "type": "string"
                          },
                          {
                            "const": "lit",
                            "type": "string"
                          }
                        ]
                      },
                      "enabled": {
                        "anyOf": [
                          {
                            "const": false,
                            "type": "boolean"
                          },
                          {
                            "const": true,
                            "type": "boolean"
                          }
                        ]
                      },
                      "materialId": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "identity",
                      "semantic",
                      "source",
                      "side",
                      "mode",
                      "fit",
                      "projection",
                      "distance",
                      "lighting",
                      "enabled"
                    ],
                    "additionalProperties": false
                  },
                  "west": {
                    "type": "object",
                    "properties": {
                      "identity": {
                        "type": "string"
                      },
                      "semantic": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "source": {
                        "anyOf": [
                          {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "const": "image",
                                "type": "string"
                              },
                              "assetId": {
                                "type": "string"
                              },
                              "uri": {
                                "type": "string"
                              },
                              "mediaType": {
                                "anyOf": [
                                  {
                                    "const": "image/png",
                                    "type": "string"
                                  },
                                  {
                                    "const": "image/jpeg",
                                    "type": "string"
                                  },
                                  {
                                    "const": "image/webp",
                                    "type": "string"
                                  }
                                ]
                              },
                              "sha256": {
                                "type": "string"
                              },
                              "byteLength": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "kind",
                              "assetId",
                              "uri",
                              "mediaType",
                              "sha256",
                              "byteLength"
                            ],
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "const": "asset",
                                "type": "string"
                              },
                              "uri": {
                                "type": "null"
                              },
                              "assetId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "kind",
                              "uri",
                              "assetId"
                            ],
                            "additionalProperties": false
                          }
                        ]
                      },
                      "side": {
                        "anyOf": [
                          {
                            "const": "north",
                            "type": "string"
                          },
                          {
                            "const": "south",
                            "type": "string"
                          },
                          {
                            "const": "east",
                            "type": "string"
                          },
                          {
                            "const": "west",
                            "type": "string"
                          }
                        ]
                      },
                      "mode": {
                        "const": "architectural",
                        "type": "string"
                      },
                      "fit": {
                        "anyOf": [
                          {
                            "const": "cover",
                            "type": "string"
                          },
                          {
                            "const": "contain",
                            "type": "string"
                          }
                        ]
                      },
                      "projection": {
                        "const": "flat",
                        "type": "string"
                      },
                      "distance": {
                        "type": "number"
                      },
                      "lighting": {
                        "anyOf": [
                          {
                            "const": "unlit",
                            "type": "string"
                          },
                          {
                            "const": "lit",
                            "type": "string"
                          }
                        ]
                      },
                      "enabled": {
                        "anyOf": [
                          {
                            "const": false,
                            "type": "boolean"
                          },
                          {
                            "const": true,
                            "type": "boolean"
                          }
                        ]
                      },
                      "materialId": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "identity",
                      "semantic",
                      "source",
                      "side",
                      "mode",
                      "fit",
                      "projection",
                      "distance",
                      "lighting",
                      "enabled"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [],
                "additionalProperties": false
              }
            ]
          }
        },
        "required": [
          "identity",
          "alias",
          "label",
          "level",
          "parent",
          "size",
          "frame"
        ],
        "additionalProperties": false
      }
    },
    "levels": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "identity": {
            "type": "string"
          },
          "label": {
            "type": "string"
          }
        },
        "required": [
          "identity",
          "label"
        ],
        "additionalProperties": false
      }
    },
    "portals": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "identity": {
            "type": "string"
          },
          "alias": {
            "type": "string",
            "maxLength": 100
          },
          "from": {
            "type": "string"
          },
          "to": {
            "type": "string"
          },
          "frame": {
            "type": "object",
            "properties": {
              "position": {
                "type": "array",
                "prefixItems": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ],
                "minItems": 3,
                "maxItems": 3,
                "items": false
              },
              "quaternion": {
                "type": "array",
                "prefixItems": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ],
                "minItems": 4,
                "maxItems": 4,
                "items": false
              }
            },
            "required": [
              "position",
              "quaternion"
            ],
            "additionalProperties": false
          },
          "width": {
            "type": "number"
          },
          "height": {
            "type": "number"
          },
          "traversable": {
            "anyOf": [
              {
                "const": false,
                "type": "boolean"
              },
              {
                "const": true,
                "type": "boolean"
              }
            ]
          },
          "door": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          }
        },
        "required": [
          "identity",
          "alias",
          "from",
          "to",
          "frame",
          "width",
          "height",
          "traversable",
          "door"
        ],
        "additionalProperties": false
      }
    },
    "entrances": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "identity": {
            "type": "string"
          },
          "alias": {
            "type": "string",
            "maxLength": 100
          },
          "room": {
            "type": "string"
          },
          "frame": {
            "type": "object",
            "properties": {
              "position": {
                "type": "array",
                "prefixItems": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ],
                "minItems": 3,
                "maxItems": 3,
                "items": false
              },
              "quaternion": {
                "type": "array",
                "prefixItems": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ],
                "minItems": 4,
                "maxItems": 4,
                "items": false
              }
            },
            "required": [
              "position",
              "quaternion"
            ],
            "additionalProperties": false
          },
          "width": {
            "type": "number"
          },
          "height": {
            "type": "number"
          },
          "traversable": {
            "anyOf": [
              {
                "const": false,
                "type": "boolean"
              },
              {
                "const": true,
                "type": "boolean"
              }
            ]
          },
          "door": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          }
        },
        "required": [
          "identity",
          "alias",
          "room",
          "frame",
          "width",
          "height",
          "traversable",
          "door"
        ],
        "additionalProperties": false
      }
    },
    "membership": {
      "type": "object",
      "properties": {},
      "required": [],
      "additionalProperties": {
        "type": "string"
      }
    }
  },
  "required": [
    "version",
    "identity",
    "rooms",
    "levels",
    "portals",
    "membership"
  ],
  "additionalProperties": false
}