scroll # World Model — Worlds are Things A**world** is a Thing, sapphire=world, servedby the universal /api/things?sapphire=world.Not a bespoke endpoint, not a cube. ## Canon -8 world Things in ring 822450c0: Slab, Spiral,Forge, SubuGlass, HexCube, Grimoire, Pulse,Portal. - Read path: GET/api/things?sapphire=world (live; returns 8).## Legacy being retired - /api/worlds(at_routes.rs) + the world-ring sapphire=cube(cosmostack/decks/dice in ring a0a0a0a0) arethe OLD path. - Remaining consumers: theUnreal vessel (slated for a from-scratchrewrite — ignored) + one web/api/worlds/<world>/chips call (to be moved to/api/things). Then /api/worlds retires. ## Twolayers (do not conflate) - Worlds / scenes(sapphire=world): navigation + 3D scenes.Faces are scene-zones (cosmostack: Pulse,Slab, HexCube) or category-portals (the decksworld: faces carry ruby.decks=[...] divinginto real decks). NOT draw-piles. - Leaf decks(sapphire=deck/card): drawable, mixable. Seecube-deck-unification / the GEMS Formula. ##Open reconcile (FID world-canon) Threeoverlapping world lists (~60% overlap):cube-ring containers, cosmostack zone-faces,the 8 world Things — none authoritative yet.wc-001..005/007/008 reconcile them, fold/api/worlds/<world>/state scene data into theworld Things, migrate the chips call, retire/api/worlds. Note: cosmostack's two cubes area boot/branch pair (dd9066f8 boot, 589a2c25live-branch), not a duplicate.