# CONTEXT — Console v2 Ubiquitous Language (Law 9)

This file is the canonical glossary for Console v2. Code, docs, prompts, and AI sessions
all use the canonical terms below. New terms get added here BEFORE they appear in code.

| Term | Definition | Avoid |
|------|------------|-------|
| Workspace | A user's persistent UI state for one Console v2 surface (desktop OR mobile). Identified by `workspaceId` (UUIDv4). | "session", "view" |
| Workspace state | The opaque JSON blob stored in SQLite per `workspaceId`. Owned by the UI; server stores without parsing. | "preferences", "settings" |
| Project | An engine-owned production unit (Tartarus, recoil-otf-demo). Carries `aspect: AspectRatio`. | "show", "series", "production" |
| Beat | The smallest editorial unit — one shot's worth of takes. Engine-owned (CP-7 substrate). | "shot" (in code; "shot" allowed in prose) |
| Take | One generation attempt. Engine-owned (CP-7). Wraps a Workflow. | "version", "attempt", "render" |
| Workflow | A DAG of generation steps owned by a Take (CP-6 substrate). | "pipeline" (overloaded) |
| Lineage | The graph of a Take's source-of-truth dependencies (refs, prompts, params, sibling takes, evals). | "history" |
| Proposal | A SpecEditProposal — typed mutation request originating in chat or selection. | "edit", "change request" |
| ProposalCard | UI component rendering one Proposal awaiting approval. | "edit card" |
| Parked tab | A captured stage state (template + path) JT can return to. | "saved view" |
| Caller-aware close | TakeInspector's behavior of returning to the surface that opened it. | — |
| Slash command | A `/foo args` invocation in chat. Maps 1:1 to engine skill names (`/dispatch`, `/consult`, etc.). | "command" alone (ambiguous) |
| Tweak | A user-configurable runtime option (density, accent hue, radius, etc.). | "setting", "preference" |
| Adapter | A `@recoil/fixtures` or `@recoil/http-adapter` package. Both expose IDENTICAL function signatures. | "client", "service" |
| EventBus | Server-side singleton broadcasting `EngineEvent`s over SSE. | "queue", "stream" alone |
| AspectRatio | Typed enum `"9_16" \| "16_9" \| "1_1" \| "4_3"`. ADR-0001. | "ar", "format" |
| schemaVersion | Literal `1` (currently) on every persisted shape. | "version" alone |
| FALLBACK_FIRED | The literal log token registered fallbacks emit. Tenet 6 prong-2. | "fallback" alone (unreserved word OK) |
| KeeperGlyph | The 5-state keeper-status SVG (primary/candidate/empty/blocked/pending). | "keeper icon" |
| EvalCoverageGlyph | The 6-state eval coverage SVG (pass/fail/pending/errored/skip/miss). | "eval icon" |
| FallbackEntry / fallback name | A registered, quality-neutral silent recovery path. Names are kebab_case_with_underscores (`take_id_not_on_disk`). | "default", bare "fallback" (the unreserved word) |
| Synthesized (entity) | An engine entity (Episode, Scene) projected at request time from a different on-disk source rather than read from a first-class file. Carries `synthesized: true` in the response. | "stub" (synthesized data is real, not a stub) |
| ConnectionState | Enum `"connected" \| "degraded" \| "disconnected"` derived from system-status HTTP + SSE state. The chrome's primary truth signal. | "online/offline" (binary; misses degraded) |
| SessionRestoreModal | The desktop modal shown when workspace state fails zod parse. User picks Discard or Report. Closes Law 4 prong-3. | "error dialog" (overloaded) |
| ChromeStatus | The composite object passed to Titlebar / StatusBar / StatusPopover / BottomBay carrying connection + system-status. | — |
| breadcrumb | The ChromeTop / ArtifactStage path label derived from `focused`. | — |
