−
100%
+
fit
scroll
# World Model — Worlds are Things A
**world** is a Thing, sapphire=world, served
by 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) are
the OLD path. - Remaining consumers: the
Unreal vessel (slated for a from-scratch
rewrite — ignored) + one web
/api/worlds/<world>/chips call (to be moved to
/api/things). Then /api/worlds retires. ## Two
layers (do not conflate) - Worlds / scenes
(sapphire=world): navigation + 3D scenes.
Faces are scene-zones (cosmostack: Pulse,
Slab, HexCube) or category-portals (the decks
world: faces carry ruby.decks=[...] diving
into real decks). NOT draw-piles. - Leaf decks
(sapphire=deck/card): drawable, mixable. See
cube-deck-unification / the GEMS Formula. ##
Open reconcile (FID world-canon) Three
overlapping 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 the
world Things, migrate the chips call, retire
/api/worlds. Note: cosmostack's two cubes are
a boot/branch pair (dd9066f8 boot, 589a2c25
live-branch), not a duplicate.
△