{
  "$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"
}
