# Lilith Commons, Venues & Live Service

```mermaid
mindmap
  root((Lilith Commons))
    Venues
      Persistent rooms and social spaces
      Capacity tiers and accessibility
      Moderation recording and presence
    Programming
      Scheduled classes performances and gatherings
      Live-service calendars and cohorts
      Notices reminders and incident state
    V1 experiences
      Re-rendered Tara Nyx Arete and Nisaba moments
      Shared identity entitlement and continuity
      Honest fidelity and interaction boundaries
    Operations
      Content releases rights and takedown
      Observability staffing and support
      Rollout rollback and recovery
```

Commons is a governed venue and programming plane, not an unowned remainder
between tenants. Re-rendered V1 experiences retain their original domain truth
while adopting V3 presence, embodiment, content, and operations boundaries.

Lilith Commons is the open, contemplative social space at the centre of the
Lilith metaverse — the part you wander into rather than book. Where Tara is a
class you attend and Saraswati is a concert you arrive for, Commons is a
persistent set of public rooms that are simply _open_: a library you can browse,
an observatory tracking the real sky, a debate hall with claim-and-counterclaim
podiums, a garden that follows the seasons, and a lantern-lit hall for grief and
solitude. Eight venues ship at GA, each one a re-rendered V1 domain experience —
Nisaba becomes a walkable open stack, Nyx becomes a planetarium dome, Veritas
becomes a podium debate, Metis becomes a tiered lecture theatre — so that the
contemplative content Oshun already publishes in 2D has an embodied 3D home.
Over the top of those rooms runs a live-service layer: a rolling weekly
calendar, four cross-tenant seasonal festivals, drop-day concerts, and community
cohorts, so a venue is never empty and the world always has something on. The
data, policy, and verifier tier behind all of it lives in one package —
`@oshun/tenant-lilith-commons` (`libs/v3/lilith-commons`) — the largest single
library in V3. This page covers the three load-bearing surfaces: the
**persistent venues**, the **re-rendered V1 experiences** inside them, and the
**live-service programming** that fills them. The section hub is
[../V3_features.md](../V3_features.md).

## What ships, honestly

`lilith-commons` is **substantive, domain-specific TypeScript** — a 13,458-line
`src/index.ts` backed by a 4,536-line, 143-case test suite — not a CRUD shell.
What is real, and what is not, splits cleanly along three lines.

- **Real and tested:** the venue catalog, capacity model, daily/weekly
  programming, the four seasonal festivals, the solitary-cell privacy
  invariants, and a per-experience _verifier_ for every re-rendered V1 venue.
  Each verifier is a fail-loud gate that returns a structured report with a
  `passed` boolean, an enumerated set of sub-conditions, and a list of whatever
  is missing — `publishV3LilithCommonsLaunchVenueCatalog()` refuses to pass
  unless all eight venues are live, editorially signed, and design-approved with
  a score `>= 95`. These are decision engines, not config tables.
- **UE content referenced by string:** the actual in-world _rendering_ — the
  planetarium dome, the Sequencer-driven ritual rooms, the world-space UMG
  widgets, the radial podium geometry — is Unreal content addressed by path
  (`/Game/Venues/Commons/…`). This library owns the data, policy, and
  orchestration tier that points at that content and proves it is wired
  correctly; it is not the renderer.
- **Deterministic GA fixtures:** the festival schedules and re-rendered scenes
  are seeded with fixed GA content (`equinox-festival-2026`, the six radial
  Veritas podiums, the 216 Nisaba editions). The publishers gate _that seeded
  content_ against its rules; they are not a live operations feed. The V1
  bindings (`v1:veritas:…`, `v1:nisaba:edition:…`, `v1:metis:notebook:…`) are
  string references that tie a venue to V1 domain data whose canonical surface
  still lives in V1.

The sections below say, per claim, which of the three it is.

## Persistent venues

### The eight launch venues

`V3_LILITH_COMMONS_LAUNCH_VENUE_IDS` (`index.ts:150`) enumerates the eight rooms
that ship at GA, and `V3_LILITH_COMMONS_LAUNCH_VENUES` (`index.ts:3198`)
instantiates each with a `kind`, a `capacityTier`, a core-experience string, an
accessibility-feature list, an editorial signoff, and a design review.

