← Files Build 3D Game RoomsARCHIVED FILE

skills/build-3d-game-rooms/references/schemas/room-layout.schema.json

2.13 KB · Oct 7, 2026 · 00:32 UTC

↓ Download file

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "game-room.layout.v1",
  "type": "object",
  "required": ["schema", "roomId", "units", "surfaces", "instances", "productionCamera"],
  "properties": {
    "schema": {"const": "game-room.layout.v1"},
    "roomId": {"type": "string", "minLength": 1},
    "units": {"const": "meters"},
    "surfaces": {
      "type": "array",
      "minItems": 1,
      "items": {
        "type": "object",
        "required": ["id", "kind", "dimensionsMeters", "location", "rotationDegrees", "material"],
        "properties": {
          "id": {"type": "string", "minLength": 1},
          "kind": {"enum": ["floor", "wall", "ceiling", "platform", "beam"]},
          "dimensionsMeters": {"type": "array", "minItems": 3, "maxItems": 3, "items": {"type": "number", "exclusiveMinimum": 0}},
          "location": {"type": "array", "minItems": 3, "maxItems": 3, "items": {"type": "number"}},
          "rotationDegrees": {"type": "array", "minItems": 3, "maxItems": 3, "items": {"type": "number"}},
          "material": {"type": "object", "required": ["baseColor", "metallic", "roughness"], "properties": {"baseColor": {"type": "array", "minItems": 4, "maxItems": 4, "items": {"type": "number", "minimum": 0, "maximum": 1}}, "metallic": {"type": "number", "minimum": 0, "maximum": 1}, "roughness": {"type": "number", "minimum": 0, "maximum": 1}}}
        }
      }
    },
    "instances": {
      "type": "array",
      "items": {
        "type": "object",
        "required": ["id", "assetId", "location", "rotationDegrees", "scale"],
        "properties": {
          "id": {"type": "string", "minLength": 1},
          "assetId": {"type": "string", "minLength": 1},
          "location": {"type": "array", "minItems": 3, "maxItems": 3, "items": {"type": "number"}},
          "rotationDegrees": {"type": "array", "minItems": 3, "maxItems": 3, "items": {"type": "number"}},
          "scale": {"type": "array", "minItems": 3, "maxItems": 3, "items": {"type": "number", "exclusiveMinimum": 0}}
        }
      }
    },
    "productionCamera": {"type": "object", "required": ["location", "target", "verticalFovDegrees"]}
  }
}

SHA-256: a145b744229a3b0065d0b6653d97018901fb49abcf1d569a3502745ac24d861b