schemacanonicalOWNER-2026-07-10D8

Schema — genome spatial_site strand · schema-genome-spatial-strand

Owner directive (2026-07-10), canonical. "Start by defining the biom, scenaries (Slices), their components interacting with its elements, the Loop Routine of it and the immersive transition between them." [src: wiki/development/prompts-archive/by-topic/knowledge-management-and-concept-modeling.md:471]

Content

An additive strand on the instance genome.json — it extends, never mutates, the existing 23 top-level keys of the generated genome (instance, genome_strand, cognis, element_ladder, districts, programs, web_properties, theme, websites, emails, domains, primary_domain, audiences, protocols, development_plan, pages, market, web_identity, artifacts, assets, hosts, versions, meta) [src: wiki/organizations/instances/royalorbit/genome.json:1]. Naming authority: Genome, not DNA — "GenomeStrand becomes the canonical type" (D8) [src: HOS-Webdoc/web/src/data/hos-specification.ts:557].

The strand describes the spatial-site of the venture: its biome (the theme background — "BIOM: the theme background — effects + ambience from parameters" is already a rung of the genome's element ladder [src: wiki/organizations/instances/royalorbit/genome.json:126]), the ordered slices (sceneries, per the owner's "scenaries (Slices)"), each slice's holonprints (render contracts per schema-holonprint), behavior_loops ("sceneries running with Loops of behavior" [src: wiki/development/prompts-archive/by-topic/knowledge-management-and-concept-modeling.md:461]), transitions, plus camera_paths and the district_binding that ties the strand into the genome's districts array.

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "hos://schemas/genome-spatial-strand.json",
  "title": "spatial_site strand (extends instance genome.json)",
  "type": "object",
  "required": ["spatial_site"],
  "properties": {
    "spatial_site": {
      "type": "object",
      "required": ["biome", "slices", "camera_paths", "district_binding"],
      "properties": {
        "biome": {
          "type": "object",
          "description": "the BIOM rung: effects + ambience from parameters; hues must agree with theme.palette",
          "required": ["description", "theme_arc"],
          "properties": {
            "description": { "type": "string" },
            "theme_arc": {
              "type": "array", "minItems": 2,
              "items": {
                "type": "object",
                "required": ["at", "fog", "ink"],
                "properties": {
                  "at": { "type": "number", "minimum": 0, "maximum": 1 },
                  "fog": { "type": "string", "pattern": "^#[0-9A-Fa-f]{6}$" },
                  "ink": { "type": "string", "pattern": "^#[0-9A-Fa-f]{6}$" }
                }
              }
            },
            "physics": {
              "type": "array", "items": { "type": "string" },
              "description": "laws active in the environment, e.g. gravity, wave, sparks, hitbox"
            }
          }
        },
        "slices": {
          "type": "array", "minItems": 1,
          "items": {
            "type": "object",
            "required": ["id", "scenery", "holonprints", "behavior_loops", "transitions"],
            "properties": {
              "id": { "type": "string", "pattern": "^[a-z0-9][a-z0-9-]*$" },
              "scenery": { "type": "string", "description": "what this slice depicts (story beat)" },
              "slab": {
                "type": "array", "items": { "type": "number" },
                "minItems": 2, "maxItems": 2,
                "description": "disjoint world-space z-range, engine chapter-slab convention"
              },
              "holonprints": {
                "type": "array", "minItems": 1,
                "items": {
                  "type": "object",
                  "required": ["id", "method", "asset", "budget"],
                  "properties": {
                    "id": { "type": "string" },
                    "method": { "enum": ["gaussian-splatting", "genmodel", "mesh3d", "pixelstream", "ar", "sensors"] },
                    "asset": { "type": "string", "description": "manifest/asset reference" },
                    "budget": { "type": "object", "description": "per schema-holonprint" },
                    "fallback": { "type": "string" }
                  }
                }
              },
              "behavior_loops": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": ["id", "routine"],
                  "properties": {
                    "id": { "type": "string" },
                    "routine": { "type": "string", "description": "the slice's life-loop (beings, events, sparks)" },
                    "period_s": { "type": "number", "exclusiveMinimum": 0 }
                  }
                }
              },
              "transitions": {
                "type": "object",
                "description": "immersive transition into the next slice",
                "properties": {
                  "to": { "type": "string", "description": "next slice id" },
                  "kind": { "enum": ["fog-dissolve", "camera-fly", "morph", "cut"] },
                  "duration_progress": { "type": "number", "minimum": 0, "maximum": 1 }
                }
              }
            }
          }
        },
        "camera_paths": {
          "type": "array",
          "items": {
            "type": "object",
            "required": ["slice", "keys"],
            "properties": {
              "slice": { "type": "string" },
              "keys": {
                "type": "array", "minItems": 2,
                "items": {
                  "type": "object",
                  "required": ["at", "position", "lookAt"],
                  "properties": {
                    "at": { "type": "number", "minimum": 0, "maximum": 1 },
                    "position": { "type": "array", "items": { "type": "number" }, "minItems": 3, "maxItems": 3 },
                    "lookAt": { "type": "array", "items": { "type": "number" }, "minItems": 3, "maxItems": 3 },
                    "fov": { "type": "number" }
                  }
                }
              }
            }
          }
        },
        "district_binding": {
          "type": "object",
          "required": ["district", "rung"],
          "properties": {
            "district": { "type": "string", "description": "name in genome.districts[], e.g. 'Hub'" },
            "rung": { "const": "DISTRICT" },
            "web_property": { "type": "string", "description": "genome.web_properties[].kind, e.g. 'Website'" }
          }
        }
      }
    }
  }
}

Invariants: slice slab ranges are pairwise disjoint (engine chapter-slab convention [src: HOS-Instance/packages/engine/src/engine/contracts.ts:166]); every camera_paths[].slice and transitions.to resolves to a slices[].id; the sum of active-slice holonprint budgets respects bm-002-splat-budget; biome.theme_arc hues must derive from theme.palette of the host genome (Royal Orbit example: fog #080600 = palette bg [src: wiki/organizations/instances/royalorbit/genome.json:354]); after adding the strand, genome_strand.content_hash is recomputed (hash/verify per sc-001-kernel-cogni-genome).

Composition

See also

Linked from — 16 cards