| Venue                  | `kind`             | Tier     | Re-renders                                        |
| ---------------------- | ------------------ | -------- | ------------------------------------------------- |
| **Atrium**             | `arrival-plaza`    | assembly | first-run orientation, avatar arrival, wayfinding |
| **Garden of Cycles**   | `garden-loop`      | standard | seasonal walking loops, ambient programming       |
| **The Stacks**         | `library-stack`    | quiet    | Nisaba edition browsing, passage pulls            |
| **Observatory**        | `planetarium-dome` | assembly | Nyx sky windows, deep-sky sessions                |
| **Debate Hall**        | `civic-debate`     | assembly | Veritas podium debates                            |
| **Lecture Hall**       | `lecture-theater`  | assembly | Metis slide lectures, cohort seating              |
| **Atrium of Practice** | `practice-atrium`  | standard | Tara ritual rooms, solitary cells                 |
| **Lantern Hall**       | `reflection-hall`  | quiet    | weekly review, journal walls, reflection alcoves  |

Capacity is a closed three-tier model — `V3_LILITH_COMMONS_CAPACITY_TIER_LIMITS`
(`index.ts:455`) fixes `quiet = 16`, `standard = 64`, `assembly = 256`. The one
exception is the Observatory's marquee sky events, which legitimately need a
crowd and so escalate to a separate **stadium** tier validated at 4,096
simulated attendees (see _Nyx Observatory_ below); the three baseline tiers
cover everything else. `publishV3LilithCommonsLaunchVenueCatalog()`
(`index.ts:3265`) is the GA gate over the whole set: it computes the live,
editorially-signed, and design-approved venue ID sets, lists `missingVenueIds`,
and only returns `passed: true` when the count is exactly eight, every venue is
live, every editorial signoff is `signed`, and every design review is `approved`
with `score >= 95`. A venue that ships without a passing design review cannot
clear the catalog — the gate fails loud with the offending IDs, not a checkbox.

### Solitary cells: the quiet exit

Every venue carries at least one **solitary cell** — a single-occupant space
with no voice chat, no visible avatars, and no observers, intended for grief,
contemplation, and transition. The cell template is the same UE asset for all
eight
(`V3_LILITH_COMMONS_SOLITARY_CELL_WORLD_TEMPLATE_REF = '/Game/Venues/Commons/SolitaryCell/LVL_CommonsSolitaryCell_Template'`,
`index.ts:169`), and `verifyV3LilithCommonsSolitaryVenueCells()`
(`index.ts:3309`) is the privacy gate that makes "solitary" a checked invariant
rather than a promise. It derives three sets — `cellsWithVoiceEnabledIds`,
`cellsWithVisibleAvatarIds`, `cellsWithObserverSlotsIds` — and the report passes
only when all three are empty (`noVoiceAccess`, `noVisibleAvatars`,
`noObserverSlots`), every venue has exactly one live cell, each cell's
`maxOccupants === 1`, and every cell uses the solitary world template. A cell
that leaks a voice channel, an observer slot, or a visible avatar slot flips its
ID into one of those lists and fails the gate. Lantern Hall is the venue built
entirely around this need; the per-cell 5 Hz transform tick and nameplate
suppression that `V3_features.md` describes are runtime behaviours of the world
server, which this library's invariants constrain.

### Daily ambient programming

A venue is "never closed, only quieter."
`publishV3LilithCommonsDailyProgrammingCalendar()` (`index.ts:7047`) builds a
per-venue daily cycle — a full-day ambient `MetaSound`/Web-Audio loop plus
scheduled programming windows — and gates that **all eight venues** carry both a
visible ambient loop _and_ at least one valid scheduled-programming window
(`allVenuesHaveAmbientLoops`, `allVenuesHaveScheduledProgramming`), with every
entry visible in the calendar. A slot with no scheduled event falls back to its
ambient bed; the gate's `missingAmbientLoopVenueIds` list is what would catch a
venue that fell silent.

## Re-rendered V1 experiences

The organising principle of Commons is that **every customer-facing V1 domain
gets at least one embodied venue**. The library models each as its own scene
with its own verifier, so the binding back to V1 content is checked, not
asserted.

| V1 domain | Commons venue                     | Verifier entry point                                    |
| --------- | --------------------------------- | ------------------------------------------------------- |
| Veritas   | Debate Hall                       | `verifyV3LilithCommonsVeritasDebateHallPodiumScene()`   |
| Nyx       | Observatory                       | `verifyV3LilithCommonsNyxDeepSkySessions()`             |
| Nisaba    | The Stacks                        | `verifyV3LilithCommonsNisabaOpenStackBookshelves()`     |
| Metis     | Lecture Hall                      | `verifyV3LilithCommonsMetisLectureHallSeating()`        |
| Tara      | Ritual rooms (Atrium of Practice) | `verifyV3LilithCommonsTaraMorningSunSalutationDropIn()` |
| Arete     | Atrium of Practice                | `verifyV3LilithCommonsAreteCohortReviewCircles()`       |

