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
- uses: schema-holonprint (holonprints items) · biome · slice · scenery · genome-strand
- used-by: sc-001-kernel-cogni-genome (stage 1) · pb-001-spatial-site-loop (steps 2–4 read it) · genome-spatial-site · bp-001-spatial-site