MD

Surface

terminology/surface.md

---
term: surface
category: spatial
status: canonical
authority: surface.elonn.local
---

Surface

Status note (2026-07-19): as of the Canonical World/Mind rebuild (2026-07-17),
Web and the canonical World Dataset no longer include Surface as a concept —
Web renders directly from Objects, Actions, Collections, and Resources (see
ELONN.md, whose Glossary tracks "surface" as deprecated/overloaded terminology
with no canonical replacement defined yet). Surface remains the live,
in-use interaction model for the Android, iPad, and Cardboard runtimes and for
surface.elonn.local until they migrate onto /world/call (PLAN.md
milestone 9). The definition below is accurate for those three runtimes.

A persistent interactive container around service-backed or runtime-backed content. A surface preserves identity and runtime state as it moves between stacked, docked, detached, shared, and field-anchored placements.

Examples:
- Nearby Restaurants
- Friends Nearby
- Messages
- Today's Schedule
- Transit
- System Status

Surface types:
- launcher_surface — entry or home context
- findings_surface — composed discovery results
- feed_surface — time-ordered content stream
- map_surface — field-oriented spatial context
- conversation_surface — message and reply thread
- dashboard_surface — aggregate status view

Sub-concepts:
- surface state — persistent runtime state associated with a surface (scroll position, selected object, filters, map zoom)
- surface schema — platform-neutral definition of a surface (content source, service binding, layout hints, actions, metadata); persisted by Surface, composed by World, consumed by all runtimes
- surface renderer — runtime-specific visual implementation (web renderer, android renderer, xr renderer)
- service binding — the service authority and resource that backs the surface content

Allowed:
- surface
- surface type
- surface schema
- surface state
- surface renderer
- [name] surface (e.g., messages surface, nearby surface)

Forbidden:
- page (implies document model; surfaces are spatial)
- screen (implies flat display model)
- tab (implies fixed navigational strip)
- view (engineering prose only; not a product noun)
- panel (distinct; panel is carry-layer content loaded via content_source.url when content_source.kind is runtime_panel)
- window (distinct; window is a future independently managed spatial container — see: window)

Notes:
- Surface identity, stack membership, placement, and safe runtime state are persisted by surface.elonn.local.
- World composes surfaces with service data into runtime contracts.
- Runtimes render surfaces differently, but must preserve the same surface identity and stack semantics.
- A surface is NOT a panel. A panel is one possible content source loaded into a surface.
- A surface is not owned by a stack. A stack only organizes surfaces for presentation.

Related:
- stack
- block
- region
- panel (distinct)
- window (distinct; future)
- world
- runtime