### Veritas Debate Hall

The Debate Hall is the richest re-render and ships as three coupled verifiers.
`verifyV3LilithCommonsVeritasDebateHallPodiumScene()` (`index.ts:8280`) proves
the geometry: one central topic podium at radius 0 plus six radial podiums
(`V3_VERITAS_DEBATE_HALL_RADIAL_PODIUM_COUNT = 6`) placed at exact 60° intervals
on a 2.4 m circle — `allPodiumTransformsRadial` recomputes
`Math.hypot(x, z) ≈ radiusM` to within 0.002 — with at least three
supporting-claim and three counterclaim podiums, all bound to a real V1 Veritas
topic hub (`topicHubRef` must start `v1:veritas:topic-hub:`). The live debate is
`verifyV3LilithCommonsVeritasDebateTurnMachine()` (`index.ts:8371`): six
participants take 120-second turns
(`V3_VERITAS_DEBATE_HALL_TURN_DURATION_MS = 120_000`) in a **deterministic,
contiguous** order — each turn's `scheduledStartMs` must equal the previous
turn's end — with claim/counterclaim **alternation** enforced
(`participant.stance === (index % 2 === 0 ? 'claim' : 'counterclaim')`), every
turn `policyCheckRef`-moderated by the Lilith persona policy and marked
`moderationResult: 'approved'`, and no turn requiring manual intervention.
Finally `verifyV3LilithCommonsVeritasSophiaInlineCitations()` (`index.ts:8447`)
requires one Sophia-backed citation per participant claim, each
`renderMode: 'realtime-inline'` and rendering within
`V3_VERITAS_DEBATE_HALL_INLINE_CITATION_MAX_RENDER_LATENCY_MS = 120` ms, sourced
from `sophia:veritas:` with an `https://sophia.oshun.example/veritas/` URL. Turn
order is enforced so only the avatar holding a podium has the floor — a debate
stays orderly even with a full hall.

### Nyx Observatory

The Observatory re-renders V1 Nyx sky data into a planetarium dome.
`verifyV3LilithCommonsNyxDeepSkySessions()` (`index.ts:7792`) gates a guided
deep-sky session for each of the 12 GA months
(`V3_NYX_DEEP_SKY_GA_MONTH_COUNT`), every session co-led by the Nyx editorial
team (`editorialLead.role === 'nyx-editorial-lead'` with a
`credential:nyx-editorial:` reference), calendar-visible, and tied to a real Nyx
observation window
(`nyxObservationWindowId === 'nyx-observation-window:deep-sky: …'`). The marquee
events are separate: `verifyV3LilithCommonsNyxStadiumSpecialEvents()`
(`index.ts:7865`) requires an `eclipse`, a `meteor-shower`, and an `aurora`
event, each at the **stadium** capacity tier and each validated by
`isV3LilithCommonsNyxStadiumSimulationPassing()` at 4,096 simulated attendees
(`V3_NYX_STADIUM_SPECIAL_EVENT_SIM_ATTENDEES`). The Observatory is one of the
few Commons venues that legitimately needs stadium capacity, because a major sky
event draws a large simultaneous audience; the crowd-shader presence model that
serves attendance beyond 256 is the client-tier rendering documented in the
sibling client-fidelity page.

### Nisaba: The Stacks

The Stacks turns V1 Nisaba into a browsable open-stack reading room.
`verifyV3LilithCommonsNisabaOpenStackBookshelves()` (`index.ts:7932`) proves a
filled stack: 12 shelves of 18 editions each
(`V3_NISABA_OPEN_STACK_SHELF_COUNT × V3_NISABA_OPEN_STACK_EDITIONS_PER_SHELF`)
for 216 visible editions (`V3_NISABA_OPEN_STACK_VISIBLE_EDITION_COUNT`), every
edition bound to a real V1 Nisaba edition (`v1NisabaEditionRef` starts
`v1:nisaba:edition:`), every shelf full, and every edition routed to a pull URL
(`/commons/the-stacks/editions/{editionId}`). Pulling a book opens a passage
panel HUD whose content is genuinely authored, not lorem:
`V3_NISABA_PASSAGE_PANEL_CONTENT_PROFILES` (`index.ts:306`) carries twelve
tradition-specific passages — Sumerian hymn, Vedic commentary, Buddhist sutra,
classical Greek, Hebrew wisdom, Arabic philosophy, and more — each with a
canonical reference, an excerpt, and a reader cue. The passage panel is the V1
Nisaba content surface inside a world-space UMG overlay (an HTML overlay on the
Tier-2 fallback), so the canonical reading experience is reachable in 3D.

