---
path: /studio/yemaya/world-and-location-design
surface: studio
domain: yemaya
auth: signed-in + studio entitlement
source: apps/oshun/web/src/app/studio/yemaya/world-and-location-design/page.tsx
status: walked
last_walked:
  '2026-05-29 automated runtime walk (Playwright headless) — render, /v1 data
  (2xx), console/page-errors, expected content, screenshot verified; live
  screen-reader, touch, offline, and telemetry-delivery checks pending a manual
  AT pass. Evidence: WALKTHROUGH/results/runtime-sweep-2026-05-29.md; body
  re-derived 2026-06-03 from current source (lane-console architecture)'
---

# Studio · Yemaya · World and Location Design

## Purpose

Admin lane console wired to the `@yemaya/project-obsidian`
`ObsidianWorldbuilding` universe bible — inspect a chosen subsystem of the
Project Obsidian setting (universe foundation, historical timeline, factions,
locations, economic/political systems, technology, culture). The operations lane
is wired over `/v1/admin/yemaya/world-and-location-design`; access is
admin-scoped and fail-closed.

## Entry points

- No breadcrumb panel on this page.
- Reachable from sibling Yemaya routes that quick-action here (e.g.,
  `character-design-system`, `blender-integration`).
- Direct URL / bookmark (signed-in + studio entitlement).

## Layout regions

`page.tsx` renders `ShellLayout active="studio"` and:

- **Workspace panel** (`StudioYemayaWorldAndLocationDesignWorkspace`,
  `data-yemaya-world-and-location-design-workspace`):
  - `<h1>` (`WorkspaceHeading`) **"Yemaya World and Location Design Workspace"**.
  - Summary paragraph (`data-yemaya-world-and-location-design-summary`).
  - **Worldbuilding Operations Lane** (`data-yemaya-wd-lane-heading`, `<h2>`): the
    catalog-loaded form (`data-yemaya-wd-form`).
- **Route Map panel** (`data-yemaya-world-and-location-design-route-map`): `<h2>`
  "Route Map" + five entries from
  `STUDIO_YEMAYA_WORLD_AND_LOCATION_DESIGN_ROUTE_MAP`.
- **Quick-action panel**: two `quickAction` links.

## States

- [ ] **Loading** — `data-yemaya-wd-loading` "Loading worldbuilding engine…" until
      the GET catalog resolves.
- [ ] **Unauthorized** — `data-yemaya-wd-unauthorized` "Access restricted." on a
      401/403 (Yemaya admin scope required).
- [ ] **Error** — `data-yemaya-wd-error` "Could not load the worldbuilding
      engine." on a non-OK / malformed catalog response.
- [ ] **Ready (form)** — engine summary (`data-yemaya-wd-engine-summary`) + the
      system-select form render once the catalog loads.
- [ ] **Result** — `data-yemaya-wd-result` with the inspected system headline
      (`data-yemaya-wd-headline`) + its detail; submit-side validation surfaces in
      `data-yemaya-wd-resolve-error`.

## Interactions

### Worldbuilding Operations Lane

- [ ] **"Worldbuilding system"** — `<select data-yemaya-wd-system>` populated from
      the catalog's systems (foundation, timeline, factions, locations, economic /
      political systems, technology, culture).
- [ ] **"Inspect system"** — `<button data-yemaya-wd-submit>`; submitting POSTs the
      chosen system to `/v1/admin/yemaya/world-and-location-design/system` and
      renders that subsystem of the Project Obsidian bible.

### Route map

`data-yemaya-world-and-location-design-route-map` — five non-interactive entries:

- [ ] `/studio/yemaya/world-and-location-design` — primary workspace
- [ ] `/studio/yemaya/world-and-location-design/worlds/[worldId]`
- [ ] `/studio/yemaya/world-and-location-design/locations/[locationId]`
- [ ] `/studio/yemaya/world-and-location-design/revisions/[revisionId]`
- [ ] `/studio/yemaya/world-and-location-design/governance/[policyId]`

### Quick actions

- [ ] **"Open Yemaya Character Design System workspace"** →
      `/studio/yemaya/character-design-system`.
- [ ] **"Back to Studio workspace index"** → `/studio`.

## Data & contracts

- **Reads**: `GET /v1/admin/yemaya/world-and-location-design` (catalog: summary +
  worldbuilding systems) on mount.
- **Writes**: `POST /v1/admin/yemaya/world-and-location-design/system` (system →
  inspected subsystem detail).
- **Realtime**: none.
- **Caching**: client `fetch` on mount with `cache: 'no-store'`;
  `buildBffAuthHeaders()`.
- **Auth/role check**: admin-scoped, fail-closed (401/403 → unauthorized state);
  signed-in + studio entitlement enforced by the proxy/middleware.

## Cross-references

- Studio overview: [`studio-overview.md`](../../studio-overview.md)
- Workspace source:
  `apps/oshun/web/src/components/studio/StudioYemayaWorldAndLocationDesignWorkspace.tsx`
- Route map source:
  `apps/oshun/web/src/components/studio/StudioYemayaWorldAndLocationDesignRouteMap.ts`
- Feature spec: [`V1/features.md`](../../../../V1/features.md)

## Open questions / known gaps

- [ ] The route-map dynamic children (worlds / locations / revisions / governance)
      are sitemap-only — confirm whether any are backed by `page.tsx` files yet.