### Metis Lecture Hall

`verifyV3LilithCommonsMetisLectureHallSeating()` (`index.ts:8647`) re-renders V1
Metis lectures as a 256-seat theatre — 8 tiers of 32 seats
(`V3_METIS_LECTURE_HALL_TIER_COUNT × V3_METIS_LECTURE_HALL_SEATS_PER_TIER`) —
and folds a real performance budget into the gate: the seating plan must render
within `V3_METIS_LECTURE_HALL_MAX_RENDER_COST_MS = 16` ms with a draw-call
budget `<= 64` and the seat-glyph batch count at or under it
(`lectureHallRendersWithoutPerformanceIssue`). Every seat is avatar-anchored
with a note anchor whose notes **persist back to a V1 Metis notebook**
(`v1MetisNotebookRef === V3_METIS_LECTURE_HALL_V1_NOTEBOOK_REF`,
`persistenceStatus === 'persisted'`), so a student's in-world notes travel with
their seat and sync to their V1 record. Sibling verifiers cover the slide
projection surface, the cohort break-out flow, and private assessment-review
cells. Each seat's vertical position is even computed from its tier
(`seat.y === 0.04 + tierIndex * 0.08`), so the rake of the theatre is data, not
art.

### Tara ritual rooms and the Arete atrium

The Atrium of Practice hosts both Tara's Commons-side ritual rooms and Arete's
weekly review. `V3_TARA_RITUAL_ROOM_IDS` (`index.ts:402`) enumerates five — dawn
circle, sunset circle, new-moon, full-moon, breathwork — and the library ships a
verifier per recurring program:
`verifyV3LilithCommonsTaraMorningSunSalutationDropIn()`,
`…SunsetGratitudePractice()`, `…LunarRitualCircles()` (on the lunar calendar,
surfaced as Nyx-linked events), `…GroupBreathworkSessions()`, and
`…SolitaryPracticeCells()`. The Arete side mirrors V1's weekly review with
`verifyV3LilithCommonsAreteJournalWalls()` (opt-in, revocable reflection posts),
`…AreteCohortReviewCircles()`, and `…AreteSolitaryReviewAlcoves()`, each
persisting continuity back into the V1 Arete record. These ritual rooms are open
and drop-in rather than booked — the structured, instructor-led Tara classes are
a different surface, covered in
[./tara-instructors-classes-coaching.md](./tara-instructors-classes-coaching.md).

## Live-service programming

### Weekly programming calendar

`buildV3WeeklyProgrammingCalendarUiModel()` (`index.ts:4987`) assembles the
rolling weekly calendar that spans all three tenants — Tara, Saraswati, and
Commons — into one cross-surface UI model. Each
`V3WeeklyProgrammingCalendarSlot` carries a tenant filter, a venue label, a
capacity label, per-surface routes (`web`/`mobile`/`vr`), and a
`V3WeeklyProgrammingSubscriptionControl`. A user subscribes to a calendar
segment, and reminders fire through V1's messaging-channel substrate — the
`V3WeeklyProgrammingReminderChannel` union is exactly
`telegram | whatsapp | push | email | sms`. The VR surface gets a first-class
panel (`V3WeeklyProgrammingVrPanelModel`,
`widgetClass: 'UV3WeeklyProgrammingCalendarWidget'`, ray-press interaction,
anchored to the Atrium north wall), so the same calendar is reachable from a
headset, a phone, or the web. The calendar is the single surface where a user
discovers what is on, so it stays current rather than stale.

### Seasonal festivals

Four cross-tenant festivals are first-class report types, each with its own
publisher and gate.

| Festival              | Publisher                                                          | Gate highlights                                                                                                                                                                        |
| --------------------- | ------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Equinox Festival**  | `publishV3EquinoxFestivalProgrammingSchedule()` (`index.ts:5027`)  | 4–7 day window; Tara/Saraswati/Commons all scheduled; contiguous day coverage; Tara dawn practices + Saraswati garden ambient sets (in Garden of Cycles) + Nyx programming all present |
| **Lineage Week**      | `publishV3LineageWeekProgrammingSchedule()` (`index.ts:5131`)      | teacher-lineage talks, Nisaba scholar talks, Saraswati archival sets; talks carry a complete recording with a C2PA manifest and transcript                                             |
| **Crossover Weekend** | `publishV3CrossoverWeekendProgrammingSchedule()` (`index.ts:5227`) | Tara/Saraswati sound-bath fusions; each track carries a rights clearance that is `cleared` or `blocked`                                                                                |
| **Remembrance Days**  | `publishV3RemembranceHallMemorialProgram()` (`index.ts:5323`)      | Lantern Hall memorial; tone review must be `solemn-remembrance`, with a two-reviewer moderation floor (`V3_REMEMBRANCE_HALL_MIN_MODERATION_REVIEWERS = 2`)                             |

The Equinox gate is representative of how seriously these are validated: it
recomputes the day window from the events, checks the day indexes form a
contiguous `1..n` run (`allFestivalDaysCovered`), confirms every required tenant
appears (including co-hosts), and asserts each of the three signature event
kinds is present at its correct venue before returning `passed`. Remembrance
Days is the inverse — its tone gate exists to _block_ an inappropriately
celebratory program at a memorial, with the alternative
`inappropriate-celebratory` tone profile as the thing it rejects. A major
festival with a large expected audience triggers the operator-staffing ramp and
earlier capacity pre-warming, which are operations concerns documented in the
architecture companion.

### Featured instructors, drop-day concerts, and cohorts

The remaining live-service surfaces are real product features whose _drivers_
sit in sibling tenants, and this page is honest about the boundary. A **featured
instructor** is a monthly Tara-editorial pick that earns Atrium signage and a
paired Saraswati concert — the instructor side is in
[./tara-instructors-classes-coaching.md](./tara-instructors-classes-coaching.md).
A **drop-day concert** pairs every Saraswati single release with a live
Stadium-tier event (the `V3Mode_SaraswatiDrop` plugin), covered in
[./saraswati-personas-discography-performance.md](./saraswati-personas-discography-performance.md).
**Community cohorts** are recurring closed groups with a fixed roster and a
capacity cap (24 for Tara); enrolment closes once a cohort starts, and an
under-enrolled cohort is rescheduled rather than run thin. Where cohorts
intersect Commons safety — an adult instructor may not schedule a class that
admits minors without a cleared background check, and a minor has four surfaces
hard-locked with no bypass — the enforcing code
(`evaluateV3MinorProtectionDefaults()`, `index.ts:12575`) lives in this library
and is documented as part of the in-world safety model in the architecture
companion.

## How it connects

Commons is the social shell that the rest of V3 renders into. The venue scenes,
podium geometry, planetarium dome, and ritual rooms are authored in the
**Creator Suite — Lilith Studio**, whose scene-graph editor, accessibility
checker, and environment-promotion gates are documented in
[./creator-suite-lilith-studio.md](./creator-suite-lilith-studio.md); a venue
that fails the accessibility checker cannot be promoted past preview. The
Saraswati side of the programming calendar — drop-day concerts, festival
performances, listening parties — is
[./saraswati-personas-discography-performance.md](./saraswati-personas-discography-performance.md),
and the Tara ritual rooms and featured-instructor spotlights connect to
[./tara-instructors-classes-coaching.md](./tara-instructors-classes-coaching.md).
The full internals — the seven-surface accessibility suite, the 18-locale
localization pipeline, the in-world report → review → sanction chain, and the
world-server room runtime that spawns these venues — are traced in the
architecture companion,
[../architecture/tara-classes-aja-and-commons.md](../architecture/tara-classes-aja-and-commons.md).
The honest line throughout: the venue catalog, the per-experience verifiers, the
programming and festival publishers, and the solitary-cell privacy invariants
are real, tested TypeScript; the in-world rendering they point at is UE content
addressed by string, and the V1 bindings are references into domain data that
still lives in V1.

## Related

- [Creator Suite — Lilith Studio](./creator-suite-lilith-studio.md) — how venue
  scenes, ritual rooms, and accessibility palettes are authored and promoted
  (sibling page in this group)
- [Saraswati: Personas, Discography & Performance](./saraswati-personas-discography-performance.md)
  — the drop-day concerts and festival performances on the Commons calendar
  (sibling page in this group)
- [Tara Studio: Instructors, Classes & Coaching](./tara-instructors-classes-coaching.md)
  — the booked, instructor-led classes that the Commons ritual rooms complement
- [Tara Live Classes, Aja Coaching & Lilith Commons (architecture)](../architecture/tara-classes-aja-and-commons.md)
  — the accessibility, localization, safety, and room-runtime internals behind
  these venues
- The section hub: [../V3_features.md](../V3_features.md)
