Compare commits

..
65 Commits
Author SHA1 Message Date
jpmschweitzerandClaude Opus 4.6 2a3c6b4d12 chore(meta): release v0.1.27
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 12:36:55 +01:00
jpmschweitzer 06d9abbc63 Merge remote-tracking branch 'origin/copy'
# Conflicts:
#	content/npc-conversations/overheard.yaml
#	server/content/global/zone-types/administrative_civil.ron
#	server/content/global/zone-types/administrative_judicial.ron
#	server/content/global/zone-types/archaeological_site.ron
#	server/content/global/zone-types/commercial_market.ron
#	server/content/global/zone-types/commercial_transit.ron
#	server/content/global/zone-types/detention_facility.ron
#	server/content/global/zone-types/diplomatic_elite.ron
#	server/content/global/zone-types/entertainment_hospitality.ron
#	server/content/global/zone-types/entertainment_venue.ron
#	server/content/global/zone-types/extraction_platform.ron
#	server/content/global/zone-types/extraction_space.ron
#	server/content/global/zone-types/extraction_surface.ron
#	server/content/global/zone-types/industrial_manufacturing.ron
#	server/content/global/zone-types/industrial_processing.ron
#	server/content/global/zone-types/medical_facility.ron
#	server/content/global/zone-types/military_garrison.ron
#	server/content/global/zone-types/port_fishing.ron
#	server/content/global/zone-types/port_maritime.ron
#	server/content/global/zone-types/port_space.ron
#	server/content/global/zone-types/port_surface.ron
#	server/content/global/zone-types/research_station.ron
#	server/content/global/zone-types/residential_dispersed.ron
#	server/content/global/zone-types/residential_station.ron
#	server/content/global/zone-types/residential_surface.ron
#	server/content/global/zone-types/rural_aquaculture.ron
#	server/content/global/zone-types/rural_orbital.ron
#	server/content/global/zone-types/rural_pastoral.ron
#	server/content/global/zone-types/security_checkpoint.ron
#	server/content/global/zone-types/wilderness_frontier.ron
#	server/content/npc-conversations/overheard.ron
#	server/content/npc-conversations/overheard.yaml
#	server/content/npc-conversations/overheard.yaml.deprecated
#	tooling/validate-ron
2026-03-17 12:31:38 +01:00
jpmschweitzerandClaude Opus 4.6 034c1c6e37 fix(simulation): apply PR #94 review suggestions
- validate_ron: add eligible_roles referential integrity check against
  defined RoleSpec.id values in zone-type templates
- v01-yaml-content-audit.md: fix grep path from data/templates to
  server/data/templates in the superseded-files verification command
- pre-commit hook: comment out nonexistent check-decision-ids script
  to stop per-commit warnings until the script is implemented

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 12:25:07 +01:00
jpmschweitzerandClaude Opus 4.6 3a86b8bdad fix(copy): address PR #93 review — content fixes
Warnings fixed:
- Delete orphaned overheard.yaml (Hoshe)
- Remove validate-ron line 60 spurious single-slash regex (Hoshe+Paula)
- Replace "the car" with "the departure point" in diplomatic_elite (Miri)
- Soften dock worker accusation in ovh_ifr_003 (Miri)
- Fix relationship_context Colleague→Superior in ovh_hos_002 (Miri)

Suggestions applied:
- Fix CHANGELOG count 15→16 conversations
- Update review doc status to "all issues resolved"
- Add economic/density comment to 5 files missing it
- Fix military_garrison Social→OffDuty context on mess table primitive
- Rewrite residential_station trait-description as observable behavior
- Add gatebuilder ruin note to archaeological_site header

Follow-up tickets: #695, #696, #697

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 12:19:34 +01:00
jpmschweitzerandClaude Opus 4.6 c7a1164ae1 docs(simulation): audit and flag v0.1 YAML content (#672)
Survey 63 YAML files across content/, data/templates/, and client/data/:
14 deprecated (named NPC detective arc), 25 convertible (reusable schemas,
enums, factions), 4 already-superseded, 20 infrastructure. No deletions —
flag-only audit with recommended disposition priorities.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 12:02:35 +01:00
jpmschweitzerandClaude Opus 4.6 51febc9ab6 chore(meta): update changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 10:58:17 +01:00
jpmschweitzerandClaude Opus 4.6 c30baee373 feat(db): add cross-culture name pool collision checking to validate-ron
New --check-name-collisions mode scans all culture-*.ron files and
reports given/family names appearing in multiple culture pools.
Exits 1 on collision with machine-readable output. Sprint 26 review
caught 6 overlaps manually — this automates the check.

Ticket: #665

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 10:58:00 +01:00
jpmschweitzerandClaude Opus 4.6 d9c2811842 feat(content): replace overheard.yaml with generator-compatible RON format
Archives the 48 hand-authored overheard conversations that referenced
deleted named NPCs (Kael, Sera, Torek). New RON pool format is
parameterized by role pair and zone type, culture-neutral, with
knowledge_payload for investigative value. 15 sample conversations
across 5 zone types. Adds content pattern note to decisions/content.md.

Ticket: #664

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 10:57:49 +01:00
jpmschweitzerandClaude Opus 4.6 9a89d0cc7c feat(content): author 29 zone-type behavior templates
Completes the zone-type template library (31 total with the 2 existing).
Each file has ~4 roles x ~15 culture-neutral behavior primitives with
context tags and modifier_hints per D-142. 2,210 new primitives across
rural, industrial, port, extraction, commercial, administrative,
research, medical, military, security, entertainment, residential,
detention, archaeological, wilderness, and diplomatic zone types.

Ticket: #662

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 10:57:37 +01:00
jpmschweitzerandClaude Opus 4.6 18afede4f2 feat(simulation): add cargo audit to CI/review pipeline (#637)
Add `make audit` target running `cargo audit` with an advisory ignore for
RUSTSEC-2025-0141 (bincode, tracked by #636). Wire audit into `make pre-pr`
and `make pre-pr-server`. Add conditional cargo audit to the pre-commit hook
(triggers only when Cargo.toml/Cargo.lock are staged).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 10:40:15 +01:00
jpmschweitzerandClaude Opus 4.6 aa79dd97e7 fix(simulation): Clippy cleanup and CI enforcement (#635)
Fix all Clippy warnings across the server codebase (2411 insertions, 1341
deletions). Raise type-complexity-threshold to 750 and too-many-arguments
to 12 in .clippy.toml for idiomatic Bevy ECS system signatures. The server
now passes `cargo clippy -- --deny warnings` cleanly.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 10:33:15 +01:00
jpmschweitzerandClaude Opus 4.6 7f7706442a feat(simulation): add ZoneTypeTemplate and LocationSpec structs for D-142 (#663)
Implement the zone-type template architecture: ZoneTypeTemplate (behavior
pools per zone category), LocationSpec (instance metadata with role weights),
SocialSiteTypeSpec, RoleWeight, and LocationSocialSite. Add deserialization
tests for rural_agricultural.ron and industrial_freight.ron. Existing ZoneSpec
kept for backward compatibility.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 10:32:42 +01:00
jpmschweitzerandClaude Opus 4.6 b2ef56440f refactor(simulation): move content/ under server/ (#669)
Content files (RON templates, YAML campaigns, gauntlet data) are consumed
exclusively by the server. Colocate them at server/content/ and update all
path references in Rust source, tooling scripts, and schema files.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 10:31:20 +01:00
jpmschweitzerandClaude Opus 4.6 c0669489ff fix(docs): recount all question domain files for PR #92 round 3
Full recount across all 4 question domain files. Content: 10 resolved
(not 9), 12 open (not 13). Scope: 15 total (not 14, Q-058 was missing
from count). Grand total: 61 questions. Both questions.md summary table
and questions-content.md footer now match actual header counts.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 09:27:02 +01:00
jpmschweitzerandClaude Opus 4.6 604360620b fix(docs): address PR #92 review round 2
- Add Q-WTF-039/040/041 to questions-content.md row in README.md
- Update questions.md master index: add Q-WTF entries, fix counts
  (57→60 total, content 21→24), update footer
- Add #623 cancelled note to round-21 ticket inventory
- Add Q-WTF-041 design pass to sprint-28 candidates list

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 09:16:21 +01:00
jpmschweitzerandClaude Opus 4.6 a69c75d4ae fix(docs): address PR #92 review comments
- Fix D-134 cross-references to point to architecture.md (not content.md)
- Fix stale #620 reference in D-147 body (now #679)
- Fix content.md footer count (44, not 45)
- Add D-145, D-146, D-147 to decisions/README.md index
- Add Q-WTF-041 entry to questions-content.md (was referenced but untracked)
- Fix sprint-28-candidates.md totals line
- Align spelling to British "customisation" throughout new decisions
- Add information boundary classification to D-147 (public trait, per D-010)
- Add "first message" instruction to proposer rules in sprint-start skill

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 08:26:58 +01:00
jpmschweitzerandClaude Opus 4.6 8db83b1589 fix(skills): add proposer/executor roles for planning team spawns
Sprint 27 planning session exposed that discussion agents (Ozzie) can
unilaterally write decisions and modify the DB before consensus is
reached. Add step 8d-planning to /sprint-start that classifies agents
as proposers (analyze only) or executors (SI, Qatux — wait for
consensus). Also add planning to valid team branches.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 08:15:35 +01:00
jpmschweitzerandClaude Opus 4.6 0d18c76dfa feat(docs): assign teams to v0.2 story tickets (#614-#626)
Resolve Q-WTF-039 (tile-scale heavy zoom, not portrait — D-146) and
Q-WTF-040 (aesthetic taste trait as shared root — D-147). Split #617
into server generator + client rendering, split #620 into server
culture resolution + client location picker. Sprint 28 candidate list
with 7 unblocked tickets.

Ticket: #676

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 08:10:29 +01:00
jpmschweitzerandClaude Sonnet 4.6 2fddf8b6ca chore(meta): plan Sprint 27: Scale
9 tickets assigned. Teams: server (5), copy (3), planning (1).
Sprint goal: extend zone-type template library from 2 to 31 zone types,
wire server structs for D-142, eliminate Clippy debt.

New ticket #676 created: assign teams to v0.2 story backlog (#614-#626).
Tickets #669 and #672 reassigned from maintenance to server.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 22:47:55 +01:00
jpmschweitzerandClaude Opus 4.6 9855a16a74 chore(meta): update changelog
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 22:33:39 +01:00
jpmschweitzerandClaude Opus 4.6 55fd30f692 fix(docs): rename GJ-7547 from Wag-'n-Bietjie to Skemeraand
"Twilight evening" — fits the corridor position (hop 22, one before
Abzu at terminus) without looking cartoonish next to the gravitas
of the deep frontier. Updated index.md etymology, GTTR entry,
Abzu references, and deep frontier regional index.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 22:17:49 +01:00
jpmschweitzerandClaude Opus 4.6 a28979dcb3 feat(docs): write 61 deep_frontier GTTR entries + regional index
Complete Drifter's Guide coverage for the Deep Frontier.
61 new entries from hop 3 (Cairnside) to hop 23 (Abzu),
plus updated gttr-deep.md index with all 61 deep systems.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 22:13:48 +01:00
jpmschweitzerandClaude Opus 4.6 ec4576b6aa feat(docs): write 51 west_reach GTTR entries + regional index
Complete Drifter's Guide coverage for the West Reach corridor.
51 new entries from hop 4 (Kapteyn's Star) to hop 17 (Yttermark),
plus updated gttr-west.md index with all 53 west systems.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 22:13:38 +01:00
jpmschweitzerandClaude Opus 4.6 a853e1ccb4 feat(docs): write 50 east_reach GTTR entries + regional index
Complete Drifter's Guide coverage for the East Reach corridor.
50 new entries from hop 4 (Nová Tržnice) to hop 9 (Xa Vời),
plus updated gttr-east.md index with all 54 east systems.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 22:12:48 +01:00
jpmschweitzerandClaude Opus 4.6 1f3151d8b4 feat(docs): write 52 south_reach GTTR entries + regional index
Complete Drifter's Guide coverage for the South Reach corridor.
52 new entries from hop 3 (Travessia) to hop 8 (Punta del Sol),
plus updated gttr-south.md index with all 53 south systems.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 22:12:19 +01:00
jpmschweitzerandClaude Opus 4.6 95c5bebdee feat(docs): write 49 north_reach GTTR entries + regional index
Complete Drifter's Guide coverage for the North Reach corridor.
49 new entries from hop 3 (Crown's Hollow) to hop 12 (Rekohu),
plus updated gttr-north.md index with all 55 north systems.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 22:08:53 +01:00
jpmschweitzerandClaude Opus 4.6 26d73e9ddd feat(docs): write The Narrows (GJ-875) — last placeholder system
Unsettled through-route at hop 14 between Paso Largo and Travessia.
This was the final PLACEHOLDER stub in the star systems wiki.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 10:36:50 +01:00
jpmschweitzerandClaude Opus 4.6 5a7cabe694 feat(docs): write 18 deep_frontier star system wiki pages (hops 13-23)
Replace PLACEHOLDER stubs with full prose for the deep corridor chain:
GJ-201 (unsettled junction), Paso Largo, Orchard's End, Sonnenkap,
Travessia, Kettenschmied, Pedra Seca, Claraboia, GJ-3943 (unsettled),
GJ-726 (unsettled), Eerste Wacht (wave_2 anomaly), Nova Estrada,
Helderoog, Entremeio, Candeia, Wag-'n-Bietjie (wave_2 anomaly),
Abzu (terminus). Also updates Dalim (GJ-127A) cross-references.

Fixes duplicate Passagem name (GJ-147 renamed to Entremeio) and
Entrocamento typo (corrected to Entroncamento).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 10:18:23 +01:00
jpmschweitzerandClaude Opus 4.6 7546fb0ad2 feat(docs): write 10 south_reach star system wiki pages (hops 5-6)
Replace PLACEHOLDER stubs with full prose for: Mocamedes (GJ-644C),
Porto Fechado (GJ-785), Entroncamento (GJ-3323), Passagem (GJ-473A),
Retiro (GJ-536), Mavela (GJ-644A), Solandar (GJ-827), Posto Avancado
(GJ-829), Farol (GJ-83.1), The Lantern (GJ-388, unsettled hub).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 10:18:01 +01:00
jpmschweitzerandClaude Opus 4.6 7a5398758f feat(docs): write 6 north_reach star system wiki pages (hops 5-6)
Replace PLACEHOLDER stubs with full prose for: Fenwick's Lantern
(GJ-285), Dunmore Stillwater (GJ-300), Uusi Vantaa (GJ-3820),
Harrowfield (GJ-588), Kelburn Crossing (GJ-216A), Greymantle (GJ-638).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 10:17:47 +01:00
jpmschweitzerandClaude Opus 4.6 307b77df46 fix(docs): review cleanup — frontmatter, templates, index links, workshop stub
- Add YAML frontmatter to nordmark-skog.md and talbrau.md
- Update star-system template to match actual 300-page structure
- Fix 10 broken companion star links in star-systems/index.md
- Add workshop-outcomes.md stub for paused GJ 6711 workshop

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 08:53:18 +01:00
jpmschweitzerandClaude Opus 4.6 a3baec4b04 feat(docs): add Calloway Distillery and thrds corporation pages, corporation template
Write full wiki pages for the two missing north_reach corporations
referenced in the corporations index. Content derived from existing
system pages (GJ-3325 Calloway Reach, GJ-475 Braemar). Add
corporation template to wiki/_templates/.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 08:53:06 +01:00
jpmschweitzerandClaude Opus 4.6 5402435045 fix(docs): review cleanup — broken anchors, typo, status updates, db backup
- Fix 3 broken D-036/D-128 anchor slugs in decisions/content.md
- Fix typo: Stalowsia → Stalownia in stalownia-kowalski.md
- Mark proposed-llm-voice.md as superseded (D-138)
- Mark smuggler-moral-arc.md and smuggler-voice-card.md as v0.1-only
- Snapshot settledreach.db after planning branch merge

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 01:24:27 +01:00
jpmschweitzerandClaude Opus 4.6 cfd6ba973c fix(content): rename Vargr system to Sindri (GJ 3522)
Rename to avoid association with Traveller RPG species name.
GJ catalog ID unchanged. Updates system page, Drifter's Guide,
cross-references from Kensho and Renaissance, catalog, index,
and cultural migration design doc.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 01:24:13 +01:00
jpmschweitzerandClaude Opus 4.6 a301fdab47 fix(content): purge all remaining Krenn references
Replace every occurrence of "Krenn" with "Van Maanen's Star" (or
contextual variants like VMS for locale codes, Van Maanen for proper
noun contexts). Covers CHANGELOG, briefings, workshop docs, sprint
briefings, environmental text examples, templates, ticker content,
and architecture docs.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 01:24:04 +01:00
jpmschweitzerandClaude Opus 4.6 1782592dfd chore(meta): update changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 00:51:56 +01:00
jpmschweitzerandClaude Opus 4.6 a20447ab81 docs(diagrams): add star map topology and coordinate SVGs
Two star map visualizations: topology view (hop-based layout)
and real-coordinate view (spatial positions).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 00:51:38 +01:00
jpmschweitzerandClaude Opus 4.6 53a0e3f6b5 docs(workshops): add Abzu carry-out proposals (unresolved)
Round 6: four agents responded to the project lead's challenge
"what do you walk away with?" Gore proposed Threshold Attunement
and Attend verb (too philosophical, not literal enough). Gestalt
proposed vigil_vocabulary flag and Establish Watch verb. Nigel
proposed cross-playthrough WATCHER persistence flag. Ozzie
proposed door-measuring as retroactive evidence reading (thin
but visceral). Lead verdict: "too much philosophy too little
lootbox" — parking this for later. The reward design is TBD.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 00:51:31 +01:00
jpmschweitzerandClaude Opus 4.6 c8cead39f3 docs(workshops): add Abzu mechanics design
Round 5: Gestalt translated world texture into playable verbs.
Watch Investment Counter (hidden 0-100), six player verbs
(Watch, Investigate, Converse, File, Document, Depart), bleed
tile states, Adams & Ford entry as accumulated field notes,
investment-scaled gate departure monologue, storyteller
de-escalation. Project lead noted: "extraordinary world texture
and zero playable verbs" — this document fills that gap.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 00:51:20 +01:00
jpmschweitzerandClaude Opus 4.6 c765158b59 docs(workshops): add GJ 6711 final syntheses with Abzu naming
Round 4: final positions incorporating the name Abzu and all
challenge results. Locked decisions: high-bleed as failed vigil
canon, vigil predates human tenure, Institute paralyzed by
faction conflict, non-resolution principle. Araminta added
upwelling lighting gradient, departure transit spec, Mode 3
Institute transient vocabulary. Paula endorsed Option C for
the inner envelope. Miri specified six sealed envelope additions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 00:51:10 +01:00
jpmschweitzerandClaude Opus 4.6 9e7c83b969 docs(workshops): add GJ 6711 stress test challenges
Round 3: all four agents challenged the sealed envelope against
existing Builder/Interstitium/Gate lore. Key finding: no
contradictions with canon. All four independently converged on
high-bleed gates = failed vigil signal. All four endorsed the
vigil predating human tenure. Inner sealed envelope identified
as required for implementation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 00:51:02 +01:00
jpmschweitzerandClaude Opus 4.6 403b168ced docs(workshops): add sealed envelope and project lead direction
The sealed envelope: canonical internal truth about what the
vigil watches — observation is load-bearing, the founding
settlers were recruited, the doors accommodate non-human
shift-takers. Project lead direction: verbatim creative
decisions and critiques across all workshop rounds. Everything
up for grabs when the lead changes their fickle mind.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 00:50:49 +01:00
jpmschweitzerandClaude Opus 4.6 1f48bebe77 docs(workshops): add GJ 6711 cross-pollination syntheses
Round 2: each agent read all four briefs and synthesized.
Key convergences: the doors as load-bearing detail, Adams &
Ford entry as mechanic, community warmth-without-origin.
Nigel self-cut "memory-without-event" archetype. Paula revised
tier 4 from "they know" to "they've stopped asking."

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 00:50:40 +01:00
jpmschweitzerandClaude Opus 4.6 84d537cd4d docs(workshops): add GJ 6711 initial briefs — four perspectives
Round 1 of the Abzu workshop: Miri (worldbuilding), Paula
(narrative), Nigel (replayability), Araminta (visual design)
each produced independent briefs for the furthest system at
hop 23. Key seeds: Adams & Ford commission frame, the four
investigative frames, the "picture won't close" mechanic,
K-type amber palette, and the doors that are 10-15% too tall.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 00:50:32 +01:00
jpmschweitzerandClaude Opus 4.6 cfd3706fca feat(docs): write batch 20 — deep_frontier hops 10-12, 17 systems
5 settled, 12 unsettled (71% empty):
- Ouplaas (GJ 528A) — wave_2 Afrikaans, 400 years at hop 10
- Saudade (GJ 1267) — voluntary exile-adjacents near Recanto
- Fluchtburg (GJ 428A) — Assembly military deserters
- Fernlicht (GJ 61) — scholar-exile community, G-type at hop 12
- Einde (GJ 407) — industrial accident refugees, dead end

Attractive unclaimed worlds: GJ 524 (G-type garden world),
GJ 5, GJ 69, GJ 853A (mineral deposits), GJ 868 (disputed
"Encontro" between two Portuguese communities).

Marginal/unattractive: GJ 394, 146, 177, 3403, 354A, 656, 616.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 23:02:11 +01:00
jpmschweitzerandClaude Opus 4.6 7018cf9a00 fix(docs): batch 19 review — soften Commission presence at GJ-482B
Travessa (hop 8) had an active customs presence described, exceeding
the nominal/distant authority gradient for this depth. Changed to
passive record-keeping through Syndic office filings.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 21:15:47 +01:00
jpmschweitzerandClaude Opus 4.6 8a3d9efe34 feat(docs): write batch 19 — deep_frontier hops 8-9, 18 systems
Afrikaans deep north: Droëland (GJ 914A), Skuilplek (GJ 722)
Germanic deep frontier: Leuchtturm (GJ 142), Vorposten (GJ 309),
  Helle Wacht (GJ 598), Randgebiet (GJ 349), Neugrund (GJ 675),
  Altgrund (GJ 189), Tiefenbach (GJ 174)
Portuguese south deep: Sertão (GJ 138), Travessa (GJ 482B),
  Pedra Funda (GJ 204), Dois Sóis (GJ 707), Recanto (GJ 556),
  Encruzilhada (GJ 211)
Unsettled: GJ 324A, GJ 425A, GJ 167

Five "fleeing from" narratives: Commission regulatory crackdown
(Skuilplek), theological schism (Pedra Funda), political exile
(Recanto), Compact dissidents (Helle Wacht), Gate Silence
survivors (Encruzilhada). Plus Secession-era flight (Tiefenbach)
and refugee absorption (Altgrund).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 21:14:19 +01:00
jpmschweitzerandClaude Opus 4.6 f141448a17 fix(docs): batch 18 review — fix 14 errors from Paula audit
Profile table spectral classes corrected to match DB star_type for:
GJ-183, GJ-661B, GJ-508A, GJ-603, GJ-92, GJ-434, GJ-49, GJ-117,
GJ-169, GJ-286, GJ-3442, GJ-1235, GJ-356A (13 systems).

Prose fixes where Miri wrote around invented spectral types:
GJ-92 (G0V→K-type), GJ-434 (G8Vvar→M-dwarf flare), GJ-49 (K5V→M-dwarf),
GJ-117 (K1V→M-dwarf), GJ-169 (K7V→M-dwarf), GJ-286 (K0IIIvar→G-type).

Structural fixes:
- GJ-508A: "three stops back" → "one gate back" (Breëvlei is adjacent)
- GJ-2097: authority gradient softened with wave_2 age justification

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 18:22:29 +01:00
jpmschweitzerandClaude Opus 4.6 ee82ae8276 chore(meta): update changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 18:20:46 +01:00
jpmschweitzerandClaude Opus 4.6 ed5477c826 feat(docs): add Compact of Westphalia faction page
Mutual recognition treaty among ~30-40 west_reach systems at hops 6-16.
Covers origin, four core principles, rotating council structure,
membership tiers, Assembly response, economic infrastructure, and the
internal treaty-vs-government tension. Cross-referenced with Ostmark,
Freiholt, Altmark, Groenland, Echternach, and VGV.

Added Regional Factions section to factions index.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 18:20:10 +01:00
jpmschweitzerandClaude Opus 4.6 e4a074ea33 docs(docs): rebuild catalog.md and star-systems/index.md
Both files were severely outdated (~hop 5 coverage). Rebuilt from
database + star-map.json + wiki page names. Now covers all 301
systems, 227 named, organized by sector and hop distance.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 18:17:43 +01:00
jpmschweitzerandClaude Opus 4.6 fa3fbbc04b feat(docs): write batch 18 — reassigned deep_frontier and corridor extension systems
18 systems across all sectors, hops 5-9:
- North: Waterkant, Breëvlei, GJ 3988 (unsettled), Stilwater, Mossbank
- South: Ribeirão, Nascente, GJ 92 (unsettled)
- East: GJ 434 (unsettled), Dernier Quai, GJ 117 (unsettled)
- West: Marktfeld, Bestevaer (Dutch ocean world), Lichtung
- Deep frontier: Knotenpunkt, Posto Avançado, Weitblick, Último Farol

Includes 14 systems reassigned from deep_frontier into named corridors
at hops 5-7, plus 4 remaining deep_frontier at hop 7.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 18:17:33 +01:00
jpmschweitzerandClaude Opus 4.6 39dec24162 feat(docs): add Vins de Grand Vide corporation doc
West_reach négociant wine cooperative at Confluent (GJ 395). 350-year
distribution network, Grand Vide Classé certification system, 60+
member estates. Updated corporations index.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 16:19:39 +01:00
jpmschweitzerandClaude Opus 4.6 14320b5856 feat(docs): write named sector deep corridor pages (batch 17)
Eight systems completing named sector coverage: Xa Vời (GJ 3612,
east_reach hop 9), Eisfeld (GJ 3586, hop 10), Confluent (GJ 395,
hop 10 wine region + Vins de Grand Vide), Dunkelholz (GJ 615,
hop 11), GJ 4056 (unsettled hop 12), Echternach (GJ 127B, hop 13
Luxembourgish), Bout du Chemin (GJ 282A, hop 15 French), Grenzstein
(GJ 807, hop 16 frontier).

French and Luxembourgish heritage added to west_reach deep corridor.
60+ named châteaux at Confluent.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 16:19:28 +01:00
jpmschweitzerandClaude Opus 4.6 07fd60b5c5 docs(docs): add D-145 base building DLC scope decision
GJ 902 unclaimed habitable moon designated as future player
settlement site for base building DLC.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 15:53:34 +01:00
jpmschweitzerandClaude Opus 4.6 312c0001c0 feat(docs): write south_reach deep corridor wiki pages (batch 16)
Thirteen south_reach systems at hops 7-8: Espinho (GJ 1075, unusual
star observatory), Okahandja (GJ 27, Herero pastoral), GJ 325B
(unsettled asteroid field), Encrucijada (GJ 393, new 5-gate hub),
Quilombo (GJ 423B, Afro-Brazilian self-governance), Velha Guarda
(GJ 4A, 400-year Cape Verdean), Fragua (GJ 567, Kowalski downstream),
Aguas Bravas (GJ 688, Canarian fishing), GJ 902 (unsettled habitable
moon), Puerto Último (GJ 197), Mirante (GJ 435), Roça Nova (GJ 67),
Punta del Sol (GJ 737B).

GJ 902 set to unsettled in database — habitable moon reserved for
future base building DLC (D-145).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 15:53:23 +01:00
jpmschweitzerandClaude Opus 4.6 e17863f8c0 feat(docs): write Shimanami wiki page (batch 15)
GJ 848 — east_reach through-route at hop 8 between Oshima and Dài Lộ.
F-type star, wave_3 extraction settlement outgrowing Oshima's
administrative charter after 300 years.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 14:58:34 +01:00
jpmschweitzerandClaude Opus 4.6 09c84c2f1e feat(docs): write north_reach terminus wiki pages (batch 14)
Three north_reach systems at hops 7-8: Wagtoring (GJ 410, Oude Kraal
outstation), Dunmore (GJ 653, Scottish mining through-route),
Caledonia's End (GJ 95, binary dead-end terminus).

Fixed star type headers to match READ-ONLY profiles (M→K for GJ 410
and GJ 653, binary→G for GJ 95).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 14:07:44 +01:00
jpmschweitzerandClaude Opus 4.6 a64baf9ac5 fix(docs): correct cross-reference errors in Bergtor and Sonnwend
Bergtor (GJ 505A): GJ 454 described as "stub without significant
industrial development" — corrected to reflect Steinfeld's active
quarrying economy. Sonnwend (GJ 320): GJ 798 described as "a stub" —
corrected to acknowledge Brückenau's through_route topology.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 13:49:32 +01:00
jpmschweitzerandClaude Opus 4.6 a16b76ea3d feat(docs): add Nordmark Skog and Talbräu corporation docs
West_reach forestry corporation (Stillvakt) and brewing cooperative
(Brückenau). Updated corporations index.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 13:49:17 +01:00
jpmschweitzerandClaude Opus 4.6 079a5e7adc feat(docs): write west_reach corridor wiki pages (batch 13)
Six west_reach systems at hops 7-8: Stillvakt (GJ 534, Nordmark Skog
timber), Haltefenn (GJ 1248, ancient peat bog), Vindkast (GJ 414A,
wind-scoured prospectors), Kopparhytta (GJ 542, copper smelting),
Steinfeld (GJ 454, alpine quarrying), Brückenau (GJ 798, Talbräu
brewing waystation).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 13:49:10 +01:00
jpmschweitzerandClaude Opus 4.6 a9de660895 chore(meta): update changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 13:35:34 +01:00
jpmschweitzerandClaude Opus 4.6 5826e2499e feat(docs): add Ferreira Monteiro and Stalownia Kowalski corporation docs
Trade arbitration firm (Matamba) and heavy equipment manufacturer
(Nowa Huta). Updated corporations index with both entries.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 13:21:24 +01:00
jpmschweitzerandClaude Opus 4.6 8e5953455c feat(docs): write south_reach corridor wiki pages (batch 12)
Ten south_reach systems at hops 5-6: Matamba (GJ 884, Ferreira Monteiro
home), Inhambane (GJ 54, grain corridor), Isibaya (GJ 905, livestock
market), GJ 695A (unsettled), Kaapse Baai (GJ 213, spice trade),
Mwangaza (GJ 693, textile corridor), Dzimbahwe (GJ 4053, stone
architecture), Vuurkloof (GJ 35, geothermal), Várzea (GJ 299,
floodplain agriculture), Nowa Huta (GJ 896A, Stalownia Kowalski).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 13:21:18 +01:00
jpmschweitzerandClaude Opus 4.6 b467d4bdbd feat(docs): write inner hub wiki pages and Mercado corporation doc
Five inner stubs (hops 3-4) written with extra care for topographic
position and narrative opportunity:
- Travessia (GJ 1156): core/south_reach gateway junction, home of
  Mercado Travessia supermarket chain
- Crown's Hollow (GJ 661A): British monarchy in exile, European
  royalty purge refugees, Kiyomi-Battenberg-Windsor dynasty
- Cairnside (GJ 892): wave_5 materials science research settlement
  in the Cairn pocket, studying variable star conditions
- Nová Tržnice (GJ 105A): Czech free-port commercial bazaar at
  east_reach junction, hundreds of small manufacturers
- Schuilhoek (GJ 68): wave_3 Dutch farming community hidden in
  Cairn pocket for 300 years across four cultivated worlds

GJ 68 settlement_wave updated from wave_5 to wave_3 in database.
Mercado Travessia corporation doc and index entry added.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 12:03:04 +01:00
681 changed files with 27852 additions and 2960 deletions
+64 -1
View File
@@ -25,7 +25,8 @@ The current branch IS the team. Read it with:
git branch --show-current
```
Valid team branches: `server`, `client`, `copy`, `audio`, `visual`, `ci`.
Valid team branches: `server`, `client`, `copy`, `audio`, `visual`, `ci`,
`planning`.
If on `main`, follow the **Main branch workflow** below instead of
the team branch workflow (steps 2–8).
@@ -399,6 +400,68 @@ Task(
)
```
#### 8d-planning. Planning team variant — proposers vs executors
When the team is `planning`, agents work in discussion mode, not
implementation mode. The briefing typically defines discussion rounds
(propose → review → execute). Most agents are **proposers** — they
analyze and recommend. Only designated agents **execute** (write to
files, modify DB).
**Classify agents from the briefing:**
- **Executor agents:** SI (project manager), Qatux (documenter).
These agents wait for consensus before writing anything.
- **Proposer agents:** Everyone else (Gestalt, Tyre, Paula, Ozzie,
etc.). These agents analyze, propose, and discuss — they do NOT
write decision files, modify the DB, or create/delete tickets.
**Add this block to proposer agent prompts** (replaces rules 3–5
and the WORKFLOW section from the standard template):
```
PLANNING TEAM RULES (replace standard rules 3-7 and WORKFLOW):
3. PROPOSE ONLY: You are a discussion participant. Your job is
to ANALYZE tickets, PROPOSE team assignments, and RECOMMEND
splits. You do NOT:
- Write or modify decision files (decisions/*.md)
- Run DB update/insert/delete commands
- Create, delete, or modify tickets
- Mark tasks as completed
Those actions belong to executor agents (SI, Qatux) after
the team lead confirms consensus.
4. OUTPUT FORMAT: Your first message to the team lead should
be your full analysis. Structure it as:
- Your position on open questions (with rationale)
- Proposed team assignments (table format)
- Split candidates (if any)
- Sprint readiness assessment
Do NOT claim or work tasks. The team lead coordinates.
5. WAIT FOR CONSENSUS: Do not treat your own proposal as
decided. Other agents may disagree. The team lead calls
consensus and directs executors to implement it.
```
**Add this block to executor agent prompts** (appended after the
standard rules):
```
PLANNING TEAM RULES (additional):
8. WAIT FOR CONSENSUS: Do NOT execute DB changes, write
decision files, or create tickets until the team lead
explicitly tells you to. Your first message should confirm
you are ready and describe your execution plan. Then wait.
9. EXECUTE EXACTLY WHAT IS DIRECTED: When the team lead sends
you a list of changes, execute them precisely. Do not add
extra changes, reinterpret the instructions, or fill gaps
with your own judgment. If something is ambiguous, ask
before executing.
```
#### 8e. Report
Output to the user:
+15 -1
View File
@@ -21,7 +21,21 @@ run_check() {
# --- Checks ---
run_check "tooling/check-fact-ids" "fact_id validation"
run_check "tooling/check-decision-ids" "decision ID duplication"
# TODO: uncomment when tooling/check-decision-ids is implemented
# run_check "tooling/check-decision-ids" "decision ID duplication"
# Run cargo audit only when Cargo.toml or Cargo.lock changed
if git diff --cached --name-only | grep -qE '(Cargo\.toml|Cargo\.lock)$'; then
echo "pre-commit: Cargo dependency change detected — running cargo audit..."
if command -v cargo-audit >/dev/null 2>&1 || cargo audit --version >/dev/null 2>&1; then
if ! (cd "$REPO_ROOT/server" && cargo audit); then
ERRORS=$((ERRORS + 1))
fi
else
echo "pre-commit: WARNING — cargo-audit not installed, skipping advisory check"
echo " Install with: cargo install cargo-audit"
fi
fi
if [ "$ERRORS" -gt 0 ]; then
echo ""
+39 -10
View File
@@ -6,8 +6,33 @@ Format based on [Keep a Changelog](https://keepachangelog.com/).
## [Unreleased]
## [v0.1.27] — 2026-03-17
### Added
- 300-system CSV framework (systems-framework.md) — 66 columns covering colonization waves, cultural archetypes, tone framework, economic distribution, and Krenn validation (D-095)
- 29 zone-type behavior templates completing the full library of 31 zone types per D-142. 2,210 culture-neutral behavior primitives across rural, industrial, port, extraction, commercial, administrative, research, medical, military, security, entertainment, residential, detention, archaeological, wilderness, and diplomatic zones
- Generator-compatible overheard conversation RON format replacing the deprecated named-NPC YAML. 16 sample conversations parameterized by role pair and zone type with knowledge_payload for investigative value
- Cross-culture name pool collision checking in validate-ron (`--check-name-collisions` mode)
- Drifter's Guide to the Reach — 100% coverage (301/301 systems). 262 new GTTR entries across all 5 regions plus updated regional index pages with hop-grouped tables
- GJ 6711 / Abzu workshop — 6 rounds, 24 documents: initial briefs (4 agents), cross-pollination syntheses, sealed envelope (observation is load-bearing), stress test challenges against existing canon, final syntheses with Abzu naming, mechanics design (watch investment counter, six player verbs, bleed tile states, Adams & Ford entry filing), carry-out proposals (unresolved — reward design TBD)
- Star map topology and real-coordinate SVG visualizations
- Compact of Westphalia faction page — mutual recognition treaty, ~30-40 west_reach systems, four core principles, rotating council, internal treaty-vs-government tension
- Batch 18 wiki pages — 18 systems reassigned from deep_frontier into named corridors (Waterkant, Breëvlei, Stilwater, Mossbank, Ribeirão, Nascente, Dernier Quai, Marktfeld, Bestevaer, Lichtung, Knotenpunkt, Posto Avançado, Weitblick, Último Farol, plus 4 unsettled)
- Batch 17 wiki pages — Xa Vời, Eisfeld, Confluent (60+ wine châteaux), Dunkelholz, Echternach (Luxembourgish), Bout du Chemin (French), Grenzstein, plus GJ 4056 (unsettled)
- Corporation doc for Vins de Grand Vide — négociant cooperative, three-tier classification (Grand Vide Classé / Vins de Corridors / Vin de Table du Vide), 6 named estates, 350-year commercial archive
- Batch 16 wiki pages — 13 south_reach systems at hops 7-8 including Espinho, Okahandja, Encrucijada, Quilombo, Velha Guarda, Fragua, Puerto Último, plus GJ 902 (unsettled, reserved for base building DLC per D-145)
- Batch 15 wiki page — Shimanami (east_reach hop 8)
- Batch 14 wiki pages — Wagtoring, Dunmore, Caledonia's End (north_reach hops 7-8)
- Batch 13 wiki pages — Stillvakt, Haltefenn, Vindkast, Kopparhytta, Steinfeld, Brückenau (west_reach hops 7-8)
- Corporation docs for Nordmark Skog (timber, Stillvakt) and Talbräu (lager, Brückenau)
- D-145: base building DLC — GJ 902 habitable moon as potential player settlement site
- South_reach wiki pages (batch 12) — Matamba, Inhambane, Isibaya, Kaapse Baai, Mwangaza, Dzimbahwe, Vuurkloof, Várzea, Nowa Huta, plus GJ 695A (unsettled)
- Corporation docs for Ferreira Monteiro (trade arbitration, Matamba) and Stalownia Kowalski (heavy equipment, Nowa Huta)
- East_reach wiki pages (batch 11) — Kaur's Observatory, Seongho, Tình Yên, Purnima, Marunong, Clearwater Station, Tam Giang, Jeonnam, Dagat, Suối Vàng
- Inner hub wiki pages (hops 3-4) — Crown's Hollow, Cairnside, Schuilhoek, Travessia, Nová Tržnice
- Corporation doc for Mercado Travessia (grocery chain, Travessia)
- Corporation docs for Adams & Ford Publishing, Calloway Distillery, thrds (updated index)
- 300-system CSV framework (systems-framework.md) — 66 columns covering colonization waves, cultural archetypes, tone framework, economic distribution, and Van Maanen's Star validation (D-095)
- Star map gate topology — 300-node network with 334 edges across 6 sectors, generated and hand-tuned for natural corridor structure in frontier space
- Star map generation pipeline — seed-based generator, sculpting script, core sector patcher, topology tuner with bridge-safe connectivity guarantees
- d2 sector diagrams — 6 sector maps + overview visualization of gate network
@@ -19,6 +44,10 @@ Format based on [Keep a Changelog](https://keepachangelog.com/).
- `hop_distance_from_gateway` column in system_gates table
### Changed
- Renamed GJ-7547 from Wag-'n-Bietjie to Skemeraand ("twilight evening") — better tonal fit for hop 22 position
- Rebuilt catalog.md and star-systems/index.md — now covers all 301 systems (227 named) organized by sector and hop distance
- 14 systems reassigned from deep_frontier into named corridors at hops 5-7 (5 north, 3 south, 3 east, 3 west)
- Renamed Carrefour to Confluent; expanded to 60+ named châteaux with 16 individually described estates
- D-095 aperture range amended from 4-8 to 1-8 — single-aperture dead-end systems valid for isolated frontier outposts
- D-095 amended: inter-system gates are alien-built (aperture count alien-determined), intra-system span gates are human-built (Institute reverse-engineering, Gate Corporation license)
- All system identifiers migrated from arbitrary S-numbers to GJ astronomical catalog IDs
@@ -48,13 +77,13 @@ Format based on [Keep a Changelog](https://keepachangelog.com/).
### Removed
- v0.1 content loading system — server/src/content/ module (8200 lines), tooling/content-converter/, tooling/validate-content, content-ron/, content/_meta/ (#655, D-122)
- AiDialogueDetector — duplicate of HardwareDetector, replaced by PlatformInfo abstraction (#659)
- v0.1 hand-authored Krenn dialogue, monologue, and NPC profiles — 64 files superseded by generated NPCs (#656, D-122)
- v0.1 hand-authored Van Maanen's Star dialogue, monologue, and NPC profiles — 64 files superseded by generated NPCs (#656, D-122)
- Detective mission system — investigation knowledge, lattice-commission faction, design docs, workshop archives (#657, D-117)
### Fixed
- Name pool cross-contamination — zero overlaps across Krenn, Vael, and Osse cultures
- Name pool cross-contamination — zero overlaps across Van Maanen's Star, Vael, and Osse cultures
- D-141 → D-142 reference correction in zone-type templates
- Modifier coverage expanded to 2+ per category for all cultures; authority_response differentiated Krenn/Osse
- Modifier coverage expanded to 2+ per category for all cultures; authority_response differentiated Van Maanen's Star/Osse
- Gendered pronouns removed from culture-neutral zone-type templates
- Ungrounded lore terms (Syndic, Meridian registration) replaced with generic descriptors in Osse culture
- Stale notes in content-structure-canonical.md and base-text-authoring-guide.md corrected
@@ -75,7 +104,7 @@ Format based on [Keep a Changelog](https://keepachangelog.com/).
- Behavior dedup — same behavior string no longer assigned to multiple NPCs in one zone run (#629)
### Added
- Zone identity specs renamed to location-specific: krenn-rural-zone.ron and krenn-industrial-zone.ron — acknowledges these are culture×zone content, not reusable templates (#630, Q-057)
- Zone identity specs renamed to location-specific: van-maanens-star-rural-zone.ron and van-maanens-star-industrial-zone.ron — acknowledges these are culture×zone content, not reusable templates (#630, Q-057)
- ~108 new NPC behavior pool entries across all roles in both zone files — trader stage directions, foreman humanity behaviors, dock_worker/technician off-shift/break room behaviors (#630)
- Q-057 open question: composable behavior generation — decompose hand-authored pools into role actions + culture modifiers + context tags (#633, #634)
- Relationship-to-behavior pipeline — NPC behavior lines now reflect social connections (rivals ignore each other, friends gravitate, subordinates defer) (#631)
@@ -183,7 +212,7 @@ Format based on [Keep a Changelog](https://keepachangelog.com/).
- Consolidate near-identical unit tests with integration counterparts
### Changed
- Sova station profile updated — horizon gates located at The Krenn Ring (800 AU), not on Station Sova; Admin Hub houses transit processing facility only
- Sova station profile updated — horizon gates located at The Van Maanen Ring (800 AU), not on Station Sova; Admin Hub houses transit processing facility only
- game_state.gd: stationary_ticks and zone_id now read from server snapshot with deprecated client-side fallbacks (#557, D-020)
- dialogue_box.gd: decoupled from GameState and AudioManager via signals — zero direct autoload references (#558, D-020)
- main.gd: snapshot dispatch via SnapshotEventRouter, dialogue signal coordinator handlers (#559, #558)
@@ -361,7 +390,7 @@ Format based on [Keep a Changelog](https://keepachangelog.com/).
- Text display hierarchy spec — 4 content pipelines (dialogue, monologue, observation, environmental) with z-layers and positioning (#316)
- Sound indicator visual design — fog-edge pulse for D-018 three-range sound model with direction encoding and range differentiation (#317)
- THE FRIEND visual treatment spec — 3-phase earned visual detail for Kael Davan and Sera Venn (#318)
- Environmental text visual standards — signage, terminal, and news ticker rendering with bilingual Concordat/Krenn treatment (#334)
- Environmental text visual standards — signage, terminal, and news ticker rendering with bilingual Concordat/Van Maanen's Star treatment (#334)
- Tell visual/behavioral expression spec — 5 tell categories mapped to 6 Tier 2 behaviors (#251)
- Monologue line pool maxLength raised from 160 to 256 chars (soft guidance ≤160)
- NPC name masking infrastructure — entity-anchored dialogue log with server-side role labels, retroactive name update on learning, NpcColorIndex for stable color assignment
@@ -738,7 +767,7 @@ Format based on [Keep a Changelog](https://keepachangelog.com/).
- UIStrings autoload with YAML-based UI string loading (#409) — minimal YAML parser, `get_text()` lookup with fallback-to-key
- HUD and interaction prompt labels now loaded from `client/data/ui-strings.yaml` instead of hardcoded strings
- Character voice speech patterns (#310) — sentence-level execution spec for smuggler and detective covering contractions, punctuation, stress markers, vocabulary, verbal tics, and authoring checklist
- NPC authoring style guide (#379) — 954-line handbook: tier budgets, 9 NPC patterns, dialogue/monologue rules, tag taxonomy, dual-lens coordination, Krenn/Sova culture, FRIEND phase mapping, validation checklist
- NPC authoring style guide (#379) — 954-line handbook: tier budgets, 9 NPC patterns, dialogue/monologue rules, tag taxonomy, dual-lens coordination, Van Maanen's Star/Sova culture, FRIEND phase mapping, validation checklist
- UI microcopy (#409) — 72 YAML strings for client integration: interaction verbs, relationship states, HUD labels, perception modes, notifications, knowledge panel, tutorial prompts
- Kael Davan FRIEND pack (#297) — 86 hand-authored lines across 3 locations, 5-phase relationship arc with contradiction scene, dual-lens notes
- Sera Venn FRIEND pack (#298) — 75 hand-authored lines at The Last Shift, trust-gated gossip, avoidance contradiction, contaminated trust arc
@@ -823,7 +852,7 @@ Format based on [Keep a Changelog](https://keepachangelog.com/).
### Changed
- NearbyInteractionBuffer refactored from global Resource to per-entity Component on PlayerCharacter — multiplayer-ready (D-009)
- Observer module split into mod.rs (244 lines) + tests.rs (480 lines) — reduces module complexity
- Content directory restructured from flat districts/ to hierarchical campaigns/main/systems/krenn/stations/sova/districts/transit/ — path mirrors canonical IDs, glob-based discovery, multi-campaign/DLC ready
- Content directory restructured from flat districts/ to hierarchical campaigns/main/systems/van-maanens-star/stations/sova/districts/transit/ — path mirrors canonical IDs, glob-based discovery, multi-campaign/DLC ready
- Content manifest (content.yaml) rewritten for glob-based district discovery
- District identity fields (system, station, district) now derived from directory path — removed from district.yaml required fields
- NPC canonical_id schema accepts district-scoped IDs (npc:transit.kael-davan) for cross-district uniqueness
@@ -986,7 +1015,7 @@ Format based on [Keep a Changelog](https://keepachangelog.com/).
- D-033: Entity color represents relationship to player character (asymmetric per character)
- D-034: THE FRIEND NPC pattern — production-level emotional centerpiece per character (Kael Davan, Sera Venn)
- D-035: Converged tag taxonomy for dialogue/monologue line pools (6 structural + 3 selection tags)
- D-036: Sova Transit District / Krenn System as v0.1 setting (first named star system)
- D-036: Sova Transit District / Van Maanen's Star as v0.1 setting (first named star system)
- D-037: Contraband specification — unlicensed lattice components (moral ambiguity by design)
- D-038: Audio in v0.1 scope — 8 AI-generated files via Stable Audio Open
- D-039: All 6 wow moments promoted to v0.1 must-have scope
+7 -2
View File
@@ -3,6 +3,7 @@ GODOT := $(shell command -v godot4 2>/dev/null || command -v godot 2>/dev/null)
.PHONY: help setup build check-protocol client server game stop test lint ci ci-client ci-server clean \
decisions-sync decisions-coverage decisions-active decisions-orphan \
db-backup db-install validate-content check-fact-ids setup-hooks \
audit \
pre-pr pre-pr-lint pre-pr-build pre-pr-test pre-pr-validate pre-pr-fixtures \
pre-pr-server pre-pr-client pre-pr-content \
fixtures-client fixtures-gauntlet golden-diff golden-update \
@@ -45,6 +46,7 @@ help:
@echo " make decisions-coverage Decision-to-ticket coverage by domain"
@echo " make decisions-active List active decisions"
@echo " make decisions-orphan Decisions without implementing tickets"
@echo " make audit Run cargo audit (security advisory check)"
@echo " make validate-content Validate content YAML against schemas"
@echo " make check-fact-ids Check fact_id references against knowledge catalogs"
@echo " make fixtures-client Generate GDScript->Rust cross-encoder fixtures (#475)"
@@ -221,7 +223,7 @@ lint-client:
# --- Pre-PR verification ---
pre-pr: pre-pr-lint pre-pr-build pre-pr-test pre-pr-validate pre-pr-fixtures
pre-pr: pre-pr-lint pre-pr-build pre-pr-test pre-pr-validate pre-pr-fixtures audit
@echo ""
@echo "=== PRE-PR: ALL CHECKS PASSED ==="
@echo "Safe to create PR."
@@ -274,7 +276,7 @@ pre-pr-fixtures:
# Branch-specific variants (faster, scope-appropriate)
pre-pr-server: lint-server build-server test-server pre-pr-fixtures
pre-pr-server: lint-server build-server test-server pre-pr-fixtures audit
@echo "=== Server pre-PR: PASSED ==="
pre-pr-client: lint-client build-client test-client
@@ -321,6 +323,9 @@ validate-content:
check-fact-ids:
@tooling/check-fact-ids
audit:
cd server && cargo audit
checklist-validate:
@tooling/validate-checklist --check
+3 -3
View File
@@ -12,13 +12,13 @@ Cross-domain decisions live in one file with cross-reference notes in related fi
|------|--------|-----------|
| [architecture.md](architecture.md) | Technical foundation | D-008, D-009, D-010, D-012, D-020, D-026, D-030, D-031, D-041, D-042, D-054, D-055, D-066, D-068, D-073, D-085, D-088, D-094, D-096, D-097, D-099, D-100, D-101, D-102, D-103, D-106, D-108, D-109, D-113, D-133, D-134, D-135, D-136, D-137 |
| [perception.md](perception.md) | Player observation | D-011, D-015, D-016, D-017, D-018, D-019, D-033, D-035, D-043, D-044, D-045, D-046, D-047, D-048, D-049, D-052, D-056, D-057, D-058, D-059, D-060, D-061, D-067, D-069, D-070, D-071, D-072, D-076, D-077, D-078, D-086 |
| [content.md](content.md) | NPC, dialogue, templates | D-023, D-024, D-025, D-028, D-029, D-032, D-034, D-035, D-036, D-037, D-050, D-062, D-063, D-064, D-074, D-075, D-084, D-090, D-092, D-093, D-095, D-098, D-104, D-105, D-107, D-121, D-122, D-123, D-124, D-125, D-126, D-127, D-128, D-129, D-130, D-131, D-132, D-138, D-139, D-140, D-142 |
| [scope.md](scope.md) | Game concept, prototype | D-001, D-003, D-005, D-006, D-007, D-013, D-014, D-027, D-038, D-039, D-051, D-053, D-065, D-087, D-089, D-091, D-114, D-115, D-116, D-117, D-118, D-119, D-120 |
| [content.md](content.md) | NPC, dialogue, templates | D-023, D-024, D-025, D-028, D-029, D-032, D-034, D-035, D-036, D-037, D-050, D-062, D-063, D-064, D-074, D-075, D-084, D-090, D-092, D-093, D-095, D-098, D-104, D-105, D-107, D-121, D-122, D-123, D-124, D-125, D-126, D-127, D-128, D-129, D-130, D-131, D-132, D-138, D-139, D-140, D-142, D-147 |
| [scope.md](scope.md) | Game concept, prototype | D-001, D-003, D-005, D-006, D-007, D-013, D-014, D-027, D-038, D-039, D-051, D-053, D-065, D-087, D-089, D-091, D-114, D-115, D-116, D-117, D-118, D-119, D-120, D-145, D-146 |
| [process.md](process.md) | Team, workflow | D-004, D-021, D-022, D-040 |
| [questions.md](questions.md) | Open questions (index) | Q-001 through Q-054 |
| [questions-architecture.md](questions-architecture.md) | Technical questions | Q-001, Q-006, Q-009, Q-018–Q-023, Q-029, Q-030, Q-046 |
| [questions-perception.md](questions-perception.md) | Observation questions | Q-003, Q-014, Q-016, Q-024–Q-026, Q-051, Q-053, Q-054 |
| [questions-content.md](questions-content.md) | Narrative questions | Q-010, Q-012–Q-015, Q-017, Q-028, Q-031, Q-033, Q-040–Q-050, Q-052 |
| [questions-content.md](questions-content.md) | Narrative questions | Q-010, Q-012–Q-015, Q-017, Q-028, Q-031, Q-033, Q-040–Q-050, Q-052, Q-WTF-039, Q-WTF-040, Q-WTF-041 |
| [questions-scope.md](questions-scope.md) | Scope questions | Q-002, Q-004, Q-005, Q-007, Q-008, Q-011, Q-027, Q-032, Q-034–Q-039 |
| [rejected.md](rejected.md) | Rejected alternatives | R-001 through R-010 |
+33 -4
View File
@@ -524,7 +524,7 @@ How narrative, NPCs, and world content are created: content tiers, NPC generatio
- **Dissent:** None
- **Supersedes:** Per-location behavior pool approach from current zone spec format (`behavior_primitives` arrays on location RON files). Location files retain metadata but behavior content migrates to zone-type template files.
- **Amends:** [D-139](#d-139-composable-behavior-primitives-three-layer-assembly) — D-139 defined the assembly mechanics (BehaviorPrimitive, BehaviorModifier, assemble_behaviors); this decision defines the content architecture that feeds it. D-139 remains the implementation record; D-142 is the content architecture record.
- **Cross-reference:** [D-138](#d-138-llm-re-voicing-pipeline-for-npc-voice) (LLM pipeline — Layer 3 safety model), [D-140](#d-140-dialogue-re-voicing-quality-constraints--paulas-six-rules) (quality constraints — R4, R6 apply to Layer 3), [D-139](#d-139-composable-behavior-primitives-three-layer-assembly) (assembly mechanics), [D-121](#d-121-voice-is-culture-driven--job-as-modifier) (culture-primary voice), [D-036](#d-036-sova-transit-district--van-maanens-star-system-setting) (Van Maanen's Star setting origin of first zone specs), [D-128](#d-128-culture-is-implicit-in-starting-location) (culture implicit in location)
- **Cross-reference:** [D-138](#d-138-llm-re-voicing-pipeline-for-npc-voice) (LLM pipeline — Layer 3 safety model), [D-140](#d-140-dialogue-re-voicing-quality-constraints--paulas-six-rules) (quality constraints — R4, R6 apply to Layer 3), [D-139](#d-139-composable-behavior-primitives-three-layer-assembly) (assembly mechanics), [D-121](#d-121-voice-is-culture-driven--job-as-modifier) (culture-primary voice), [D-036](#d-036-sova-transit-district--van-maanens-star-system-as-v01-setting) (Van Maanen's Star setting origin of first zone specs), [D-128](#d-128-culture-implicit-in-starting-location--van-maanens-star-system-equals-van-maanens-star-culture) (culture implicit in location)
---
@@ -543,7 +543,7 @@ How narrative, NPCs, and world content are created: content tiers, NPC generatio
| Five settlement waves | 0–600 GD | 2300–2900 AD |
| Secession | ~300 GD | ~2600 AD |
| Game present | ~600 GD | ~2900 AD |
- **Cross-reference:** [D-036](#d-036-sova-transit-district--van-maanens-star-system-setting) (setting), Sol wiki page (GJ-0)
- **Cross-reference:** [D-036](#d-036-sova-transit-district--van-maanens-star-system-as-v01-setting) (setting), Sol wiki page (GJ-0)
---
@@ -551,8 +551,37 @@ How narrative, NPCs, and world content are created: content tiers, NPC generatio
- **Date:** 2026-03-14
- **Decision:** Sirius is the political capital of the Settled Reach and the seat of the Concord Assembly. It is a hub system (5 apertures, 5 gate connections) in the institutional core, settled in wave_1, 8.6 ly from Sol. Its real-world prominence (brightest star in Earth's sky) maps to its in-setting political centrality. Marked as `generation_priority: campaign_anchor`.
- **Rationale:** The capital needs to be a recognizable name that players immediately associate with importance. Sirius's existing topology (hub, 5 connections) already makes it structurally central. Wave_1 settlement means it has the institutional depth to house the Assembly. The symbolic weight of the brightest star as the seat of power writes itself.
- **Cross-reference:** [D-143](#d-143-gd-calendar-epoch--gate-discovery-2300-ad-as-year-0) (timeline), [D-036](#d-036-sova-transit-district--van-maanens-star-system-setting) (v0.1 setting)
- **Cross-reference:** [D-143](#d-143-gd-calendar-epoch--gate-discovery-2300-ad-as-year-0) (timeline), [D-036](#d-036-sova-transit-district--van-maanens-star-system-as-v01-setting) (v0.1 setting)
---
*43 decisions. Last updated: 2026-03-14 (D-144 Sirius as Reach capital)*
### D-147: Aesthetic taste as character personality trait — shared root for cosmetic and environmental expression
- **Date:** 2026-03-17
- **Decision:** Characters have an `aesthetic_taste` personality trait (preferred palette, style leanings) that naturally expresses in both personal appearance and living space. This is NOT a cosmetic→apartment pipeline — hair color does not map to wall color. Instead, taste is a shared root: someone who gravitates toward teal will pick teal clothing AND own a teal vase. The apartment generator reads the character's taste trait (alongside economic position from #615 and cultural context from #679); the character customisation screen lets the player express that same taste through appearance choices. Neither system depends on the other — both read the same underlying trait.
- **Rationale:** The naive approach (pipe cosmetic choices into apartment generator) creates a crude "team color" mapping that feels artificial. The elegant approach: taste is a personality attribute, like traits or skills. It manifests independently in multiple contexts. This keeps #619 (customisation) and #617 (apartment) architecturally independent while producing coherent identity expression. The taste trait is also reusable: NPC aesthetic preferences, gift preferences, "does this room feel like home" comfort checks, cultural style variations.
- **Dependency implication:** #619 does NOT block #617. Both read the character's taste trait independently. The taste trait definition belongs to the character data model (server), not to either consuming system.
- **Information boundary (D-010):** `aesthetic_taste` is a public trait — visible to other entities and the client. NPCs can observe the player's taste (e.g. gift relevance, comfort assessment). This is not private knowledge behind the information boundary.
- **Source:** Sprint 27 planning pass — Q-WTF-040 resolution
- **Raised by:** Project lead (taste-as-shared-root framing), Gestalt (ColorHint concept evolved into trait), Paula (culture + economics as primary apartment drivers)
- **Dissent:** Ozzie argued for direct cosmetic→apartment pipeline. Tyre and Paula argued for no connection at all. The taste trait is the synthesis: connection through personality, not through data pipeline.
- **Cross-reference:** [D-125](#d-125-world-is-quietly-responsive--gradient-of-caring-by-social-proximity) (quiet responsiveness), [D-134](architecture.md#d-134-full-character-customisation--hair-clothing-colors-at-tile-scale) (full character customisation), [D-136](architecture.md#d-136-first-settled-reach-moment-auto-generated-apartment--insert-activation) (first game moment), ticket #617 (auto-generated apartment), ticket #619 (full character customisation)
- **Resolves:** Q-WTF-040
---
---
### Content Pattern Note: Generator-compatible overheard conversation format (ticket #664)
- **Date:** 2026-03-17
- **Status:** Content pattern noted — pending formal D-record (check with Qatux before claiming ID)
- **Pattern:** `content/npc-conversations/overheard.ron` introduces a new content type: a pool of NPC-to-NPC overheard conversations parameterized by `role_pair` and `zone_types` (matching zone-type template role IDs from D-142). No named NPC references. Culture-neutral text that accepts culture modifier at assembly time. Replaces `overheard.yaml.deprecated` (v0.1 hand-authored pool with named NPCs, superseded by D-122).
- **Format fields:** `id`, `zone_types[]`, `role_pair(a, b)`, `register` (Work|Social|Gossip), `relationship_context` (Colleague|Acquaintance|Friend|Superior|Subordinate), `topic`, `lines[(speaker:A|B, text)]`, `knowledge_payload (Option<String>)`
- **Occlusion authoring rules:** D-078 rules apply unchanged — front-load key info, short declarative sentences, no pronoun-first openers, each turn self-contained.
- **Runtime resolution:** Generator selects conversations where two nearby NPCs match `role_pair` and `zone_types`. Knowledge payload is exposed to player inference layer (partial occlusion reduces but cannot eliminate inference value of a fully-heard payload).
- **Schema location:** `server/src/npc/overheard.rs :: OverheardPool` — TBD pending #663 struct changes.
- **Raised by:** Paula (Sprint 27, ticket #664)
- **Decision needed:** Whether to formalize this as D-NNN or treat as sub-pattern of D-142. Recommend D-record since it introduces the `knowledge_payload` field as a new ambient information delivery mechanism distinct from existing dialogue architecture (D-028).
---
*44 decisions. Last updated: 2026-03-17 (D-147 aesthetic taste trait; content pattern note for overheard.ron format added)*
+24 -1
View File
@@ -205,4 +205,27 @@ Narrative, NPCs, dialogue, templates, setting, worldbuilding, and storyteller me
---
*21 questions (7 resolved, 2 partially resolved, 12 open). Last updated: 2026-03-13 (Q-015 closed as obsolete per D-122)*
### Q-WTF-039: Character creation — portrait render or tile-scale preview?
- **Status:** Resolved → [D-146](scope.md#d-146-character-creation-preview--tile-scale-sprite-with-heavy-zoom)
- **Question:** Does the character creation screen show a portrait render or a tile-scale in-world preview of the player character? Affects #618 (CK3-style character creation screen) team assignment: portrait render is a visual team deliverable; tile-scale preview is client.
- **Resolution:** Tile-scale sprite with heavy zoom. The creation screen shows the game sprite rendered at high resolution, zoomed in so cosmetic details are clearly visible. Same approach as Rimworld: one rendering pipeline, no separate portrait system. #618 stays as a single client ticket. Resolved by [D-146](scope.md#d-146-character-creation-preview--tile-scale-sprite-with-heavy-zoom).
- **Assigned to:** Tyre (architecture), confirmed by project lead
- **Source:** Sprint 27 planning pass (2026-03-17)
### Q-WTF-040: Do creation choices trace into the generated apartment?
- **Status:** Resolved → [D-147](content.md#d-147-aesthetic-taste-as-character-personality-trait--shared-root-for-cosmetic-and-environmental-expression)
- **Question:** If the player picks hair colour and clothing in #619, does the generator use those choices when laying out the starting apartment (furniture style, colour palette)? Affects #617 scope and dependency.
- **Resolution:** Not directly. Cosmetic choices do not pipeline into the apartment generator. Instead, characters have an `aesthetic_taste` personality trait that independently informs both appearance choices and living space. Someone who likes teal picks teal clothing AND owns a teal vase — but through shared taste, not data coupling. #619 does NOT block #617. Resolved by [D-147](content.md#d-147-aesthetic-taste-as-character-personality-trait--shared-root-for-cosmetic-and-environmental-expression).
- **Assigned to:** Gestalt (systems), Paula (narrative), confirmed by project lead
- **Source:** Sprint 27 planning pass (2026-03-17)
### Q-WTF-041: What should the player feel looking at the span gate from their apartment?
- **Status:** Open
- **Question:** The First Settled Reach moment (D-136) is apartment + insert activation. The player's apartment has a view of the span gate. What emotional register should this view hit? Awe? Routine familiarity? Unease? This shapes the visual design of the apartment scene and the insert's first content.
- **Affects:** #626 (setting delivery — both layers). Blocks implementation until the emotional target is defined.
- **Needs:** Gore (thematic framing), Ozzie (player experience), Miri (setting grounding), Araminta (visual direction)
- **Source:** Where's the Fun? Workshop, Round 5 (2026-03-05)
---
*24 questions (10 resolved, 2 partially resolved, 12 open). Last updated: 2026-03-17 (Q-WTF-039, Q-WTF-040 resolved, Q-WTF-041 added; recount)*
+5 -5
View File
@@ -8,7 +8,7 @@ Tracked questions awaiting discussion or resolution. Split by domain, mirroring
|------|--------|-----------|
| [questions-architecture.md](questions-architecture.md) | Technical foundation | Q-001, Q-006, Q-009, Q-018, Q-019, Q-020, Q-021, Q-022, Q-023, Q-029, Q-030, Q-046, Q-059 |
| [questions-perception.md](questions-perception.md) | Player observation | Q-003, Q-014, Q-016, Q-024, Q-025, Q-026, Q-051, Q-053, Q-054 |
| [questions-content.md](questions-content.md) | Narrative, NPCs, setting | Q-010, Q-012, Q-013, Q-015, Q-017, Q-028, Q-031, Q-033, Q-040, Q-041, Q-042, Q-043, Q-044, Q-045, Q-047, Q-048, Q-049, Q-050, Q-052, Q-056, Q-057 |
| [questions-content.md](questions-content.md) | Narrative, NPCs, setting | Q-010, Q-012, Q-013, Q-015, Q-017, Q-028, Q-031, Q-033, Q-040, Q-041, Q-042, Q-043, Q-044, Q-045, Q-047, Q-048, Q-049, Q-050, Q-052, Q-056, Q-057, Q-WTF-039, Q-WTF-040, Q-WTF-041 |
| [questions-scope.md](questions-scope.md) | Game concept, prototype | Q-002, Q-004, Q-005, Q-007, Q-008, Q-011, Q-027, Q-032, Q-034, Q-035, Q-036, Q-037, Q-038, Q-039, Q-058 |
## Status Summary
@@ -17,9 +17,9 @@ Tracked questions awaiting discussion or resolution. Split by domain, mirroring
|--------|-------|----------|---------|------|
| Architecture | 13 | 7 | 1 | 5 |
| Perception | 9 | 5 | 1 | 3 |
| Content | 21 | 5 | 2 | 14 |
| Scope | 14 | 1 | 3 | 10 |
| **Total** | **57** | **18** | **7** | **32** |
| Content | 24 | 10 | 2 | 12 |
| Scope | 15 | 2 | 3 | 10 |
| **Total** | **61** | **24** | **7** | **30** |
*Updated 2026-03-05: Q-011 resolved (D-117/D-115/D-122), Q-034 partially resolved (D-117), Q-037 partially resolved (D-119), Q-033 partially resolved/reframed (D-122) — Where's the Fun? Workshop*
@@ -35,4 +35,4 @@ Tracked questions awaiting discussion or resolution. Split by domain, mirroring
When in doubt about where a question belongs: if it constrains **how we build**, it's architecture. If it defines **what the player observes or knows**, it's perception. If it defines **narrative, NPCs, dialogue, or setting**, it's content. If it defines **what we ship or how big it is**, it's scope.
*54 questions. Last updated: 2026-02-28 (split from single file into domain files).*
*61 questions. Last updated: 2026-03-17 (Q-WTF-039, Q-WTF-040, Q-WTF-041 added to content domain; full recount).*
+25 -1
View File
@@ -276,4 +276,28 @@ What we're building: game concept, design pillars, prototype definition, map spe
---
*24 decisions (15 active, 9 superseded). Last updated: 2026-03-05 (D-114–D-120 added; D-014, D-027, D-039, D-065, D-087, D-089, D-091 superseded — Where's the Fun? Workshop)*
---
### D-145: Base building DLC — GJ 902 unclaimed moon as player settlement site
- **Date:** 2026-03-15
- **Decision:** The unsettled system GJ 902 (south_reach, hop 7, K-type dead-end) contains a habitable moon with an iron core orbiting a gas giant. This is deliberately left unclaimed as prep for a future base building DLC where players could claim and settle it. The marginally habitable planet in the same system provides contrast; the moon is the prize.
- **Rationale:** Having a genuinely good piece of unclaimed real estate in the star map gives the base building DLC a natural entry point with existing lore context. The dead-end topology and quiet corridor explain why nobody has claimed it yet.
- **Source:** Wiki writing session, 2026-03-15
- **Raised by:** Jeroen
---
### D-146: Character creation preview — tile-scale sprite with heavy zoom
- **Date:** 2026-03-17
- **Decision:** The character creation screen shows the player character's game sprite at heavy zoom — the same top-down tile-scale rendering used in gameplay, rendered at high resolution so it holds up when zoomed in. No separate portrait rendering system. Cosmetic choices (hair, clothing, colors) update the zoomed sprite in real time. Rimworld uses this exact approach: the character customisation screen shows the same pawn sprite rendered larger, with clothing/equipment layers visible.
- **Rationale:** The tile-scale sprite IS the player's character for the entire game. Showing it zoomed in character creation: (1) sets accurate expectations for in-game appearance, (2) reuses the production sprite/animation pipeline — zero new rendering infrastructure, (3) validates that cosmetic customisation (#619) reads correctly at game scale, (4) keeps #618 as a single client ticket with no visual-team split. A separate portrait system would be a one-off rendering context (different camera, lighting, asset pipeline) that serves no other game feature. "CK3-style" in the bookmark concept refers to the bookmark structure, not the portrait aesthetic. Portraits can be added later as an additive feature if needed.
- **Team implication:** Ticket #618 (CK3-style character creation screen) stays as a single `client` team ticket. No split required.
- **Source:** Sprint 27 planning pass — Q-WTF-039 resolution
- **Raised by:** Tyre (architecture), Paula (narrative), Gestalt (systems), confirmed by project lead
- **Dissent:** Ozzie argued for portrait render (emotional attachment). Overruled: tile-scale at heavy zoom provides sufficient character identity without a second rendering pipeline.
- **Cross-reference:** [D-115](#d-115-character-creation-scoped-to-skills--bookmark-for-v02) (creation scope), [D-134](architecture.md#d-134-full-character-customisation--hair-clothing-colors-at-tile-scale) (full character customisation), [D-136](architecture.md#d-136-first-settled-reach-moment-auto-generated-apartment--insert-activation) (first game moment), ticket #618 (CK3-style character creation screen)
- **Resolves:** Q-WTF-039
---
*26 decisions (17 active, 9 superseded). Last updated: 2026-03-17 (D-146 tile-scale heavy zoom)*
+4 -4
View File
@@ -2,9 +2,9 @@
title: "Proposed Architecture: LLM-Powered Voice Synthesis"
description: "Re-voicing architecture for dynamic NPC dialogue using a local LLM as a stylistic enhancement layer — injector system, priority queue, and optional AI-enhanced toggle"
type: architecture
status: draft
status: superseded
ticket: ""
decision_refs: []
decision_refs: ["D-138"]
author: "Gemini"
created: 2026-03-07
updated: 2026-03-07
@@ -12,7 +12,7 @@ updated: 2026-03-07
# Proposed Architecture: LLM-Powered Voice Synthesis
**Status:** Proposed
**Status:** Superseded by [D-138](../../decisions/content.md#d-138-llm-re-voicing-pipeline-for-npc-voice) and [LLM Voice Pipeline Workshop](../workshops/llm-voice-pipeline/workshop-outcomes.md)
**Author:** Gemini (synthesizing a design sparring session with Jeroen)
**Date:** 2026-03-07
@@ -36,7 +36,7 @@ Our proposed solution is to treat dynamic dialogue not as a generation task, but
### Analogy: Dialogue as an `i18n` System
The core of this design is to think of character voice as a "language." Our simple, non-LLM template system provides the default "language" (`en-US`)—a clear, functional line of text that serves the gameplay. The LLM's job is to "translate" this line into a specific character's "language" (`en-KRENN-RUTHLESS`).
The core of this design is to think of character voice as a "language." Our simple, non-LLM template system provides the default "language" (`en-US`)—a clear, functional line of text that serves the gameplay. The LLM's job is to "translate" this line into a specific character's "language" (`en-VMS-RUTHLESS`).
This immediately enables a powerful player-facing feature:
+119
View File
@@ -0,0 +1,119 @@
# v0.1 YAML Content Audit
**Date:** 2026-03-17
**Ticket:** #672
**Author:** Hoshe (QA)
**Sprint:** 27
## Summary
63 YAML files surveyed across `server/content/`, `server/data/templates/`, and `client/data/`.
- **Deprecated:** 14 files — pure named NPC / detective arc content, no generator value
- **Convertible:** 25 files — useful structure or data worth extracting to RON generator format
- **Already-superseded:** 4 files — role-based templates predating RON format, replaced by zone-type RON files
- **Infrastructure (no action):** 20 files — gauntlet, schemas, client UI, geography hierarchy, manifest
**Do not delete anything in this document.** Disposition requires explicit team review per ticket #672.
---
## Deprecated
Pure detective arc or named NPC content. No generator value. Recommend **archive** (move to `docs/archive/v01-content/`) rather than deletion.
| File | Why deprecated | Named NPCs |
|------|---------------|------------|
| `server/content/global/knowledge/ring.yaml` | All facts tied to named NPC actions (Kael's missed verification, Kael's corridor access, Voss/office confrontation, Sera's avoidance of Torek). No role-neutral facts. | Kael Davan, Sera Venn, Torek Lintar, Voss, Naia Tamm |
| `server/content/global/knowledge/behavioral.yaml` | Named NPC behavioral tells: Kael's lying tell, Kael's behavior change, Sera's avoidance pattern, Sera's deflection topics, Sera's kiosk habit, Sera's manifest knowledge. All keyed to specific characters. | Kael, Sera, Torek |
| `server/content/global/knowledge/relationship.yaml` | Named NPC relationship facts: Kael-Naia partnership, Torek's financial arrangement. No generic relationship fact patterns. | Kael, Naia, Torek |
| `server/content/global/knowledge/entity-attributes.yaml` | Explicitly lists "Kael Davan" and "Kael" as example entity attribute values. The entire file is about named NPC attributes. | Kael Davan |
| `server/content/global/knowledge/progress.yaml` | Detective investigation milestone facts (`characters: [detective]`). E.g. "Detective filed first manifest discrepancy evidence". Detective-exclusive, no smuggler or generator path. | detective archetype only |
| `server/content/global/knowledge/awareness.yaml` | All facts reference the detective-vs-smuggler tension: `detective_presence`, `detective_investigating_ring`, `commission_audit_scheduled`. Not applicable to generated NPC knowledge. | detective, smuggler archetypes only |
| `server/content/modules/tier1/smuggling_ring_v0_1.yaml` | Full v0.1 drama module with named NPC cast (Kael, Naia, Sera, Voss, Torek). Kael's exit plan, dual-lens player experience. The module schema itself (drama_module.schema.yaml) may be worth keeping, but this specific content instance is named-NPC only. | Kael Davan, Naia Tamm, Sera Venn, Voss, Torek Lintar, Devra |
| `server/content/npc-conversations/overheard.yaml` | **Self-labeled LEGACY CONTENT** in the file header: "All entries in this file reference named NPCs… not served at runtime." Already flagged by the copy team; superseded by ticket #664 (zone-type-aware overheard generator). | Kael, Sera, Naia, Voss, Nils, Maret Korr, Lera |
| `server/content/campaigns/main/systems/van-maanens-star/stations/sova/districts/transit/triangles/worried-partner.yaml` | Named NPC triangle: Kael Davan, Naia Tamm, Devra. Members reference `npc:kael-davan` directly. | Kael Davan, Naia Tamm, Devra |
| `server/content/campaigns/main/systems/van-maanens-star/stations/sova/districts/transit/triangles/hub-power.yaml` | References Kael-adjacent narrative (hub power / ring pressure). Named NPC members. | Kael (indirect) |
| `server/content/campaigns/main/systems/van-maanens-star/stations/sova/districts/transit/triangles/bar-tensions.yaml` | Named NPC triangle: Lera Sessik (bar owner), Resha (regular), Pell (bartender). Members reference `npc:lera-sessik` directly. | Lera Sessik, Resha, Pell |
| `server/content/campaigns/main/systems/van-maanens-star/stations/sova/districts/transit/environmental/the-last-shift.yaml` | Environmental text for The Last Shift bar. 10 named NPC references. Lera, Sera, etc. character-specific text. | Lera, Sera |
| `server/content/campaigns/main/systems/van-maanens-star/stations/sova/districts/transit/ticker/the-last-shift.yaml` | Ticker pool with `dual_lens` commentary for detective vs. smuggler archetypes specifically. Dual-lens framing assumes named player arcs. | smuggler/detective archetypes |
| `server/content/campaigns/main/systems/van-maanens-star/stations/sova/districts/transit/routines/schedules.yaml` | Stub file (2 lines, comment only). No content. | none |
---
## Convertible
Useful data or structure worth extracting into the RON generator format. Disposition: **convert** (port specific patterns to RON zone-type files or generator schemas before archiving).
| File | What's worth extracting | Conversion target |
|------|------------------------|-------------------|
| `server/content/global/knowledge/knowledge.yaml` | Knowledge fact schema: `fact_id`, `description`, `typical_confidence`, `characters`, `notes`. Generic investigation knowledge patterns (ring structure, exit plan, organizational knowledge). The fact ID taxonomy and confidence level system are the most reusable. | Generator knowledge schema for zone-type fact pools |
| `server/content/global/knowledge/social.yaml` | Social positioning fact patterns (`bar_regular_status`, `social_circle_member`, `faction_affiliation`). These are role-neutral patterns that any NPC social site could produce. | Role-based social knowledge pools |
| `server/content/global/knowledge/location.yaml` | Location knowledge fact patterns: access points, operational significance, safe houses. The location knowledge taxonomy maps to zone-type location specs. | Zone-type location knowledge schemas |
| `server/content/global/knowledge/world.yaml` | World-level knowledge patterns: faction presence, station governance, lattice tech context. These are world-building facts any NPC could know. | World knowledge pools for zone-type culture profiles |
| `server/content/global/knowledge/contraband.yaml` | Contraband knowledge structure: ring existence, component types, operational methods. The schema structure (ring_exists → ring_lattice_components → ring_medical_components → ring_vault_location) is a good template for role-based secret knowledge escalation. | Role-based secret knowledge schemas for zone-type ring roles |
| `server/content/global/enums/triggers.yaml` | Monologue trigger type enum: `enter_location`, `observe_npc`, `observe_event`, etc. These values are still used by the current monologue system (D-035). Named NPC examples in descriptions are incidental. | Already in use; clean up named NPC examples from descriptions only |
| `server/content/global/enums/topics.yaml` | Dialogue topic types. The enum values themselves are still relevant for NPC conversation routing. Named NPC examples in descriptions are incidental. | Already in use; clean up named NPC examples from descriptions only |
| `server/content/global/enums/motivations.yaml` | NPC functional motivation archetypes: HANDLER, OPERATOR, PERIPHERAL, OBSERVER, UNKNOWN. These role-archetypes map directly to zone-type role pools and could seed generator role taxonomy. | Zone-type role archetype vocabulary |
| `server/content/global/enums/access-tiers.yaml` | Access tier definitions (public/private/restricted/secure/classified). The tier system is still used by the knowledge graph. Named NPC examples in tier descriptions can be removed. | Already in use; strip named NPC examples |
| `server/content/global/enums/patterns.yaml` | NPC personality pattern types. Useful for zone-type culture profiles. | Zone-type culture profile generator |
| `server/content/global/enums/situations.yaml` | Situation types for NPC behavioral context. Useful for zone-type activity schemas. | Zone-type activity/situation vocabulary |
| `server/content/global/enums/activities.yaml` | Activity types used in daily routine generation. Still referenced by the current DailyRoutine system. | Already in use |
| `server/content/global/enums/moods.yaml` | Mood type enum. Still used by MoodState system. | Already in use |
| `server/content/global/enums/trust-tiers.yaml` | Trust tier definitions (0–10 scale with named tiers). Still used by RelationshipGraph trust levels. | Already in use |
| `server/content/campaigns/main/systems/van-maanens-star/stations/sova/districts/transit/templates/smuggling-ring.yaml` | Social site template structure: capacity, roles, operational notes. The YAML schema maps to the RON `ZoneTypeTemplate.social_site_types` structure (D-142). Worth porting as a reference for `rural_agricultural.ron` social site entries. | RON zone-type social_site_types pattern |
| `server/content/campaigns/main/systems/van-maanens-star/stations/sova/districts/transit/templates/bar.yaml` | Bar social site template. Same as above — schema maps to D-142 structure. | RON zone-type social_site_types for bar/hospitality zones |
| `server/content/campaigns/main/systems/van-maanens-star/stations/sova/districts/transit/templates/logistics-hub.yaml` | Logistics hub template. Useful reference for `industrial_freight.ron` social site types. | RON zone-type social_site_types for industrial zones |
| `server/content/global/factions/concord-assembly.yaml` | Faction structure definition. Faction identifiers, cultural values, and institutional roles are usable as zone-type culture profile ingredients. | Zone-type culture profile vocabulary (6 files) |
| `server/content/global/factions/guardians-of-autonomy.yaml` | Same as above | Same |
| `server/content/global/factions/syndics.yaml` | Same as above | Same |
| `server/content/global/factions/the-ring.yaml` | Same as above | Same |
| `server/content/global/factions/the-unbound.yaml` | Same as above | Same |
| `server/content/global/factions/veil-institute.yaml` | Same as above | Same |
| `server/content/campaigns/main/systems/van-maanens-star/stations/sova/districts/transit/environmental/the-terminal.yaml` | Environmental text for The Terminal logistics hub. 1 detective reference; the rest is location flavor text, signage, and readable objects. The environmental text schema is a useful template for zone-type flavor text pools. | Zone-type environmental text schema |
| `server/content/campaigns/main/systems/van-maanens-star/stations/sova/districts/transit/environmental/maintenance-corridors.yaml` | Environmental text for maintenance corridors. No named NPC references. Pure location flavor. The schema (signs, terminals, documents, graffiti) maps to zone-type flavor text. | Zone-type environmental text schema |
---
## Already-superseded
These files were authored before the RON zone-type system. The zone-type RON files (`server/content/global/zone-types/`) and the D-142 `ZoneTypeTemplate` struct now serve the same purpose with better generator integration. Disposition: **delete** after confirming no Rust code still loads them.
| File | Superseded by |
|------|--------------|
| `server/data/templates/dock-worker.yaml` | Role definitions in `ZoneTypeTemplate.roles` within RON zone-type files |
| `server/data/templates/logistics-hub.yaml` | Social site definitions in RON zone-type files |
| `server/data/templates/terminal-social-site.yaml` | Social site definitions in RON zone-type files |
| `server/data/templates/terminal-triangle-01.yaml` | Triangle definitions will move to RON format via #663 |
**Edge case:** verify with `grep -r "data/templates" server/src/` that no Rust code still loads these paths before deletion. The `generator_spike.rs` binary uses `content/global/` paths, not `data/templates/`.
---
## Infrastructure — no action required
These files are active infrastructure, not deprecated v0.1 content.
| File(s) | Status |
|---------|--------|
| `server/content/gauntlet/` (4 files) | Test world specifications — active, do not touch |
| `server/content/schemas/drama_module.schema.yaml` | JSON schema for drama modules — may be reusable if drama module format is retained |
| `server/content/content.yaml` | Server content manifest — active |
| `project.yaml` | Project metadata — active |
| `client/data/dialogue-theme.yaml` | Client UI theming — active |
| `client/data/ui-strings.yaml` | Client UI microcopy — active |
| `server/content/campaigns/main/campaign.yaml` | Campaign metadata (structural) — active |
| `server/content/campaigns/main/systems/van-maanens-star/system.yaml` | Geographic hierarchy — active |
| `server/content/campaigns/main/systems/van-maanens-star/stations/sova/station.yaml` | Geographic hierarchy — active |
| `server/content/campaigns/main/systems/van-maanens-star/stations/sova/districts/transit/district.yaml` | Geographic hierarchy — active |
| `server/content/campaigns/main/systems/van-maanens-star/stations/sova/districts/transit/locations/` (5 files) | Location definitions for Sova Transit — active world geography |
---
## Recommended disposition priority
1. **Immediate:** Strip named NPC examples from descriptions in `enums/triggers.yaml`, `enums/topics.yaml`, `enums/access-tiers.yaml` (these are actively used, the named examples create false impressions about the current system).
2. **Before v0.2 content sprint:** Convert social site template YAMLs (bar, logistics-hub, smuggling-ring) to inform RON `ZoneTypeTemplate.social_site_types` entries. The schemas align closely.
3. **v0.2 content sprint:** Archive `deprecated` files (move, don't delete — the named NPC narrative design remains valuable as reference material for future hand-authored arcs).
4. **After #663 lands:** Verify `data/templates/` files are unreferenced, then delete.
5. **After #664 lands:** Remove `npc-conversations/overheard.yaml` (already not served; #664 replaces it).
Binary file not shown.
+1 -1
View File
@@ -1,6 +1,6 @@
---
title: "Miri - Project Briefing"
description: "Worldbuilding and lore agent — owns zone identity spec, Krenn culture profile, setting briefs, and wiki taxonomy; critical-path prerequisites for the generator spike"
description: "Worldbuilding and lore agent — owns zone identity spec, Van Maanen's Star culture profile, setting briefs, and wiki taxonomy; critical-path prerequisites for the generator spike"
type: briefing
status: active
agent: Miri
+1 -1
View File
@@ -1,6 +1,6 @@
---
title: "Tiger - Project Briefing"
description: "Localization agent on standby — covers tagged line pool translation scope, culture voice card translation units, and Krenn naming transliteration guides"
description: "Localization agent on standby — covers tagged line pool translation scope, culture voice card translation units, and Van Maanen's Star naming transliteration guides"
type: briefing
status: active
agent: Tiger
+2 -2
View File
@@ -143,9 +143,9 @@ Industrial corridors are overlaid on cultural ones. They do not replace cultural
### 2.3 DSMC Mining Corridor — South_reach Extractive Branch
**Hub:** Vargr (GJ 3522), hop 2 core.
**Hub:** Sindri (GJ 3522), hop 2 core.
**Logic:** DSMC (Dorfhausen Sydney Mining Corporation) operates the Reach's heavy extraction infrastructure. Their operational area is the south_reach and the deep_frontier systems accessible from south_reach branches. Vargr is their operational headquarters; the mining corridor extends outward from it along south_reach gate paths.
**Logic:** DSMC (Dorfhausen Sydney Mining Corporation) operates the Reach's heavy extraction infrastructure. Their operational area is the south_reach and the deep_frontier systems accessible from south_reach branches. Sindri is their operational headquarters; the mining corridor extends outward from it along south_reach gate paths.
**Corridor character:** DSMC systems have a specific character: high economic output, poor distribution_index (the value leaves, the workers stay), significant environmental impact, and high security presence (private security under DSMC contract). These are not pleasant systems to live in for residents without DSMC employment, but they are not post-apocalyptic either — DSMC maintains basic infrastructure because unhealthy workers are less productive. The Guardians of Autonomy have a strong presence in DSMC-corridor systems as a result, often as the de facto opposition to DSMC's corporate governance.
+1 -1
View File
@@ -2,7 +2,7 @@
title: "Smuggler Moral Arc Spec"
description: "Four-phase moral trajectory for the smuggler through the v0.1 vertical slice, driven by authored FactId triggers"
type: design
status: draft
status: "superseded (v0.1 only — D-122 eliminates named NPCs, D-132 supersedes complicity frame)"
ticket: "#382"
decision_refs: [D-032, D-035, D-039]
author: ""
+1 -1
View File
@@ -2,7 +2,7 @@
title: "Smuggler Voice Card"
description: "Single authoring reference for the smuggler's internal monologue voice register and style parameters"
type: design
status: active
status: "superseded (v0.1 only — D-122 eliminates named NPCs)"
ticket: "#382"
decision_refs: []
author: ""
@@ -58,7 +58,7 @@
"title-subtitle": {
"type": "Text",
"left": 360, "top": 262,
"text": "SOVA TRANSIT DISTRICT // KRENN SYSTEM",
"text": "SOVA TRANSIT DISTRICT // VAN MAANEN'S STAR",
"fontColor": "#556677",
"fontSize": 13
},
@@ -0,0 +1,687 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1600 1000" width="1600" height="1000">
<rect width="1600" height="1000" fill="#0a0a1a"/>
<line x1="167.1" y1="594.0" x2="477.0" y2="598.4" stroke="#333355" stroke-width="0.5"/>
<line x1="167.1" y1="594.0" x2="965.4" y2="847.4" stroke="#333355" stroke-width="0.5"/>
<line x1="1306.8" y1="707.8" x2="65.6" y2="714.9" stroke="#333355" stroke-width="0.5"/>
<line x1="65.6" y1="714.9" x2="1126.6" y2="653.9" stroke="#333355" stroke-width="0.5"/>
<line x1="1126.6" y1="653.9" x2="86.4" y2="940.0" stroke="#333355" stroke-width="0.5"/>
<line x1="86.4" y1="940.0" x2="881.8" y2="607.4" stroke="#333355" stroke-width="0.5"/>
<line x1="881.8" y1="607.4" x2="787.3" y2="732.6" stroke="#333355" stroke-width="0.5"/>
<line x1="787.3" y1="732.6" x2="841.1" y2="720.6" stroke="#333355" stroke-width="0.5"/>
<line x1="841.1" y1="720.6" x2="750.8" y2="332.3" stroke="#333355" stroke-width="0.5"/>
<line x1="750.8" y1="332.3" x2="944.3" y2="839.1" stroke="#333355" stroke-width="0.5"/>
<line x1="944.3" y1="839.1" x2="441.1" y2="925.9" stroke="#333355" stroke-width="0.5"/>
<line x1="1266.8" y1="111.0" x2="78.9" y2="255.6" stroke="#333355" stroke-width="0.5"/>
<line x1="441.1" y1="925.9" x2="1006.4" y2="547.6" stroke="#333355" stroke-width="0.5"/>
<line x1="1006.4" y1="547.6" x2="910.0" y2="420.0" stroke="#333355" stroke-width="0.5"/>
<line x1="910.0" y1="420.0" x2="1079.4" y2="575.5" stroke="#333355" stroke-width="0.5"/>
<line x1="1126.6" y1="653.9" x2="162.7" y2="821.2" stroke="#333355" stroke-width="0.5"/>
<line x1="1079.4" y1="575.5" x2="1223.0" y2="638.6" stroke="#333355" stroke-width="0.5"/>
<line x1="1223.0" y1="638.6" x2="380.8" y2="758.1" stroke="#333355" stroke-width="0.5"/>
<line x1="380.8" y1="758.1" x2="441.5" y2="627.4" stroke="#333355" stroke-width="0.5"/>
<line x1="1085.6" y1="517.2" x2="1243.6" y2="404.4" stroke="#333355" stroke-width="0.5"/>
<line x1="1243.6" y1="404.4" x2="1077.5" y2="899.5" stroke="#333355" stroke-width="0.5"/>
<line x1="441.5" y1="627.4" x2="1350.1" y2="153.3" stroke="#333355" stroke-width="0.5"/>
<line x1="880.2" y1="408.0" x2="801.9" y2="563.0" stroke="#333355" stroke-width="0.5"/>
<line x1="1391.5" y1="780.6" x2="875.1" y2="346.7" stroke="#333355" stroke-width="0.5"/>
<line x1="875.1" y1="346.7" x2="406.4" y2="440.1" stroke="#333355" stroke-width="0.5"/>
<line x1="1090.7" y1="325.7" x2="652.9" y2="626.3" stroke="#333355" stroke-width="0.5"/>
<line x1="652.9" y1="626.3" x2="218.9" y2="751.2" stroke="#333355" stroke-width="0.5"/>
<line x1="875.1" y1="346.7" x2="799.0" y2="660.4" stroke="#333355" stroke-width="0.5"/>
<line x1="374.5" y1="828.4" x2="349.6" y2="386.1" stroke="#333355" stroke-width="0.5"/>
<line x1="376.9" y1="402.6" x2="919.2" y2="400.2" stroke="#333355" stroke-width="0.5"/>
<line x1="349.6" y1="386.1" x2="166.7" y2="143.9" stroke="#333355" stroke-width="0.5"/>
<line x1="166.7" y1="143.9" x2="764.8" y2="851.9" stroke="#333355" stroke-width="0.5"/>
<line x1="573.0" y1="575.3" x2="1298.1" y2="485.3" stroke="#333355" stroke-width="0.5"/>
<line x1="1298.1" y1="485.3" x2="709.1" y2="188.2" stroke="#333355" stroke-width="0.5"/>
<line x1="709.1" y1="188.2" x2="1290.4" y2="467.9" stroke="#333355" stroke-width="0.5"/>
<line x1="487.0" y1="316.3" x2="630.7" y2="206.7" stroke="#333355" stroke-width="0.5"/>
<line x1="1290.4" y1="467.9" x2="1196.5" y2="494.6" stroke="#333355" stroke-width="0.5"/>
<line x1="764.8" y1="851.9" x2="159.6" y2="270.4" stroke="#333355" stroke-width="0.5"/>
<line x1="1196.5" y1="494.6" x2="257.7" y2="667.6" stroke="#333355" stroke-width="0.5"/>
<line x1="843.5" y1="417.3" x2="1521.0" y2="66.0" stroke="#333355" stroke-width="0.5"/>
<line x1="1521.0" y1="66.0" x2="1064.3" y2="551.3" stroke="#333355" stroke-width="0.5"/>
<line x1="257.7" y1="667.6" x2="114.6" y2="675.4" stroke="#333355" stroke-width="0.5"/>
<line x1="1064.3" y1="551.3" x2="1437.6" y2="806.7" stroke="#333355" stroke-width="0.5"/>
<line x1="1437.6" y1="806.7" x2="281.3" y2="777.3" stroke="#333355" stroke-width="0.5"/>
<line x1="281.3" y1="777.3" x2="646.6" y2="472.1" stroke="#333355" stroke-width="0.5"/>
<line x1="646.6" y1="472.1" x2="587.9" y2="681.8" stroke="#333355" stroke-width="0.5"/>
<line x1="114.6" y1="675.4" x2="533.5" y2="524.4" stroke="#333355" stroke-width="0.5"/>
<line x1="587.9" y1="681.8" x2="539.0" y2="345.9" stroke="#333355" stroke-width="0.5"/>
<line x1="533.5" y1="524.4" x2="1341.9" y2="155.1" stroke="#333355" stroke-width="0.5"/>
<line x1="1044.5" y1="415.7" x2="1113.4" y2="214.0" stroke="#333355" stroke-width="0.5"/>
<line x1="668.5" y1="749.5" x2="289.8" y2="559.2" stroke="#333355" stroke-width="0.5"/>
<line x1="652.6" y1="302.0" x2="1105.2" y2="551.0" stroke="#333355" stroke-width="0.5"/>
<line x1="521.4" y1="610.1" x2="411.4" y2="202.3" stroke="#333355" stroke-width="0.5"/>
<line x1="336.9" y1="380.3" x2="844.0" y2="512.2" stroke="#333355" stroke-width="0.5"/>
<line x1="411.4" y1="202.3" x2="237.6" y2="576.1" stroke="#333355" stroke-width="0.5"/>
<line x1="844.0" y1="512.2" x2="1184.4" y2="749.2" stroke="#333355" stroke-width="0.5"/>
<line x1="959.1" y1="205.5" x2="1441.7" y2="811.9" stroke="#333355" stroke-width="0.5"/>
<line x1="1184.4" y1="749.2" x2="1460.7" y2="671.5" stroke="#333355" stroke-width="0.5"/>
<line x1="1460.7" y1="671.5" x2="398.1" y2="523.8" stroke="#333355" stroke-width="0.5"/>
<line x1="237.6" y1="576.1" x2="781.6" y2="311.1" stroke="#333355" stroke-width="0.5"/>
<line x1="1441.7" y1="811.9" x2="909.0" y2="809.4" stroke="#333355" stroke-width="0.5"/>
<line x1="909.0" y1="809.4" x2="66.8" y2="340.3" stroke="#333355" stroke-width="0.5"/>
<line x1="1148.1" y1="754.1" x2="1309.5" y2="758.9" stroke="#333355" stroke-width="0.5"/>
<line x1="1309.5" y1="758.9" x2="660.0" y2="892.8" stroke="#333355" stroke-width="0.5"/>
<line x1="374.5" y1="828.4" x2="1135.7" y2="124.2" stroke="#333355" stroke-width="0.5"/>
<line x1="398.1" y1="523.8" x2="264.0" y2="856.8" stroke="#333355" stroke-width="0.5"/>
<line x1="66.8" y1="340.3" x2="913.4" y2="351.8" stroke="#333355" stroke-width="0.5"/>
<line x1="913.4" y1="351.8" x2="1211.7" y2="622.9" stroke="#333355" stroke-width="0.5"/>
<line x1="1135.7" y1="124.2" x2="471.4" y2="817.9" stroke="#333355" stroke-width="0.5"/>
<line x1="660.0" y1="892.8" x2="783.9" y2="796.6" stroke="#333355" stroke-width="0.5"/>
<line x1="264.0" y1="856.8" x2="201.1" y2="310.9" stroke="#333355" stroke-width="0.5"/>
<line x1="1211.7" y1="622.9" x2="62.2" y2="351.2" stroke="#333355" stroke-width="0.5"/>
<line x1="783.9" y1="796.6" x2="977.6" y2="396.3" stroke="#333355" stroke-width="0.5"/>
<line x1="229.0" y1="226.3" x2="1122.2" y2="514.5" stroke="#333355" stroke-width="0.5"/>
<line x1="1531.2" y1="490.5" x2="80.6" y2="870.1" stroke="#333355" stroke-width="0.5"/>
<line x1="80.6" y1="870.1" x2="345.8" y2="205.6" stroke="#333355" stroke-width="0.5"/>
<line x1="345.8" y1="205.6" x2="960.0" y2="574.7" stroke="#333355" stroke-width="0.5"/>
<line x1="960.0" y1="574.7" x2="176.1" y2="630.7" stroke="#333355" stroke-width="0.5"/>
<line x1="162.7" y1="821.2" x2="745.2" y2="258.5" stroke="#333355" stroke-width="0.5"/>
<line x1="176.1" y1="630.7" x2="1426.0" y2="361.0" stroke="#333355" stroke-width="0.5"/>
<line x1="1426.0" y1="361.0" x2="263.6" y2="857.2" stroke="#333355" stroke-width="0.5"/>
<line x1="471.4" y1="817.9" x2="1120.4" y2="846.7" stroke="#333355" stroke-width="0.5"/>
<line x1="263.6" y1="857.2" x2="791.6" y2="494.1" stroke="#333355" stroke-width="0.5"/>
<line x1="110.5" y1="177.8" x2="1447.6" y2="178.5" stroke="#333355" stroke-width="0.5"/>
<line x1="1447.6" y1="178.5" x2="1193.4" y2="93.6" stroke="#333355" stroke-width="0.5"/>
<line x1="598.7" y1="723.5" x2="1338.8" y2="801.4" stroke="#333355" stroke-width="0.5"/>
<line x1="1534.5" y1="77.8" x2="623.1" y2="629.0" stroke="#333355" stroke-width="0.5"/>
<line x1="623.1" y1="629.0" x2="361.2" y2="274.3" stroke="#333355" stroke-width="0.5"/>
<line x1="1120.4" y1="846.7" x2="649.7" y2="212.4" stroke="#333355" stroke-width="0.5"/>
<line x1="361.2" y1="274.3" x2="844.0" y2="512.2" stroke="#333355" stroke-width="0.5"/>
<line x1="1457.8" y1="875.5" x2="1090.7" y2="325.7" stroke="#333355" stroke-width="0.5"/>
<line x1="539.0" y1="345.9" x2="1034.2" y2="462.6" stroke="#333355" stroke-width="0.5"/>
<line x1="844.0" y1="512.2" x2="254.6" y2="224.1" stroke="#333355" stroke-width="0.5"/>
<line x1="1146.0" y1="154.9" x2="916.4" y2="222.2" stroke="#333355" stroke-width="0.5"/>
<line x1="62.2" y1="351.2" x2="883.2" y2="234.4" stroke="#333355" stroke-width="0.5"/>
<line x1="940.8" y1="395.8" x2="774.9" y2="689.3" stroke="#333355" stroke-width="0.5"/>
<line x1="649.7" y1="212.4" x2="1145.9" y2="154.9" stroke="#333355" stroke-width="0.5"/>
<line x1="1145.9" y1="154.9" x2="1470.6" y2="544.1" stroke="#333355" stroke-width="0.5"/>
<line x1="883.2" y1="234.4" x2="1122.4" y2="246.4" stroke="#333355" stroke-width="0.5"/>
<line x1="254.6" y1="224.1" x2="502.7" y2="286.6" stroke="#333355" stroke-width="0.5"/>
<line x1="916.4" y1="222.2" x2="1521.6" y2="472.3" stroke="#333355" stroke-width="0.5"/>
<line x1="1521.6" y1="472.3" x2="1220.6" y2="524.6" stroke="#333355" stroke-width="0.5"/>
<line x1="1220.6" y1="524.6" x2="1131.2" y2="320.8" stroke="#333355" stroke-width="0.5"/>
<line x1="774.9" y1="689.3" x2="75.9" y2="595.1" stroke="#333355" stroke-width="0.5"/>
<line x1="502.7" y1="286.6" x2="1254.9" y2="761.1" stroke="#333355" stroke-width="0.5"/>
<line x1="1122.4" y1="246.4" x2="369.6" y2="536.5" stroke="#333355" stroke-width="0.5"/>
<line x1="75.9" y1="595.1" x2="220.7" y2="465.2" stroke="#333355" stroke-width="0.5"/>
<line x1="1131.2" y1="320.8" x2="283.2" y2="501.8" stroke="#333355" stroke-width="0.5"/>
<line x1="283.2" y1="501.8" x2="257.7" y2="667.6" stroke="#333355" stroke-width="0.5"/>
<line x1="220.7" y1="465.2" x2="788.4" y2="60.0" stroke="#333355" stroke-width="0.5"/>
<line x1="1470.6" y1="544.1" x2="533.6" y2="524.4" stroke="#333355" stroke-width="0.5"/>
<line x1="1074.3" y1="197.6" x2="758.1" y2="326.1" stroke="#333355" stroke-width="0.5"/>
<line x1="1254.9" y1="761.1" x2="130.3" y2="194.1" stroke="#333355" stroke-width="0.5"/>
<line x1="130.3" y1="194.1" x2="1458.4" y2="590.4" stroke="#333355" stroke-width="0.5"/>
<line x1="533.6" y1="524.4" x2="755.2" y2="606.4" stroke="#333355" stroke-width="0.5"/>
<line x1="257.7" y1="667.6" x2="873.2" y2="405.1" stroke="#333355" stroke-width="0.5"/>
<line x1="369.6" y1="536.5" x2="165.5" y2="389.7" stroke="#333355" stroke-width="0.5"/>
<line x1="873.2" y1="405.1" x2="800.0" y2="500.0" stroke="#333355" stroke-width="0.5"/>
<line x1="758.1" y1="326.1" x2="189.5" y2="674.3" stroke="#333355" stroke-width="0.5"/>
<line x1="755.2" y1="606.4" x2="1061.8" y2="900.0" stroke="#333355" stroke-width="0.5"/>
<line x1="1034.2" y1="462.6" x2="323.5" y2="804.9" stroke="#333355" stroke-width="0.5"/>
<line x1="1338.8" y1="801.4" x2="1043.2" y2="862.0" stroke="#333355" stroke-width="0.5"/>
<line x1="189.5" y1="674.3" x2="401.2" y2="524.8" stroke="#333355" stroke-width="0.5"/>
<line x1="799.0" y1="660.4" x2="1299.2" y2="470.2" stroke="#333355" stroke-width="0.5"/>
<line x1="323.5" y1="804.9" x2="608.2" y2="344.2" stroke="#333355" stroke-width="0.5"/>
<line x1="345.8" y1="205.6" x2="1072.9" y2="725.2" stroke="#333355" stroke-width="0.5"/>
<line x1="165.5" y1="389.7" x2="1494.2" y2="181.5" stroke="#333355" stroke-width="0.5"/>
<line x1="201.1" y1="310.9" x2="870.1" y2="386.6" stroke="#333355" stroke-width="0.5"/>
<line x1="401.2" y1="524.8" x2="1147.5" y2="118.4" stroke="#333355" stroke-width="0.5"/>
<line x1="960.0" y1="574.7" x2="430.6" y2="488.8" stroke="#333355" stroke-width="0.5"/>
<line x1="714.3" y1="112.2" x2="830.9" y2="564.2" stroke="#333355" stroke-width="0.5"/>
<line x1="265.2" y1="485.0" x2="611.3" y2="104.6" stroke="#333355" stroke-width="0.5"/>
<line x1="1043.2" y1="862.0" x2="687.4" y2="214.7" stroke="#333355" stroke-width="0.5"/>
<line x1="274.0" y1="615.8" x2="761.5" y2="619.5" stroke="#333355" stroke-width="0.5"/>
<line x1="870.1" y1="386.6" x2="1250.9" y2="474.9" stroke="#333355" stroke-width="0.5"/>
<line x1="1147.5" y1="118.4" x2="1442.5" y2="603.4" stroke="#333355" stroke-width="0.5"/>
<line x1="1061.8" y1="900.0" x2="947.3" y2="336.9" stroke="#333355" stroke-width="0.5"/>
<line x1="1422.2" y1="824.5" x2="110.5" y2="177.8" stroke="#333355" stroke-width="0.5"/>
<line x1="110.5" y1="177.8" x2="835.4" y2="453.2" stroke="#333355" stroke-width="0.5"/>
<line x1="134.6" y1="600.0" x2="742.8" y2="301.1" stroke="#333355" stroke-width="0.5"/>
<line x1="923.8" y1="616.0" x2="1473.6" y2="584.5" stroke="#333355" stroke-width="0.5"/>
<line x1="761.5" y1="619.5" x2="356.0" y2="599.6" stroke="#333355" stroke-width="0.5"/>
<line x1="1341.9" y1="155.1" x2="914.1" y2="628.8" stroke="#333355" stroke-width="0.5"/>
<line x1="134.6" y1="600.0" x2="1157.8" y2="347.6" stroke="#333355" stroke-width="0.5"/>
<line x1="110.5" y1="177.8" x2="1129.5" y2="701.5" stroke="#333355" stroke-width="0.5"/>
<line x1="830.9" y1="564.2" x2="100.5" y2="384.1" stroke="#333355" stroke-width="0.5"/>
<line x1="1473.6" y1="584.5" x2="1122.4" y2="246.4" stroke="#333355" stroke-width="0.5"/>
<line x1="1157.8" y1="347.6" x2="566.4" y2="454.5" stroke="#333355" stroke-width="0.5"/>
<line x1="979.6" y1="396.0" x2="1513.3" y2="391.6" stroke="#333355" stroke-width="0.5"/>
<line x1="1513.3" y1="391.6" x2="697.8" y2="391.9" stroke="#333355" stroke-width="0.5"/>
<line x1="1122.4" y1="246.4" x2="1129.4" y2="701.5" stroke="#333355" stroke-width="0.5"/>
<line x1="1129.4" y1="701.5" x2="723.5" y2="849.4" stroke="#333355" stroke-width="0.5"/>
<line x1="1289.0" y1="253.4" x2="132.4" y2="884.6" stroke="#333355" stroke-width="0.5"/>
<line x1="1129.5" y1="701.5" x2="1119.8" y2="257.6" stroke="#333355" stroke-width="0.5"/>
<line x1="430.6" y1="488.8" x2="1129.5" y2="701.5" stroke="#333355" stroke-width="0.5"/>
<line x1="697.8" y1="391.9" x2="109.8" y2="474.3" stroke="#333355" stroke-width="0.5"/>
<line x1="132.4" y1="884.6" x2="282.3" y2="755.2" stroke="#333355" stroke-width="0.5"/>
<line x1="282.3" y1="755.2" x2="1285.7" y2="454.0" stroke="#333355" stroke-width="0.5"/>
<line x1="687.4" y1="214.7" x2="1062.4" y2="828.9" stroke="#333355" stroke-width="0.5"/>
<line x1="1311.0" y1="656.6" x2="460.8" y2="519.9" stroke="#333355" stroke-width="0.5"/>
<line x1="1285.7" y1="454.0" x2="66.9" y2="546.6" stroke="#333355" stroke-width="0.5"/>
<line x1="1119.8" y1="257.6" x2="372.2" y2="602.1" stroke="#333355" stroke-width="0.5"/>
<line x1="372.2" y1="602.1" x2="835.9" y2="270.7" stroke="#333355" stroke-width="0.5"/>
<line x1="356.0" y1="599.6" x2="709.0" y2="188.0" stroke="#333355" stroke-width="0.5"/>
<line x1="460.8" y1="519.9" x2="977.6" y2="396.3" stroke="#333355" stroke-width="0.5"/>
<line x1="835.9" y1="270.7" x2="727.2" y2="568.0" stroke="#333355" stroke-width="0.5"/>
<line x1="66.9" y1="546.6" x2="424.8" y2="389.6" stroke="#333355" stroke-width="0.5"/>
<line x1="65.8" y1="245.5" x2="1387.5" y2="404.5" stroke="#333355" stroke-width="0.5"/>
<line x1="424.8" y1="389.6" x2="110.6" y2="473.6" stroke="#333355" stroke-width="0.5"/>
<line x1="727.2" y1="568.0" x2="1125.7" y2="654.2" stroke="#333355" stroke-width="0.5"/>
<line x1="109.8" y1="474.3" x2="820.7" y2="441.3" stroke="#333355" stroke-width="0.5"/>
<line x1="1125.7" y1="654.2" x2="1214.1" y2="364.2" stroke="#333355" stroke-width="0.5"/>
<line x1="745.0" y1="258.4" x2="1447.6" y2="178.5" stroke="#333355" stroke-width="0.5"/>
<line x1="709.0" y1="188.0" x2="738.8" y2="275.9" stroke="#333355" stroke-width="0.5"/>
<line x1="1214.1" y1="364.2" x2="1374.8" y2="723.4" stroke="#333355" stroke-width="0.5"/>
<line x1="1129.4" y1="701.5" x2="614.1" y2="392.5" stroke="#333355" stroke-width="0.5"/>
<line x1="374.8" y1="828.8" x2="781.6" y2="754.6" stroke="#333355" stroke-width="0.5"/>
<line x1="614.1" y1="392.5" x2="1467.0" y2="253.9" stroke="#333355" stroke-width="0.5"/>
<line x1="567.1" y1="625.7" x2="414.6" y2="630.7" stroke="#333355" stroke-width="0.5"/>
<line x1="781.6" y1="754.6" x2="707.4" y2="499.3" stroke="#333355" stroke-width="0.5"/>
<line x1="707.4" y1="499.3" x2="1105.3" y2="551.1" stroke="#333355" stroke-width="0.5"/>
<line x1="1105.3" y1="551.1" x2="1523.7" y2="254.8" stroke="#333355" stroke-width="0.5"/>
<line x1="414.6" y1="630.7" x2="1181.6" y2="287.0" stroke="#333355" stroke-width="0.5"/>
<line x1="1523.7" y1="254.8" x2="584.8" y2="352.9" stroke="#333355" stroke-width="0.5"/>
<line x1="584.8" y1="352.9" x2="1157.9" y2="827.5" stroke="#333355" stroke-width="0.5"/>
<line x1="1374.8" y1="723.4" x2="1304.2" y2="877.5" stroke="#333355" stroke-width="0.5"/>
<line x1="977.6" y1="396.3" x2="412.2" y2="433.6" stroke="#333355" stroke-width="0.5"/>
<line x1="412.2" y1="433.6" x2="835.4" y2="453.2" stroke="#333355" stroke-width="0.5"/>
<line x1="1374.8" y1="723.4" x2="265.8" y2="747.1" stroke="#333355" stroke-width="0.5"/>
<line x1="1476.8" y1="682.2" x2="358.4" y2="464.8" stroke="#333355" stroke-width="0.5"/>
<line x1="1181.6" y1="287.0" x2="170.9" y2="143.7" stroke="#333355" stroke-width="0.5"/>
<line x1="835.4" y1="453.2" x2="758.1" y2="326.1" stroke="#333355" stroke-width="0.5"/>
<line x1="358.4" y1="464.8" x2="1094.6" y2="315.0" stroke="#333355" stroke-width="0.5"/>
<line x1="1157.9" y1="827.5" x2="370.8" y2="543.2" stroke="#333355" stroke-width="0.5"/>
<line x1="170.9" y1="143.7" x2="990.3" y2="235.1" stroke="#333355" stroke-width="0.5"/>
<line x1="282.3" y1="755.2" x2="1480.8" y2="631.2" stroke="#333355" stroke-width="0.5"/>
<line x1="170.9" y1="143.7" x2="1146.2" y2="778.8" stroke="#333355" stroke-width="0.5"/>
<line x1="793.9" y1="291.2" x2="1150.4" y2="484.0" stroke="#333355" stroke-width="0.5"/>
<line x1="1146.2" y1="778.8" x2="1524.9" y2="297.9" stroke="#333355" stroke-width="0.5"/>
<line x1="414.5" y1="630.6" x2="1136.5" y2="492.1" stroke="#333355" stroke-width="0.5"/>
<line x1="110.6" y1="473.6" x2="194.2" y2="790.9" stroke="#333355" stroke-width="0.5"/>
<line x1="1136.5" y1="492.1" x2="735.8" y2="464.5" stroke="#333355" stroke-width="0.5"/>
<line x1="584.8" y1="352.9" x2="1191.2" y2="130.5" stroke="#333355" stroke-width="0.5"/>
<line x1="1288.9" y1="253.4" x2="1476.2" y2="929.9" stroke="#333355" stroke-width="0.5"/>
<line x1="990.3" y1="235.1" x2="386.0" y2="244.5" stroke="#333355" stroke-width="0.5"/>
<line x1="730.0" y1="465.6" x2="1115.2" y2="532.6" stroke="#333355" stroke-width="0.5"/>
<line x1="1115.2" y1="532.6" x2="203.1" y2="650.5" stroke="#333355" stroke-width="0.5"/>
<line x1="735.8" y1="464.5" x2="161.9" y2="605.3" stroke="#333355" stroke-width="0.5"/>
<line x1="370.8" y1="543.2" x2="611.3" y2="104.6" stroke="#333355" stroke-width="0.5"/>
<line x1="1524.9" y1="297.9" x2="520.5" y2="474.6" stroke="#333355" stroke-width="0.5"/>
<line x1="520.5" y1="474.6" x2="484.4" y2="533.3" stroke="#333355" stroke-width="0.5"/>
<line x1="161.9" y1="605.3" x2="538.3" y2="484.0" stroke="#333355" stroke-width="0.5"/>
<line x1="386.0" y1="244.5" x2="1203.9" y2="610.8" stroke="#333355" stroke-width="0.5"/>
<line x1="1203.9" y1="610.8" x2="1539.9" y2="372.6" stroke="#333355" stroke-width="0.5"/>
<line x1="484.4" y1="533.3" x2="1019.6" y2="737.0" stroke="#333355" stroke-width="0.5"/>
<line x1="947.3" y1="336.9" x2="230.0" y2="608.9" stroke="#333355" stroke-width="0.5"/>
<line x1="739.5" y1="375.2" x2="742.1" y2="380.1" stroke="#333355" stroke-width="0.5"/>
<line x1="1191.2" y1="130.5" x2="1384.2" y2="872.9" stroke="#333355" stroke-width="0.5"/>
<line x1="707.4" y1="499.3" x2="388.5" y2="277.8" stroke="#333355" stroke-width="0.5"/>
<line x1="194.2" y1="790.9" x2="294.0" y2="455.0" stroke="#333355" stroke-width="0.5"/>
<line x1="1150.4" y1="484.0" x2="1230.9" y2="820.0" stroke="#333355" stroke-width="0.5"/>
<line x1="1476.2" y1="929.9" x2="1477.0" y2="410.6" stroke="#333355" stroke-width="0.5"/>
<line x1="793.9" y1="291.2" x2="1521.3" y2="914.4" stroke="#333355" stroke-width="0.5"/>
<line x1="1539.9" y1="372.6" x2="1289.4" y2="639.2" stroke="#333355" stroke-width="0.5"/>
<line x1="697.8" y1="391.9" x2="925.7" y2="519.0" stroke="#333355" stroke-width="0.5"/>
<line x1="758.1" y1="326.1" x2="164.8" y2="263.6" stroke="#333355" stroke-width="0.5"/>
<line x1="800.0" y1="500.0" x2="800.0" y2="500.0" stroke="#333355" stroke-width="0.5"/>
<line x1="529.8" y1="464.1" x2="880.2" y2="408.0" stroke="#333355" stroke-width="0.5"/>
<line x1="529.8" y1="464.1" x2="614.1" y2="392.5" stroke="#333355" stroke-width="0.5"/>
<line x1="529.8" y1="464.1" x2="652.9" y2="626.3" stroke="#333355" stroke-width="0.5"/>
<line x1="742.8" y1="301.1" x2="282.3" y2="755.2" stroke="#333355" stroke-width="0.5"/>
<line x1="742.8" y1="301.1" x2="584.8" y2="352.9" stroke="#333355" stroke-width="0.5"/>
<line x1="742.8" y1="301.1" x2="1447.6" y2="178.5" stroke="#333355" stroke-width="0.5"/>
<line x1="742.8" y1="301.1" x2="460.8" y2="519.9" stroke="#333355" stroke-width="0.5"/>
<line x1="614.8" y1="456.2" x2="1516.7" y2="517.5" stroke="#333355" stroke-width="0.5"/>
<line x1="1422.2" y1="824.5" x2="1125.7" y2="654.2" stroke="#333355" stroke-width="0.5"/>
<line x1="1422.2" y1="824.5" x2="735.8" y2="464.5" stroke="#333355" stroke-width="0.5"/>
<line x1="1422.2" y1="824.5" x2="1122.4" y2="246.4" stroke="#333355" stroke-width="0.5"/>
<line x1="1422.2" y1="824.5" x2="1304.2" y2="877.5" stroke="#333355" stroke-width="0.5"/>
<line x1="265.2" y1="485.0" x2="162.7" y2="821.2" stroke="#333355" stroke-width="0.5"/>
<line x1="265.2" y1="485.0" x2="1090.7" y2="325.7" stroke="#333355" stroke-width="0.5"/>
<line x1="735.8" y1="464.5" x2="520.5" y2="474.6" stroke="#333355" stroke-width="0.5"/>
<line x1="735.8" y1="464.5" x2="723.5" y2="849.4" stroke="#333355" stroke-width="0.5"/>
<line x1="1391.5" y1="780.6" x2="652.9" y2="626.3" stroke="#333355" stroke-width="0.5"/>
<line x1="1391.5" y1="780.6" x2="529.8" y2="464.1" stroke="#333355" stroke-width="0.5"/>
<line x1="1391.5" y1="780.6" x2="380.8" y2="758.1" stroke="#333355" stroke-width="0.5"/>
<line x1="1391.5" y1="780.6" x2="289.8" y2="559.2" stroke="#333355" stroke-width="0.5"/>
<line x1="977.6" y1="396.3" x2="1480.8" y2="631.2" stroke="#333355" stroke-width="0.5"/>
<line x1="977.6" y1="396.3" x2="697.8" y2="391.9" stroke="#333355" stroke-width="0.5"/>
<line x1="977.6" y1="396.3" x2="820.7" y2="441.3" stroke="#333355" stroke-width="0.5"/>
<line x1="167.1" y1="594.0" x2="1215.8" y2="167.6" stroke="#333355" stroke-width="0.5"/>
<line x1="167.1" y1="594.0" x2="279.2" y2="557.4" stroke="#333355" stroke-width="0.5"/>
<line x1="977.6" y1="396.3" x2="788.4" y2="60.0" stroke="#333355" stroke-width="0.5"/>
<line x1="977.6" y1="396.3" x2="110.5" y2="177.8" stroke="#333355" stroke-width="0.5"/>
<line x1="977.6" y1="396.3" x2="430.6" y2="488.8" stroke="#333355" stroke-width="0.5"/>
<line x1="977.6" y1="396.3" x2="1193.4" y2="93.6" stroke="#333355" stroke-width="0.5"/>
<line x1="1306.8" y1="707.8" x2="983.8" y2="624.9" stroke="#333355" stroke-width="0.5"/>
<line x1="1148.1" y1="754.1" x2="1447.6" y2="178.5" stroke="#333355" stroke-width="0.5"/>
<line x1="1129.5" y1="701.5" x2="1467.0" y2="253.9" stroke="#333355" stroke-width="0.5"/>
<line x1="1387.5" y1="404.5" x2="132.4" y2="884.6" stroke="#333355" stroke-width="0.5"/>
<line x1="835.4" y1="453.2" x2="1129.4" y2="701.5" stroke="#333355" stroke-width="0.5"/>
<line x1="100.5" y1="384.1" x2="370.8" y2="543.2" stroke="#333355" stroke-width="0.5"/>
<line x1="1157.8" y1="347.6" x2="977.6" y2="396.3" stroke="#333355" stroke-width="0.5"/>
<line x1="614.1" y1="392.5" x2="739.5" y2="375.2" stroke="#333355" stroke-width="0.5"/>
<line x1="1523.7" y1="254.8" x2="134.6" y2="600.0" stroke="#333355" stroke-width="0.5"/>
<line x1="1122.2" y1="514.5" x2="80.6" y2="870.1" stroke="#333355" stroke-width="0.5"/>
<line x1="220.7" y1="465.2" x2="110.5" y2="177.8" stroke="#333355" stroke-width="0.5"/>
<line x1="1215.8" y1="167.6" x2="1139.5" y2="768.7" stroke="#333355" stroke-width="0.5"/>
<line x1="689.3" y1="225.0" x2="477.0" y2="598.4" stroke="#333355" stroke-width="0.5"/>
<line x1="487.0" y1="316.3" x2="532.8" y2="474.6" stroke="#333355" stroke-width="0.5"/>
<line x1="1516.7" y1="517.5" x2="983.0" y2="663.0" stroke="#333355" stroke-width="0.5"/>
<line x1="983.8" y1="624.9" x2="1266.8" y2="111.0" stroke="#333355" stroke-width="0.5"/>
<line x1="1177.3" y1="490.0" x2="279.2" y2="557.4" stroke="#333355" stroke-width="0.5"/>
<line x1="788.5" y1="499.5" x2="955.3" y2="857.8" stroke="#333355" stroke-width="0.5"/>
<line x1="1364.1" y1="285.4" x2="1486.5" y2="706.4" stroke="#333355" stroke-width="0.5"/>
<line x1="965.4" y1="847.4" x2="1422.2" y2="824.5" stroke="#333355" stroke-width="0.5"/>
<line x1="1169.5" y1="477.6" x2="265.8" y2="747.1" stroke="#333355" stroke-width="0.5"/>
<line x1="1364.1" y1="285.4" x2="1285.7" y2="454.0" stroke="#333355" stroke-width="0.5"/>
<line x1="983.0" y1="663.0" x2="820.7" y2="441.3" stroke="#333355" stroke-width="0.5"/>
<line x1="1159.6" y1="104.1" x2="1458.4" y2="590.4" stroke="#333355" stroke-width="0.5"/>
<line x1="532.8" y1="474.6" x2="110.5" y2="177.8" stroke="#333355" stroke-width="0.5"/>
<line x1="1524.9" y1="297.9" x2="1113.4" y2="214.0" stroke="#333355" stroke-width="0.5"/>
<line x1="1391.5" y1="780.6" x2="1105.2" y2="551.0" stroke="#333355" stroke-width="0.5"/>
<line x1="75.9" y1="595.1" x2="124.5" y2="152.2" stroke="#333355" stroke-width="0.5"/>
<line x1="1122.4" y1="246.4" x2="1223.0" y2="638.6" stroke="#333355" stroke-width="0.5"/>
<line x1="614.1" y1="392.5" x2="1513.3" y2="391.6" stroke="#333355" stroke-width="0.5"/>
<line x1="983.8" y1="624.9" x2="477.0" y2="598.4" stroke="#333355" stroke-width="0.5"/>
<line x1="983.8" y1="624.9" x2="955.3" y2="857.8" stroke="#333355" stroke-width="0.5"/>
<line x1="983.8" y1="624.9" x2="965.4" y2="847.4" stroke="#333355" stroke-width="0.5"/>
<line x1="477.0" y1="598.4" x2="689.3" y2="225.0" stroke="#333355" stroke-width="0.5"/>
<line x1="477.0" y1="598.4" x2="630.7" y2="206.7" stroke="#333355" stroke-width="0.5"/>
<line x1="477.0" y1="598.4" x2="1364.1" y2="285.4" stroke="#333355" stroke-width="0.5"/>
<line x1="1306.8" y1="707.8" x2="1516.7" y2="517.5" stroke="#333355" stroke-width="0.5"/>
<line x1="1306.8" y1="707.8" x2="487.0" y2="316.3" stroke="#333355" stroke-width="0.5"/>
<line x1="1215.8" y1="167.6" x2="1266.8" y2="111.0" stroke="#333355" stroke-width="0.5"/>
<line x1="1516.7" y1="517.5" x2="788.5" y2="499.5" stroke="#333355" stroke-width="0.5"/>
<line x1="487.0" y1="316.3" x2="614.8" y2="456.2" stroke="#333355" stroke-width="0.5"/>
<line x1="983.0" y1="663.0" x2="532.8" y2="474.6" stroke="#333355" stroke-width="0.5"/>
<line x1="955.3" y1="857.8" x2="322.8" y2="547.2" stroke="#333355" stroke-width="0.5"/>
<line x1="1364.1" y1="285.4" x2="1169.5" y2="477.6" stroke="#333355" stroke-width="0.5"/>
<line x1="1486.5" y1="706.4" x2="983.0" y2="663.0" stroke="#333355" stroke-width="0.5"/>
<line x1="1139.5" y1="768.7" x2="689.3" y2="225.0" stroke="#333355" stroke-width="0.5"/>
<line x1="1266.8" y1="111.0" x2="614.8" y2="456.2" stroke="#333355" stroke-width="0.5"/>
<line x1="820.7" y1="441.3" x2="566.4" y2="454.5" stroke="#333355" stroke-width="0.5"/>
<line x1="983.0" y1="663.0" x2="955.3" y2="857.8" stroke="#333355" stroke-width="0.5"/>
<line x1="652.9" y1="626.3" x2="376.9" y2="402.6" stroke="#333355" stroke-width="0.5"/>
<line x1="584.8" y1="352.9" x2="707.4" y2="499.3" stroke="#333355" stroke-width="0.5"/>
<line x1="1266.8" y1="111.0" x2="279.2" y2="557.4" stroke="#333355" stroke-width="0.5"/>
<line x1="697.8" y1="391.9" x2="566.4" y2="454.5" stroke="#333355" stroke-width="0.5"/>
<line x1="1364.1" y1="285.4" x2="965.4" y2="847.4" stroke="#333355" stroke-width="0.5"/>
<line x1="134.6" y1="600.0" x2="707.4" y2="499.3" stroke="#333355" stroke-width="0.5"/>
<line x1="487.0" y1="316.3" x2="965.4" y2="847.4" stroke="#333355" stroke-width="0.5"/>
<line x1="1494.2" y1="181.5" x2="1422.2" y2="824.5" stroke="#333355" stroke-width="0.5"/>
<line x1="608.2" y1="344.2" x2="1255.8" y2="386.3" stroke="#333355" stroke-width="0.5"/>
<line x1="274.0" y1="615.8" x2="1255.8" y2="386.3" stroke="#333355" stroke-width="0.5"/>
<line x1="843.5" y1="417.3" x2="393.1" y2="406.3" stroke="#333355" stroke-width="0.5"/>
<line x1="1146.0" y1="154.9" x2="393.1" y2="406.3" stroke="#333355" stroke-width="0.5"/>
<line x1="159.6" y1="270.4" x2="393.1" y2="406.3" stroke="#333355" stroke-width="0.5"/>
<line x1="1250.9" y1="474.9" x2="134.6" y2="600.0" stroke="#333355" stroke-width="0.5"/>
<line x1="781.6" y1="311.1" x2="1148.1" y2="754.1" stroke="#333355" stroke-width="0.5"/>
<line x1="183.7" y1="430.4" x2="1255.8" y2="386.3" stroke="#333355" stroke-width="0.5"/>
<line x1="1534.5" y1="77.8" x2="265.2" y2="485.0" stroke="#333355" stroke-width="0.5"/>
<line x1="183.7" y1="430.4" x2="1480.8" y2="631.2" stroke="#333355" stroke-width="0.5"/>
<line x1="1074.3" y1="197.6" x2="788.4" y2="60.0" stroke="#333355" stroke-width="0.5"/>
<line x1="1476.8" y1="682.2" x2="1304.2" y2="877.5" stroke="#333355" stroke-width="0.5"/>
<line x1="1105.4" y1="551.4" x2="793.9" y2="291.2" stroke="#333355" stroke-width="0.5"/>
<line x1="1105.4" y1="551.4" x2="1447.6" y2="178.5" stroke="#333355" stroke-width="0.5"/>
<line x1="573.0" y1="575.3" x2="799.0" y2="660.4" stroke="#333355" stroke-width="0.5"/>
<line x1="647.5" y1="502.2" x2="162.7" y2="821.2" stroke="#333355" stroke-width="0.5"/>
<line x1="647.5" y1="502.2" x2="1122.2" y2="514.5" stroke="#333355" stroke-width="0.5"/>
<line x1="1288.9" y1="253.4" x2="265.8" y2="747.1" stroke="#333355" stroke-width="0.5"/>
<line x1="1085.6" y1="517.2" x2="614.1" y2="392.5" stroke="#333355" stroke-width="0.5"/>
<line x1="598.7" y1="723.5" x2="289.8" y2="559.2" stroke="#333355" stroke-width="0.5"/>
<line x1="730.0" y1="465.6" x2="1467.0" y2="253.9" stroke="#333355" stroke-width="0.5"/>
<line x1="800.0" y1="500.0" x2="167.1" y2="594.0" stroke="#333355" stroke-width="0.5"/>
<circle cx="800.0" cy="500.0" r="4" fill="#FFD700" opacity="0.85"/>
<text x="805.0" y="503.0" fill="#FFD700" font-size="7" font-family="monospace" opacity="0.7">Sol</text>
<circle cx="167.1" cy="594.0" r="4" fill="#FFD700" opacity="0.85"/>
<text x="172.1" y="597.0" fill="#FFD700" font-size="7" font-family="monospace" opacity="0.7">Tau Ceti</text>
<circle cx="1384.2" cy="872.9" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="910.0" cy="420.0" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="183.7" cy="430.4" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="783.9" cy="796.6" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="567.1" cy="625.7" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="289.8" cy="559.2" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="820.7" cy="441.3" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="735.8" cy="464.5" r="2.5" fill="#4488FF" opacity="0.85"/>
<text x="740.8" y="467.5" fill="#4488FF" font-size="7" font-family="monospace" opacity="0.7">Wolf 359</text>
<circle cx="965.4" cy="847.4" r="4" fill="#FFD700" opacity="0.85"/>
<text x="970.4" y="850.4" fill="#FFD700" font-size="7" font-family="monospace" opacity="0.7">ACB</text>
<circle cx="1113.4" cy="214.0" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="1135.7" cy="124.2" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="707.4" cy="499.3" r="2.5" fill="#FF4444" opacity="0.85"/>
<text x="712.4" y="502.3" fill="#FF4444" font-size="7" font-family="monospace" opacity="0.7">GJ 393</text>
<circle cx="279.2" cy="557.4" r="4" fill="#FFD700" opacity="0.85"/>
<text x="284.2" y="560.4" fill="#FFD700" font-size="7" font-family="monospace" opacity="0.7">Ran</text>
<circle cx="1125.7" cy="654.2" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="608.2" cy="344.2" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="358.4" cy="464.8" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="1079.4" cy="575.5" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="1298.1" cy="485.3" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="668.5" cy="749.5" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="1074.3" cy="197.6" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="484.4" cy="533.3" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="1203.9" cy="610.8" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="1476.8" cy="682.2" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="566.4" cy="454.5" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="1090.7" cy="325.7" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="983.0" cy="663.0" r="4" fill="#FFD700" opacity="0.85"/>
<text x="988.0" y="666.0" fill="#FFD700" font-size="7" font-family="monospace" opacity="0.7">Tessera</text>
<circle cx="170.9" cy="143.7" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="1311.0" cy="656.6" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="376.9" cy="402.6" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="1105.4" cy="551.4" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="1476.2" cy="929.9" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="161.9" cy="605.3" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="1090.7" cy="325.7" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="1043.2" cy="862.0" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="406.4" cy="440.1" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="322.8" cy="547.2" r="4" fill="#FFD700" opacity="0.85"/>
<text x="327.8" y="550.2" fill="#FFD700" font-size="7" font-family="monospace" opacity="0.7">Keid</text>
<circle cx="1062.4" cy="828.9" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="75.9" cy="595.1" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="835.4" cy="453.2" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="781.6" cy="754.6" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="237.6" cy="576.1" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="646.6" cy="472.1" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="65.6" cy="714.9" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="294.0" cy="455.0" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="1473.6" cy="584.5" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="532.8" cy="474.6" r="4" fill="#FFD700" opacity="0.85"/>
<text x="537.8" y="477.6" fill="#FFD700" font-size="7" font-family="monospace" opacity="0.7">Parallax</text>
<circle cx="960.0" cy="574.7" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="1120.4" cy="846.7" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="923.8" cy="616.0" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="1148.1" cy="754.1" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="652.9" cy="626.3" r="2.5" fill="#FF8800" opacity="0.85"/>
<text x="657.9" y="629.3" fill="#FF8800" font-size="7" font-family="monospace" opacity="0.7">GJ 357</text>
<circle cx="441.5" cy="627.4" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="110.5" cy="177.8" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="1105.3" cy="551.1" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="1457.8" cy="875.5" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="110.6" cy="473.6" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="1019.6" cy="737.0" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="345.8" cy="205.6" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="263.6" cy="857.2" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="584.8" cy="352.9" r="2.5" fill="#FF4444" opacity="0.85"/>
<text x="589.8" y="355.9" fill="#FF4444" font-size="7" font-family="monospace" opacity="0.7">GJ 1111</text>
<circle cx="189.5" cy="674.3" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="393.1" cy="406.3" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="80.6" cy="870.1" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="1094.6" cy="315.0" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="1534.5" cy="77.8" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="477.0" cy="598.4" r="4" fill="#FFD700" opacity="0.85"/>
<text x="482.0" y="601.4" fill="#FFD700" font-size="7" font-family="monospace" opacity="0.7">Sirius</text>
<circle cx="1309.5" cy="758.9" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="66.8" cy="340.3" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="1477.0" cy="410.6" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="940.8" cy="395.8" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="66.9" cy="546.6" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="124.5" cy="152.2" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="1486.5" cy="706.4" r="4" fill="#FFD700" opacity="0.85"/>
<text x="1491.5" y="709.4" fill="#FFD700" font-size="7" font-family="monospace" opacity="0.7">Lacaille</text>
<circle cx="1467.0" cy="253.9" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="361.2" cy="274.3" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="1458.4" cy="590.4" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="356.0" cy="599.6" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="264.0" cy="856.8" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="1524.9" cy="297.9" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="520.5" cy="474.6" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="65.8" cy="245.5" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="1196.5" cy="494.6" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="533.6" cy="524.4" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="162.7" cy="821.2" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="1077.5" cy="899.5" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="1289.0" cy="253.4" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="709.1" cy="188.2" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="471.4" cy="817.9" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="1285.7" cy="454.0" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="1215.8" cy="167.6" r="4" fill="#FFD700" opacity="0.85"/>
<text x="1220.8" y="170.6" fill="#FFD700" font-size="7" font-family="monospace" opacity="0.7">Struve</text>
<circle cx="830.9" cy="564.2" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="955.3" cy="857.8" r="4" fill="#FFD700" opacity="0.85"/>
<text x="960.3" y="860.8" fill="#FFD700" font-size="7" font-family="monospace" opacity="0.7">Proxima Centauri</text>
<circle cx="1150.4" cy="484.0" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="611.3" cy="104.6" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="539.0" cy="345.9" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="1214.1" cy="364.2" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="1129.5" cy="701.5" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="386.0" cy="244.5" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="388.5" cy="277.8" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="1034.2" cy="462.6" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="793.9" cy="291.2" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="109.8" cy="474.3" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="538.3" cy="484.0" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="398.1" cy="523.8" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="110.5" cy="177.8" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="374.5" cy="828.4" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="774.9" cy="689.3" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="401.2" cy="524.8" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="742.8" cy="301.1" r="2.5" fill="#FF4444" opacity="0.85"/>
<text x="747.8" y="304.1" fill="#FF4444" font-size="7" font-family="monospace" opacity="0.7">Lalande 21185</text>
<circle cx="1266.8" cy="111.0" r="4" fill="#FFD700" opacity="0.85"/>
<text x="1271.8" y="114.0" fill="#FFD700" font-size="7" font-family="monospace" opacity="0.7">Nova Roma</text>
<circle cx="835.9" cy="270.7" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="697.8" cy="391.9" r="2.5" fill="#FF4444" opacity="0.85"/>
<text x="702.8" y="394.9" fill="#FF4444" font-size="7" font-family="monospace" opacity="0.7">GJ 388</text>
<circle cx="1139.5" cy="768.7" r="4" fill="#FFD700" opacity="0.85"/>
<text x="1144.5" y="771.7" fill="#FFD700" font-size="7" font-family="monospace" opacity="0.7">Meridian</text>
<circle cx="1220.6" cy="524.6" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="1290.4" cy="467.9" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="1470.6" cy="544.1" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="788.5" cy="499.5" r="4" fill="#FFD700" opacity="0.85"/>
<text x="793.5" y="502.5" fill="#FFD700" font-size="7" font-family="monospace" opacity="0.7">Ross 128</text>
<circle cx="1169.5" cy="477.6" r="4" fill="#FFD700" opacity="0.85"/>
<text x="1174.5" y="480.6" fill="#FFD700" font-size="7" font-family="monospace" opacity="0.7">Barnard's Star</text>
<circle cx="1364.1" cy="285.4" r="4" fill="#FFD700" opacity="0.85"/>
<text x="1369.1" y="288.4" fill="#FFD700" font-size="7" font-family="monospace" opacity="0.7">Cygni B</text>
<circle cx="758.1" cy="326.1" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="1145.9" cy="154.9" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="611.3" cy="104.6" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="764.8" cy="851.9" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="1147.5" cy="118.4" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="652.6" cy="302.0" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="1129.5" cy="701.5" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="86.4" cy="940.0" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="1494.2" cy="181.5" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="1061.8" cy="900.0" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="176.1" cy="630.7" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="1181.6" cy="287.0" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="424.8" cy="389.6" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="336.9" cy="380.3" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="134.6" cy="600.0" r="2.5" fill="#FF4444" opacity="0.85"/>
<text x="139.6" y="603.0" fill="#FF4444" font-size="7" font-family="monospace" opacity="0.7">GJ 54.1</text>
<circle cx="925.7" cy="519.0" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="274.0" cy="615.8" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="323.5" cy="804.9" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="487.0" cy="316.3" r="4" fill="#FFD700" opacity="0.85"/>
<text x="492.0" y="319.3" fill="#FFD700" font-size="7" font-family="monospace" opacity="0.7">Renaissance</text>
<circle cx="919.2" cy="400.2" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="1064.3" cy="551.3" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="1230.9" cy="820.0" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="1211.7" cy="622.9" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="380.8" cy="758.1" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="781.6" cy="311.1" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="1184.4" cy="749.2" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="1437.6" cy="806.7" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="1521.3" cy="914.4" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="791.6" cy="494.1" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="1131.2" cy="320.8" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="1338.8" cy="801.4" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="414.5" cy="630.6" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="1191.2" cy="130.5" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="62.2" cy="351.2" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="687.4" cy="214.7" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="979.6" cy="396.0" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="875.1" cy="346.7" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="916.4" cy="222.2" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="800.0" cy="500.0" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="1254.9" cy="761.1" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="1223.0" cy="638.6" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="758.1" cy="326.1" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="913.4" cy="351.8" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="1422.2" cy="824.5" r="2.5" fill="#4488FF" opacity="0.85"/>
<text x="1427.2" y="827.5" fill="#4488FF" font-size="7" font-family="monospace" opacity="0.7">Cairn</text>
<circle cx="370.8" cy="543.2" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="254.6" cy="224.1" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="114.6" cy="675.4" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="614.8" cy="456.2" r="4" fill="#FFD700" opacity="0.85"/>
<text x="619.8" y="459.2" fill="#FFD700" font-size="7" font-family="monospace" opacity="0.7">Vargr</text>
<circle cx="412.2" cy="433.6" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="1350.1" cy="153.3" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="1374.8" cy="723.4" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="573.0" cy="575.3" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="165.5" cy="389.7" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="1523.7" cy="254.8" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="502.7" cy="286.6" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="1289.4" cy="639.2" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="959.1" cy="205.5" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="1157.9" cy="827.5" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="841.1" cy="720.6" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="1250.9" cy="474.9" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="630.7" cy="206.7" r="4" fill="#FFD700" opacity="0.85"/>
<text x="635.7" y="209.7" fill="#FFD700" font-size="7" font-family="monospace" opacity="0.7">Arbour</text>
<circle cx="1243.6" cy="404.4" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="1129.4" cy="701.5" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="883.2" cy="234.4" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="265.2" cy="485.0" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="1126.6" cy="653.9" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="1447.6" cy="178.5" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="372.2" cy="602.1" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="441.1" cy="925.9" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="1521.6" cy="472.3" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="1136.5" cy="492.1" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="835.4" cy="453.2" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="844.0" cy="512.2" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="909.0" cy="809.4" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="529.8" cy="464.1" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="723.5" cy="849.4" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="709.0" cy="188.0" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="1119.8" cy="257.6" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="1447.6" cy="178.5" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="460.8" cy="519.9" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="727.2" cy="568.0" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="100.5" cy="384.1" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="739.5" cy="375.2" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="990.3" cy="235.1" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="800.0" cy="500.0" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="738.8" cy="275.9" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="660.0" cy="892.8" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="1441.7" cy="811.9" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="132.4" cy="884.6" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="1122.4" cy="246.4" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="623.1" cy="629.0" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="977.6" cy="396.3" r="2.5" fill="#FF4444" opacity="0.85"/>
<text x="982.6" y="399.3" fill="#FF4444" font-size="7" font-family="monospace" opacity="0.7">GJ 566B</text>
<circle cx="689.3" cy="225.0" r="4" fill="#FFD700" opacity="0.85"/>
<text x="694.3" y="228.0" fill="#FFD700" font-size="7" font-family="monospace" opacity="0.7">Groombridge</text>
<circle cx="1460.7" cy="671.5" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="283.2" cy="501.8" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="647.5" cy="502.2" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="881.8" cy="607.4" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="755.2" cy="606.4" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="1387.5" cy="404.5" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="1105.2" cy="551.0" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="1521.0" cy="66.0" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="162.7" cy="821.2" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="218.9" cy="751.2" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="587.9" cy="681.8" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="1391.5" cy="780.6" r="2.5" fill="#FF8800" opacity="0.85"/>
<text x="1396.5" y="783.6" fill="#FF8800" font-size="7" font-family="monospace" opacity="0.7">GJ 832</text>
<circle cx="166.7" cy="143.9" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="880.2" cy="408.0" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="220.7" cy="465.2" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="745.2" cy="258.5" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="761.5" cy="619.5" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="1115.2" cy="532.6" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="799.0" cy="660.4" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="870.1" cy="386.6" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="1531.2" cy="490.5" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="983.8" cy="624.9" r="4" fill="#FFD700" opacity="0.85"/>
<text x="988.8" y="627.9" fill="#FFD700" font-size="7" font-family="monospace" opacity="0.7">Bastion</text>
<circle cx="977.6" cy="396.3" r="2.5" fill="#44DD44" opacity="0.85"/>
<text x="982.6" y="399.3" fill="#44DD44" font-size="7" font-family="monospace" opacity="0.7">GJ 566A</text>
<circle cx="714.3" cy="112.2" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="194.2" cy="790.9" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="1122.4" cy="246.4" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="203.1" cy="650.5" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="1288.9" cy="253.4" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="843.5" cy="417.3" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="1146.2" cy="778.8" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="1426.0" cy="361.0" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="944.3" cy="839.1" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="947.3" cy="336.9" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="1480.8" cy="631.2" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="1442.5" cy="603.4" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="745.0" cy="258.4" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="229.0" cy="226.3" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="614.1" cy="392.5" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="230.0" cy="608.9" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="1516.7" cy="517.5" r="4" fill="#FFD700" opacity="0.85"/>
<text x="1521.7" y="520.5" fill="#FFD700" font-size="7" font-family="monospace" opacity="0.7">Kensho</text>
<circle cx="614.1" cy="392.5" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="521.4" cy="610.1" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="369.6" cy="536.5" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="1085.6" cy="517.2" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="349.6" cy="386.1" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="1157.8" cy="347.6" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="914.1" cy="628.8" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="1006.4" cy="547.6" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="873.2" cy="405.1" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="1306.8" cy="707.8" r="4" fill="#FFD700" opacity="0.85"/>
<text x="1311.8" y="710.8" fill="#FFD700" font-size="7" font-family="monospace" opacity="0.7">Aurelius</text>
<circle cx="1299.2" cy="470.2" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="1159.6" cy="104.1" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="265.8" cy="747.1" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="750.8" cy="332.3" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="414.6" cy="630.7" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="787.3" cy="732.6" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="164.8" cy="263.6" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="411.4" cy="202.3" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="201.1" cy="310.9" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="1304.2" cy="877.5" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="598.7" cy="723.5" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="130.3" cy="194.1" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="730.0" cy="465.6" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="374.8" cy="828.8" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="801.9" cy="563.0" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="78.9" cy="255.6" r="4" fill="#FFD700" opacity="0.85"/>
<text x="83.9" y="258.6" fill="#FFD700" font-size="7" font-family="monospace" opacity="0.7">Lu Ban</text>
<circle cx="281.3" cy="777.3" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="1072.9" cy="725.2" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="282.3" cy="755.2" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="1044.5" cy="415.7" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="1146.0" cy="154.9" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="1255.8" cy="386.3" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="257.7" cy="667.6" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="742.1" cy="380.1" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="1513.3" cy="391.6" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="1122.2" cy="514.5" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="844.0" cy="512.2" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="1539.9" cy="372.6" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="649.7" cy="212.4" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="1341.9" cy="155.1" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="1193.4" cy="93.6" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="533.5" cy="524.4" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="159.6" cy="270.4" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="1177.3" cy="490.0" r="4" fill="#FFD700" opacity="0.85"/>
<text x="1182.3" y="493.0" fill="#FFD700" font-size="7" font-family="monospace" opacity="0.7">Prometheus</text>
<circle cx="788.4" cy="60.0" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="257.7" cy="667.6" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="430.6" cy="488.8" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="1420" cy="30" r="5" fill="#FFD700"/>
<text x="1430" y="34" fill="#FFD700" font-size="10" font-family="monospace">core</text>
<circle cx="1420" cy="48" r="5" fill="#4488FF"/>
<text x="1430" y="52" fill="#4488FF" font-size="10" font-family="monospace">north_reach</text>
<circle cx="1420" cy="66" r="5" fill="#FF4444"/>
<text x="1430" y="70" fill="#FF4444" font-size="10" font-family="monospace">south_reach</text>
<circle cx="1420" cy="84" r="5" fill="#44DD44"/>
<text x="1430" y="88" fill="#44DD44" font-size="10" font-family="monospace">east_reach</text>
<circle cx="1420" cy="102" r="5" fill="#FF8800"/>
<text x="1430" y="106" fill="#FF8800" font-size="10" font-family="monospace">west_reach</text>
<circle cx="1420" cy="120" r="5" fill="#AA44FF"/>
<text x="1430" y="124" fill="#AA44FF" font-size="10" font-family="monospace">deep_frontier</text>
</svg>

After

Width:  |  Height:  |  Size: 54 KiB

+692
View File
@@ -0,0 +1,692 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2400 1600" width="2400" height="1600">
<rect width="2400" height="1600" fill="#0a0a1a"/>
<style>text { pointer-events: none; }</style>
<line x1="1877.8" y1="955.6" x2="1818.2" y2="813.2" stroke="#222244" stroke-width="0.7"/>
<line x1="1877.8" y1="955.6" x2="1393.8" y2="642.5" stroke="#222244" stroke-width="0.7"/>
<line x1="1494.5" y1="806.8" x2="2299.1" y2="713.1" stroke="#222244" stroke-width="0.7"/>
<line x1="2299.1" y1="713.1" x2="974.2" y2="1025.8" stroke="#222244" stroke-width="0.7"/>
<line x1="974.2" y1="1025.8" x2="2300.6" y2="932.3" stroke="#222244" stroke-width="0.7"/>
<line x1="2300.6" y1="932.3" x2="733.9" y2="885.2" stroke="#222244" stroke-width="0.7"/>
<line x1="733.9" y1="885.2" x2="1260.2" y2="220.8" stroke="#222244" stroke-width="0.7"/>
<line x1="1260.2" y1="220.8" x2="2313.2" y2="856.3" stroke="#222244" stroke-width="0.7"/>
<line x1="2313.2" y1="856.3" x2="1641.9" y2="1461.6" stroke="#222244" stroke-width="0.7"/>
<line x1="1641.9" y1="1461.6" x2="1685.5" y2="1222.9" stroke="#222244" stroke-width="0.7"/>
<line x1="1685.5" y1="1222.9" x2="2159.5" y2="541.4" stroke="#222244" stroke-width="0.7"/>
<line x1="1070.4" y1="847.7" x2="2209.5" y2="1075.3" stroke="#222244" stroke-width="0.7"/>
<line x1="2159.5" y1="541.4" x2="2168.9" y2="1170.3" stroke="#222244" stroke-width="0.7"/>
<line x1="2168.9" y1="1170.3" x2="476.7" y2="1172.4" stroke="#222244" stroke-width="0.7"/>
<line x1="476.7" y1="1172.4" x2="623.4" y2="191.3" stroke="#222244" stroke-width="0.7"/>
<line x1="974.2" y1="1025.8" x2="1702.7" y2="1446.1" stroke="#222244" stroke-width="0.7"/>
<line x1="623.4" y1="191.3" x2="1895.2" y2="254.2" stroke="#222244" stroke-width="0.7"/>
<line x1="1895.2" y1="254.2" x2="1151.3" y2="722.8" stroke="#222244" stroke-width="0.7"/>
<line x1="1151.3" y1="722.8" x2="904.8" y2="1479.7" stroke="#222244" stroke-width="0.7"/>
<line x1="925.2" y1="325.9" x2="2273.9" y2="620.2" stroke="#222244" stroke-width="0.7"/>
<line x1="2273.9" y1="620.2" x2="1381.9" y2="118.1" stroke="#222244" stroke-width="0.7"/>
<line x1="904.8" y1="1479.7" x2="427.6" y2="693.1" stroke="#222244" stroke-width="0.7"/>
<line x1="344.7" y1="695.0" x2="562.0" y2="201.0" stroke="#222244" stroke-width="0.7"/>
<line x1="1386.6" y1="888.1" x2="1739.0" y2="1161.9" stroke="#222244" stroke-width="0.7"/>
<line x1="1739.0" y1="1161.9" x2="155.8" y2="1073.6" stroke="#222244" stroke-width="0.7"/>
<line x1="647.1" y1="1438.8" x2="1892.7" y2="614.6" stroke="#222244" stroke-width="0.7"/>
<line x1="1892.7" y1="614.6" x2="2294.8" y2="969.4" stroke="#222244" stroke-width="0.7"/>
<line x1="1739.0" y1="1161.9" x2="2061.9" y2="710.0" stroke="#222244" stroke-width="0.7"/>
<line x1="1642.8" y1="725.5" x2="888.4" y2="1481.3" stroke="#222244" stroke-width="0.7"/>
<line x1="1358.5" y1="291.1" x2="2198.9" y2="481.5" stroke="#222244" stroke-width="0.7"/>
<line x1="888.4" y1="1481.3" x2="1088.0" y2="1507.7" stroke="#222244" stroke-width="0.7"/>
<line x1="1088.0" y1="1507.7" x2="2115.1" y2="1223.7" stroke="#222244" stroke-width="0.7"/>
<line x1="1528.7" y1="638.8" x2="2213.4" y2="542.9" stroke="#222244" stroke-width="0.7"/>
<line x1="2213.4" y1="542.9" x2="2075.8" y2="382.2" stroke="#222244" stroke-width="0.7"/>
<line x1="2075.8" y1="382.2" x2="1790.6" y2="261.9" stroke="#222244" stroke-width="0.7"/>
<line x1="1774.0" y1="1111.0" x2="1483.9" y2="1166.5" stroke="#222244" stroke-width="0.7"/>
<line x1="1790.6" y1="261.9" x2="606.7" y2="204.2" stroke="#222244" stroke-width="0.7"/>
<line x1="2115.1" y1="1223.7" x2="937.2" y2="810.9" stroke="#222244" stroke-width="0.7"/>
<line x1="606.7" y1="204.2" x2="401.3" y2="840.0" stroke="#222244" stroke-width="0.7"/>
<line x1="1199.3" y1="1513.4" x2="489.7" y2="634.4" stroke="#222244" stroke-width="0.7"/>
<line x1="489.7" y1="634.4" x2="953.1" y2="101.7" stroke="#222244" stroke-width="0.7"/>
<line x1="401.3" y1="840.0" x2="377.0" y2="293.0" stroke="#222244" stroke-width="0.7"/>
<line x1="953.1" y1="101.7" x2="378.5" y2="666.5" stroke="#222244" stroke-width="0.7"/>
<line x1="378.5" y1="666.5" x2="1874.3" y2="235.1" stroke="#222244" stroke-width="0.7"/>
<line x1="1874.3" y1="235.1" x2="1945.4" y2="680.6" stroke="#222244" stroke-width="0.7"/>
<line x1="1945.4" y1="680.6" x2="1269.4" y2="160.7" stroke="#222244" stroke-width="0.7"/>
<line x1="377.0" y1="293.0" x2="138.2" y2="1010.9" stroke="#222244" stroke-width="0.7"/>
<line x1="1269.4" y1="160.7" x2="2120.5" y2="987.2" stroke="#222244" stroke-width="0.7"/>
<line x1="138.2" y1="1010.9" x2="370.9" y2="305.9" stroke="#222244" stroke-width="0.7"/>
<line x1="219.2" y1="506.3" x2="163.5" y2="605.6" stroke="#222244" stroke-width="0.7"/>
<line x1="100.2" y1="714.5" x2="487.3" y2="537.8" stroke="#222244" stroke-width="0.7"/>
<line x1="1991.7" y1="659.3" x2="755.9" y2="1471.1" stroke="#222244" stroke-width="0.7"/>
<line x1="1490.8" y1="341.5" x2="498.6" y2="742.8" stroke="#222244" stroke-width="0.7"/>
<line x1="706.0" y1="680.7" x2="1222.5" y2="1392.9" stroke="#222244" stroke-width="0.7"/>
<line x1="498.6" y1="742.8" x2="382.0" y2="331.1" stroke="#222244" stroke-width="0.7"/>
<line x1="1222.5" y1="1392.9" x2="2220.2" y2="524.6" stroke="#222244" stroke-width="0.7"/>
<line x1="118.4" y1="983.8" x2="209.7" y2="502.2" stroke="#222244" stroke-width="0.7"/>
<line x1="2220.2" y1="524.6" x2="1052.8" y2="321.4" stroke="#222244" stroke-width="0.7"/>
<line x1="1052.8" y1="321.4" x2="1146.2" y2="1148.1" stroke="#222244" stroke-width="0.7"/>
<line x1="382.0" y1="331.1" x2="310.8" y2="343.2" stroke="#222244" stroke-width="0.7"/>
<line x1="209.7" y1="502.2" x2="1374.6" y2="1290.1" stroke="#222244" stroke-width="0.7"/>
<line x1="1374.6" y1="1290.1" x2="1037.2" y2="1510.8" stroke="#222244" stroke-width="0.7"/>
<line x1="522.0" y1="977.8" x2="946.8" y2="1476.9" stroke="#222244" stroke-width="0.7"/>
<line x1="946.8" y1="1476.9" x2="1332.0" y2="1051.4" stroke="#222244" stroke-width="0.7"/>
<line x1="1642.8" y1="725.5" x2="1441.6" y2="1012.7" stroke="#222244" stroke-width="0.7"/>
<line x1="1146.2" y1="1148.1" x2="482.9" y2="1330.9" stroke="#222244" stroke-width="0.7"/>
<line x1="1037.2" y1="1510.8" x2="1714.0" y2="1407.6" stroke="#222244" stroke-width="0.7"/>
<line x1="1714.0" y1="1407.6" x2="1829.5" y2="747.0" stroke="#222244" stroke-width="0.7"/>
<line x1="1441.6" y1="1012.7" x2="2033.6" y2="308.1" stroke="#222244" stroke-width="0.7"/>
<line x1="1332.0" y1="1051.4" x2="464.4" y2="1360.2" stroke="#222244" stroke-width="0.7"/>
<line x1="482.9" y1="1330.9" x2="1135.9" y2="933.0" stroke="#222244" stroke-width="0.7"/>
<line x1="1829.5" y1="747.0" x2="2047.3" y2="341.3" stroke="#222244" stroke-width="0.7"/>
<line x1="464.4" y1="1360.2" x2="171.2" y2="1093.5" stroke="#222244" stroke-width="0.7"/>
<line x1="2257.9" y1="649.3" x2="1136.0" y2="153.3" stroke="#222244" stroke-width="0.7"/>
<line x1="791.8" y1="1475.0" x2="258.1" y2="783.1" stroke="#222244" stroke-width="0.7"/>
<line x1="258.1" y1="783.1" x2="1540.3" y2="656.5" stroke="#222244" stroke-width="0.7"/>
<line x1="1540.3" y1="656.5" x2="750.3" y2="449.9" stroke="#222244" stroke-width="0.7"/>
<line x1="750.3" y1="449.9" x2="504.2" y2="919.3" stroke="#222244" stroke-width="0.7"/>
<line x1="1558.0" y1="116.8" x2="285.6" y2="373.6" stroke="#222244" stroke-width="0.7"/>
<line x1="504.2" y1="919.3" x2="2106.3" y2="1237.3" stroke="#222244" stroke-width="0.7"/>
<line x1="2106.3" y1="1237.3" x2="1832.9" y2="1256.1" stroke="#222244" stroke-width="0.7"/>
<line x1="2033.6" y1="308.1" x2="537.9" y2="292.8" stroke="#222244" stroke-width="0.7"/>
<line x1="1832.9" y1="1256.1" x2="1546.5" y2="119.2" stroke="#222244" stroke-width="0.7"/>
<line x1="640.5" y1="470.6" x2="1129.3" y2="814.0" stroke="#222244" stroke-width="0.7"/>
<line x1="1129.3" y1="814.0" x2="235.6" y2="454.4" stroke="#222244" stroke-width="0.7"/>
<line x1="982.8" y1="1207.8" x2="1813.5" y2="935.4" stroke="#222244" stroke-width="0.7"/>
<line x1="129.1" y1="612.6" x2="87.8" y2="756.5" stroke="#222244" stroke-width="0.7"/>
<line x1="87.8" y1="756.5" x2="109.1" y2="684.8" stroke="#222244" stroke-width="0.7"/>
<line x1="537.9" y1="292.8" x2="1127.1" y2="423.0" stroke="#222244" stroke-width="0.7"/>
<line x1="109.1" y1="684.8" x2="491.1" y2="248.7" stroke="#222244" stroke-width="0.7"/>
<line x1="2151.4" y1="1183.7" x2="2009.5" y2="1307.8" stroke="#222244" stroke-width="0.7"/>
<line x1="2120.5" y1="987.2" x2="711.1" y2="1449.9" stroke="#222244" stroke-width="0.7"/>
<line x1="491.1" y1="248.7" x2="155.9" y2="521.5" stroke="#222244" stroke-width="0.7"/>
<line x1="2245.7" y1="558.8" x2="1110.0" y2="92.5" stroke="#222244" stroke-width="0.7"/>
<line x1="2047.3" y1="341.3" x2="1052.4" y2="414.9" stroke="#222244" stroke-width="0.7"/>
<line x1="1040.0" y1="211.9" x2="706.6" y2="829.3" stroke="#222244" stroke-width="0.7"/>
<line x1="1127.1" y1="423.0" x2="191.5" y2="1130.4" stroke="#222244" stroke-width="0.7"/>
<line x1="191.5" y1="1130.4" x2="356.8" y2="1253.2" stroke="#222244" stroke-width="0.7"/>
<line x1="1052.4" y1="414.9" x2="2061.4" y2="1251.5" stroke="#222244" stroke-width="0.7"/>
<line x1="155.9" y1="521.5" x2="930.6" y2="1359.7" stroke="#222244" stroke-width="0.7"/>
<line x1="1110.0" y1="92.5" x2="343.0" y2="889.0" stroke="#222244" stroke-width="0.7"/>
<line x1="343.0" y1="889.0" x2="1179.4" y2="855.0" stroke="#222244" stroke-width="0.7"/>
<line x1="1179.4" y1="855.0" x2="86.3" y2="823.1" stroke="#222244" stroke-width="0.7"/>
<line x1="706.6" y1="829.3" x2="805.9" y2="209.6" stroke="#222244" stroke-width="0.7"/>
<line x1="930.6" y1="1359.7" x2="1224.2" y2="1498.9" stroke="#222244" stroke-width="0.7"/>
<line x1="2061.4" y1="1251.5" x2="2097.3" y2="1241.5" stroke="#222244" stroke-width="0.7"/>
<line x1="805.9" y1="209.6" x2="99.7" y2="662.2" stroke="#222244" stroke-width="0.7"/>
<line x1="86.3" y1="823.1" x2="253.3" y2="1141.0" stroke="#222244" stroke-width="0.7"/>
<line x1="253.3" y1="1141.0" x2="732.4" y2="141.3" stroke="#222244" stroke-width="0.7"/>
<line x1="99.7" y1="662.2" x2="1151.2" y2="625.8" stroke="#222244" stroke-width="0.7"/>
<line x1="356.8" y1="1253.2" x2="97.7" y2="929.3" stroke="#222244" stroke-width="0.7"/>
<line x1="613.6" y1="1158.6" x2="1843.6" y2="699.4" stroke="#222244" stroke-width="0.7"/>
<line x1="1224.2" y1="1498.9" x2="1475.8" y2="1408.8" stroke="#222244" stroke-width="0.7"/>
<line x1="1475.8" y1="1408.8" x2="2266.0" y2="593.5" stroke="#222244" stroke-width="0.7"/>
<line x1="97.7" y1="929.3" x2="167.3" y2="1087.5" stroke="#222244" stroke-width="0.7"/>
<line x1="732.4" y1="141.3" x2="1770.6" y2="552.9" stroke="#222244" stroke-width="0.7"/>
<line x1="2097.3" y1="1241.5" x2="1593.0" y2="160.7" stroke="#222244" stroke-width="0.7"/>
<line x1="1770.6" y1="552.9" x2="673.6" y2="694.7" stroke="#222244" stroke-width="0.7"/>
<line x1="1843.6" y1="699.4" x2="949.3" y2="885.6" stroke="#222244" stroke-width="0.7"/>
<line x1="167.3" y1="1087.5" x2="1233.0" y2="1503.7" stroke="#222244" stroke-width="0.7"/>
<line x1="711.1" y1="1449.9" x2="1628.8" y2="1281.6" stroke="#222244" stroke-width="0.7"/>
<line x1="1813.5" y1="935.4" x2="1861.1" y2="223.7" stroke="#222244" stroke-width="0.7"/>
<line x1="949.3" y1="885.6" x2="1403.5" y2="1496.6" stroke="#222244" stroke-width="0.7"/>
<line x1="2061.9" y1="710.0" x2="395.8" y2="1062.2" stroke="#222244" stroke-width="0.7"/>
<line x1="1628.8" y1="1281.6" x2="570.8" y2="1404.0" stroke="#222244" stroke-width="0.7"/>
<line x1="1540.3" y1="656.5" x2="713.5" y2="144.2" stroke="#222244" stroke-width="0.7"/>
<line x1="1593.0" y1="160.7" x2="1264.9" y2="85.6" stroke="#222244" stroke-width="0.7"/>
<line x1="1135.9" y1="933.0" x2="722.4" y2="1447.6" stroke="#222244" stroke-width="0.7"/>
<line x1="1403.5" y1="1496.6" x2="803.0" y2="699.3" stroke="#222244" stroke-width="0.7"/>
<line x1="750.3" y1="449.9" x2="213.2" y2="614.7" stroke="#222244" stroke-width="0.7"/>
<line x1="1169.2" y1="1519.3" x2="340.5" y2="1214.8" stroke="#222244" stroke-width="0.7"/>
<line x1="811.3" y1="464.8" x2="360.0" y2="1270.6" stroke="#222244" stroke-width="0.7"/>
<line x1="1861.1" y1="223.7" x2="1199.7" y2="83.9" stroke="#222244" stroke-width="0.7"/>
<line x1="809.4" y1="989.5" x2="120.0" y2="966.6" stroke="#222244" stroke-width="0.7"/>
<line x1="722.4" y1="1447.6" x2="650.6" y2="1402.5" stroke="#222244" stroke-width="0.7"/>
<line x1="803.0" y1="699.3" x2="1292.8" y2="85.2" stroke="#222244" stroke-width="0.7"/>
<line x1="1233.0" y1="1503.7" x2="714.5" y2="442.9" stroke="#222244" stroke-width="0.7"/>
<line x1="1425.2" y1="456.2" x2="1840.9" y2="224.4" stroke="#222244" stroke-width="0.7"/>
<line x1="1840.9" y1="224.4" x2="2289.5" y2="938.2" stroke="#222244" stroke-width="0.7"/>
<line x1="1439.6" y1="1042.3" x2="812.7" y2="1001.9" stroke="#222244" stroke-width="0.7"/>
<line x1="110.3" y1="972.4" x2="1856.5" y2="892.3" stroke="#222244" stroke-width="0.7"/>
<line x1="120.0" y1="966.6" x2="1350.1" y2="1493.8" stroke="#222244" stroke-width="0.7"/>
<line x1="370.9" y1="305.9" x2="1425.7" y2="155.9" stroke="#222244" stroke-width="0.7"/>
<line x1="1439.6" y1="1042.3" x2="2126.9" y2="482.2" stroke="#222244" stroke-width="0.7"/>
<line x1="1840.9" y1="224.4" x2="1190.8" y2="636.6" stroke="#222244" stroke-width="0.7"/>
<line x1="340.5" y1="1214.8" x2="819.5" y2="1474.5" stroke="#222244" stroke-width="0.7"/>
<line x1="1856.5" y1="892.3" x2="2318.9" y2="770.4" stroke="#222244" stroke-width="0.7"/>
<line x1="2126.9" y1="482.2" x2="2250.1" y2="1056.2" stroke="#222244" stroke-width="0.7"/>
<line x1="387.9" y1="1315.0" x2="780.4" y2="1471.6" stroke="#222244" stroke-width="0.7"/>
<line x1="780.4" y1="1471.6" x2="1636.6" y2="869.2" stroke="#222244" stroke-width="0.7"/>
<line x1="2318.9" y1="770.4" x2="2033.7" y2="1294.6" stroke="#222244" stroke-width="0.7"/>
<line x1="2033.7" y1="1294.6" x2="850.5" y2="1445.2" stroke="#222244" stroke-width="0.7"/>
<line x1="1644.7" y1="149.4" x2="1736.7" y2="825.4" stroke="#222244" stroke-width="0.7"/>
<line x1="1190.8" y1="636.6" x2="2268.0" y2="610.5" stroke="#222244" stroke-width="0.7"/>
<line x1="213.2" y1="614.7" x2="1428.1" y2="1469.4" stroke="#222244" stroke-width="0.7"/>
<line x1="1636.6" y1="869.2" x2="131.3" y2="1005.8" stroke="#222244" stroke-width="0.7"/>
<line x1="1736.7" y1="825.4" x2="1061.9" y2="706.9" stroke="#222244" stroke-width="0.7"/>
<line x1="1061.9" y1="706.9" x2="867.4" y2="116.9" stroke="#222244" stroke-width="0.7"/>
<line x1="1199.7" y1="83.9" x2="1782.4" y2="181.3" stroke="#222244" stroke-width="0.7"/>
<line x1="102.5" y1="653.3" x2="489.7" y2="1343.5" stroke="#222244" stroke-width="0.7"/>
<line x1="867.4" y1="116.9" x2="822.0" y2="118.6" stroke="#222244" stroke-width="0.7"/>
<line x1="2268.0" y1="610.5" x2="1807.8" y2="185.7" stroke="#222244" stroke-width="0.7"/>
<line x1="1807.8" y1="185.7" x2="366.6" y2="336.0" stroke="#222244" stroke-width="0.7"/>
<line x1="1350.1" y1="1493.8" x2="1019.8" y2="1505.3" stroke="#222244" stroke-width="0.7"/>
<line x1="489.7" y1="1343.5" x2="776.5" y2="776.0" stroke="#222244" stroke-width="0.7"/>
<line x1="366.6" y1="336.0" x2="1013.4" y2="948.8" stroke="#222244" stroke-width="0.7"/>
<line x1="822.0" y1="118.6" x2="1694.8" y2="973.5" stroke="#222244" stroke-width="0.7"/>
<line x1="520.0" y1="1068.5" x2="1589.9" y2="317.5" stroke="#222244" stroke-width="0.7"/>
<line x1="1694.8" y1="973.5" x2="1331.5" y2="1502.5" stroke="#222244" stroke-width="0.7"/>
<line x1="1013.4" y1="948.8" x2="1338.1" y2="100.6" stroke="#222244" stroke-width="0.7"/>
<line x1="131.3" y1="1005.8" x2="929.3" y2="1220.6" stroke="#222244" stroke-width="0.7"/>
<line x1="1338.1" y1="100.6" x2="331.9" y2="372.2" stroke="#222244" stroke-width="0.7"/>
<line x1="1921.2" y1="1366.2" x2="708.6" y2="754.9" stroke="#222244" stroke-width="0.7"/>
<line x1="1019.8" y1="1505.3" x2="2315.6" y2="845.3" stroke="#222244" stroke-width="0.7"/>
<line x1="331.9" y1="372.2" x2="432.5" y2="556.5" stroke="#222244" stroke-width="0.7"/>
<line x1="2033.7" y1="1294.6" x2="1204.3" y2="964.8" stroke="#222244" stroke-width="0.7"/>
<line x1="2266.0" y1="598.0" x2="943.4" y2="99.6" stroke="#222244" stroke-width="0.7"/>
<line x1="1204.3" y1="964.8" x2="2153.2" y2="438.0" stroke="#222244" stroke-width="0.7"/>
<line x1="2012.0" y1="306.1" x2="2110.4" y2="392.6" stroke="#222244" stroke-width="0.7"/>
<line x1="943.4" y1="99.6" x2="962.2" y2="475.0" stroke="#222244" stroke-width="0.7"/>
<line x1="962.2" y1="475.0" x2="534.4" y2="228.6" stroke="#222244" stroke-width="0.7"/>
<line x1="534.4" y1="228.6" x2="563.3" y2="644.4" stroke="#222244" stroke-width="0.7"/>
<line x1="2110.4" y1="392.6" x2="2205.8" y2="1112.4" stroke="#222244" stroke-width="0.7"/>
<line x1="563.3" y1="644.4" x2="643.0" y2="195.1" stroke="#222244" stroke-width="0.7"/>
<line x1="643.0" y1="195.1" x2="80.0" y2="847.9" stroke="#222244" stroke-width="0.7"/>
<line x1="432.5" y1="556.5" x2="392.6" y2="786.5" stroke="#222244" stroke-width="0.7"/>
<line x1="776.5" y1="776.0" x2="1248.7" y2="349.8" stroke="#222244" stroke-width="0.7"/>
<line x1="1248.7" y1="349.8" x2="1779.2" y2="1259.9" stroke="#222244" stroke-width="0.7"/>
<line x1="432.5" y1="556.5" x2="1843.7" y2="759.8" stroke="#222244" stroke-width="0.7"/>
<line x1="1303.3" y1="129.1" x2="2094.2" y2="933.6" stroke="#222244" stroke-width="0.7"/>
<line x1="2205.8" y1="1112.4" x2="728.3" y2="514.2" stroke="#222244" stroke-width="0.7"/>
<line x1="1779.2" y1="1259.9" x2="2265.5" y2="1030.2" stroke="#222244" stroke-width="0.7"/>
<line x1="2094.2" y1="933.6" x2="1059.2" y2="100.0" stroke="#222244" stroke-width="0.7"/>
<line x1="80.0" y1="847.9" x2="562.6" y2="1373.1" stroke="#222244" stroke-width="0.7"/>
<line x1="728.3" y1="514.2" x2="1981.6" y2="274.3" stroke="#222244" stroke-width="0.7"/>
<line x1="1061.9" y1="706.9" x2="1034.7" y2="838.9" stroke="#222244" stroke-width="0.7"/>
<line x1="728.3" y1="514.2" x2="110.5" y2="630.8" stroke="#222244" stroke-width="0.7"/>
<line x1="1497.5" y1="104.4" x2="1429.3" y2="113.1" stroke="#222244" stroke-width="0.7"/>
<line x1="110.5" y1="630.8" x2="270.4" y2="1102.2" stroke="#222244" stroke-width="0.7"/>
<line x1="1492.4" y1="1497.5" x2="1315.1" y2="1505.7" stroke="#222244" stroke-width="0.7"/>
<line x1="1331.5" y1="1502.5" x2="100.0" y2="917.7" stroke="#222244" stroke-width="0.7"/>
<line x1="1315.1" y1="1505.7" x2="1046.3" y2="993.3" stroke="#222244" stroke-width="0.7"/>
<line x1="643.0" y1="195.1" x2="1353.3" y2="125.0" stroke="#222244" stroke-width="0.7"/>
<line x1="1275.2" y1="1306.4" x2="910.0" y2="849.0" stroke="#222244" stroke-width="0.7"/>
<line x1="1981.6" y1="274.3" x2="2146.6" y2="1071.2" stroke="#222244" stroke-width="0.7"/>
<line x1="2152.9" y1="1038.2" x2="2255.5" y2="992.5" stroke="#222244" stroke-width="0.7"/>
<line x1="2255.5" y1="992.5" x2="1895.2" y2="1340.8" stroke="#222244" stroke-width="0.7"/>
<line x1="1046.3" y1="993.3" x2="400.5" y2="1291.2" stroke="#222244" stroke-width="0.7"/>
<line x1="562.6" y1="1373.1" x2="1133.6" y2="1518.0" stroke="#222244" stroke-width="0.7"/>
<line x1="270.4" y1="1102.2" x2="1073.3" y2="1167.0" stroke="#222244" stroke-width="0.7"/>
<line x1="1073.3" y1="1167.0" x2="991.9" y2="1049.0" stroke="#222244" stroke-width="0.7"/>
<line x1="400.5" y1="1291.2" x2="137.9" y2="550.8" stroke="#222244" stroke-width="0.7"/>
<line x1="2146.6" y1="1071.2" x2="1312.5" y2="640.9" stroke="#222244" stroke-width="0.7"/>
<line x1="1312.5" y1="640.9" x2="1082.7" y2="105.9" stroke="#222244" stroke-width="0.7"/>
<line x1="991.9" y1="1049.0" x2="1943.6" y2="264.6" stroke="#222244" stroke-width="0.7"/>
<line x1="714.5" y1="442.9" x2="1750.1" y2="179.1" stroke="#222244" stroke-width="0.7"/>
<line x1="1082.3" y1="304.5" x2="1805.6" y2="1409.0" stroke="#222244" stroke-width="0.7"/>
<line x1="1353.3" y1="125.0" x2="473.1" y2="249.3" stroke="#222244" stroke-width="0.7"/>
<line x1="962.2" y1="475.0" x2="1662.7" y2="145.9" stroke="#222244" stroke-width="0.7"/>
<line x1="100.0" y1="917.7" x2="242.2" y2="1164.7" stroke="#222244" stroke-width="0.7"/>
<line x1="1429.3" y1="113.1" x2="1230.4" y2="80.0" stroke="#222244" stroke-width="0.7"/>
<line x1="910.0" y1="849.0" x2="2191.1" y2="457.6" stroke="#222244" stroke-width="0.7"/>
<line x1="1497.5" y1="104.4" x2="1980.2" y2="289.9" stroke="#222244" stroke-width="0.7"/>
<line x1="1082.7" y1="105.9" x2="1690.4" y2="159.5" stroke="#222244" stroke-width="0.7"/>
<line x1="1636.6" y1="869.2" x2="1845.8" y2="1393.7" stroke="#222244" stroke-width="0.7"/>
<line x1="2265.5" y1="1030.2" x2="2307.8" y2="905.9" stroke="#222244" stroke-width="0.7"/>
<line x1="673.6" y1="694.7" x2="844.7" y2="1483.7" stroke="#222244" stroke-width="0.7"/>
<line x1="2171.8" y1="729.3" x2="344.7" y2="695.0" stroke="#222244" stroke-width="0.7"/>
<line x1="2171.8" y1="729.3" x2="2003.2" y2="929.5" stroke="#222244" stroke-width="0.7"/>
<line x1="2171.8" y1="729.3" x2="1892.7" y2="614.6" stroke="#222244" stroke-width="0.7"/>
<line x1="812.7" y1="1001.9" x2="1061.9" y2="706.9" stroke="#222244" stroke-width="0.7"/>
<line x1="812.7" y1="1001.9" x2="643.0" y2="195.1" stroke="#222244" stroke-width="0.7"/>
<line x1="812.7" y1="1001.9" x2="708.6" y2="754.9" stroke="#222244" stroke-width="0.7"/>
<line x1="812.7" y1="1001.9" x2="489.7" y2="1343.5" stroke="#222244" stroke-width="0.7"/>
<line x1="2209.2" y1="1100.5" x2="1772.1" y2="1052.2" stroke="#222244" stroke-width="0.7"/>
<line x1="1425.2" y1="456.2" x2="1338.1" y2="100.6" stroke="#222244" stroke-width="0.7"/>
<line x1="1425.2" y1="456.2" x2="1046.3" y2="993.3" stroke="#222244" stroke-width="0.7"/>
<line x1="1425.2" y1="456.2" x2="2318.9" y2="770.4" stroke="#222244" stroke-width="0.7"/>
<line x1="1425.2" y1="456.2" x2="392.6" y2="786.5" stroke="#222244" stroke-width="0.7"/>
<line x1="811.3" y1="464.8" x2="1558.0" y2="116.8" stroke="#222244" stroke-width="0.7"/>
<line x1="811.3" y1="464.8" x2="2009.5" y2="1307.8" stroke="#222244" stroke-width="0.7"/>
<line x1="1046.3" y1="993.3" x2="1073.3" y2="1167.0" stroke="#222244" stroke-width="0.7"/>
<line x1="1046.3" y1="993.3" x2="850.5" y2="1445.2" stroke="#222244" stroke-width="0.7"/>
<line x1="1386.6" y1="888.1" x2="1892.7" y2="614.6" stroke="#222244" stroke-width="0.7"/>
<line x1="1386.6" y1="888.1" x2="2171.8" y2="729.3" stroke="#222244" stroke-width="0.7"/>
<line x1="1386.6" y1="888.1" x2="1151.3" y2="722.8" stroke="#222244" stroke-width="0.7"/>
<line x1="1386.6" y1="888.1" x2="487.3" y2="537.8" stroke="#222244" stroke-width="0.7"/>
<line x1="776.5" y1="776.0" x2="1034.7" y2="838.9" stroke="#222244" stroke-width="0.7"/>
<line x1="776.5" y1="776.0" x2="1636.6" y2="869.2" stroke="#222244" stroke-width="0.7"/>
<line x1="776.5" y1="776.0" x2="929.3" y2="1220.6" stroke="#222244" stroke-width="0.7"/>
<line x1="1877.8" y1="955.6" x2="1952.2" y2="1331.8" stroke="#222244" stroke-width="0.7"/>
<line x1="1877.8" y1="955.6" x2="1553.3" y2="263.5" stroke="#222244" stroke-width="0.7"/>
<line x1="171.2" y1="1093.5" x2="1151.2" y2="625.8" stroke="#222244" stroke-width="0.7"/>
<line x1="171.2" y1="1093.5" x2="640.5" y2="470.6" stroke="#222244" stroke-width="0.7"/>
<line x1="171.2" y1="1093.5" x2="213.2" y2="614.7" stroke="#222244" stroke-width="0.7"/>
<line x1="171.2" y1="1093.5" x2="235.6" y2="454.4" stroke="#222244" stroke-width="0.7"/>
<line x1="1494.5" y1="806.8" x2="933.6" y2="1074.4" stroke="#222244" stroke-width="0.7"/>
<line x1="522.0" y1="977.8" x2="1129.3" y2="814.0" stroke="#222244" stroke-width="0.7"/>
<line x1="1190.8" y1="636.6" x2="2153.2" y2="438.0" stroke="#222244" stroke-width="0.7"/>
<line x1="1589.9" y1="317.5" x2="1736.7" y2="825.4" stroke="#222244" stroke-width="0.7"/>
<line x1="2289.5" y1="938.2" x2="2033.7" y2="1294.6" stroke="#222244" stroke-width="0.7"/>
<line x1="819.5" y1="1474.5" x2="562.6" y2="1373.1" stroke="#222244" stroke-width="0.7"/>
<line x1="2126.9" y1="482.2" x2="776.5" y2="776.0" stroke="#222244" stroke-width="0.7"/>
<line x1="1204.3" y1="964.8" x2="1082.3" y2="304.5" stroke="#222244" stroke-width="0.7"/>
<line x1="563.3" y1="644.4" x2="1439.6" y2="1042.3" stroke="#222244" stroke-width="0.7"/>
<line x1="1136.0" y1="153.3" x2="258.1" y2="783.1" stroke="#222244" stroke-width="0.7"/>
<line x1="99.7" y1="662.2" x2="640.5" y2="470.6" stroke="#222244" stroke-width="0.7"/>
<line x1="1952.2" y1="1331.8" x2="2303.5" y2="893.8" stroke="#222244" stroke-width="0.7"/>
<line x1="1430.2" y1="1323.8" x2="1818.2" y2="813.2" stroke="#222244" stroke-width="0.7"/>
<line x1="1774.0" y1="1111.0" x2="1466.7" y2="858.9" stroke="#222244" stroke-width="0.7"/>
<line x1="1772.1" y1="1052.2" x2="1184.6" y2="1303.0" stroke="#222244" stroke-width="0.7"/>
<line x1="933.6" y1="1074.4" x2="1070.4" y2="847.7" stroke="#222244" stroke-width="0.7"/>
<line x1="2306.9" y1="733.9" x2="1553.3" y2="263.5" stroke="#222244" stroke-width="0.7"/>
<line x1="981.8" y1="197.1" x2="1459.9" y2="917.4" stroke="#222244" stroke-width="0.7"/>
<line x1="1498.0" y1="930.3" x2="126.0" y2="600.2" stroke="#222244" stroke-width="0.7"/>
<line x1="1393.8" y1="642.5" x2="1425.2" y2="456.2" stroke="#222244" stroke-width="0.7"/>
<line x1="1733.7" y1="176.1" x2="1843.7" y2="759.8" stroke="#222244" stroke-width="0.7"/>
<line x1="1498.0" y1="930.3" x2="867.4" y2="116.9" stroke="#222244" stroke-width="0.7"/>
<line x1="1184.6" y1="1303.0" x2="929.3" y2="1220.6" stroke="#222244" stroke-width="0.7"/>
<line x1="1688.7" y1="1453.1" x2="2266.0" y2="593.5" stroke="#222244" stroke-width="0.7"/>
<line x1="1466.7" y1="858.9" x2="640.5" y2="470.6" stroke="#222244" stroke-width="0.7"/>
<line x1="270.4" y1="1102.2" x2="163.5" y2="605.6" stroke="#222244" stroke-width="0.7"/>
<line x1="1386.6" y1="888.1" x2="755.9" y2="1471.1" stroke="#222244" stroke-width="0.7"/>
<line x1="805.9" y1="209.6" x2="1856.7" y2="390.3" stroke="#222244" stroke-width="0.7"/>
<line x1="2318.9" y1="770.4" x2="1895.2" y2="254.2" stroke="#222244" stroke-width="0.7"/>
<line x1="2003.2" y1="929.5" x2="780.4" y2="1471.6" stroke="#222244" stroke-width="0.7"/>
<line x1="933.6" y1="1074.4" x2="1818.2" y2="813.2" stroke="#222244" stroke-width="0.7"/>
<line x1="933.6" y1="1074.4" x2="1459.9" y2="917.4" stroke="#222244" stroke-width="0.7"/>
<line x1="933.6" y1="1074.4" x2="1393.8" y2="642.5" stroke="#222244" stroke-width="0.7"/>
<line x1="1818.2" y1="813.2" x2="1430.2" y2="1323.8" stroke="#222244" stroke-width="0.7"/>
<line x1="1818.2" y1="813.2" x2="1483.9" y2="1166.5" stroke="#222244" stroke-width="0.7"/>
<line x1="1818.2" y1="813.2" x2="1498.0" y2="930.3" stroke="#222244" stroke-width="0.7"/>
<line x1="1494.5" y1="806.8" x2="1772.1" y2="1052.2" stroke="#222244" stroke-width="0.7"/>
<line x1="1494.5" y1="806.8" x2="1774.0" y2="1111.0" stroke="#222244" stroke-width="0.7"/>
<line x1="1952.2" y1="1331.8" x2="1070.4" y2="847.7" stroke="#222244" stroke-width="0.7"/>
<line x1="1772.1" y1="1052.2" x2="981.8" y2="197.1" stroke="#222244" stroke-width="0.7"/>
<line x1="1774.0" y1="1111.0" x2="2209.2" y2="1100.5" stroke="#222244" stroke-width="0.7"/>
<line x1="1184.6" y1="1303.0" x2="1466.7" y2="858.9" stroke="#222244" stroke-width="0.7"/>
<line x1="1459.9" y1="917.4" x2="1962.8" y2="1307.6" stroke="#222244" stroke-width="0.7"/>
<line x1="1498.0" y1="930.3" x2="1733.7" y2="176.1" stroke="#222244" stroke-width="0.7"/>
<line x1="126.0" y1="600.2" x2="1184.6" y2="1303.0" stroke="#222244" stroke-width="0.7"/>
<line x1="2303.5" y1="893.8" x2="1430.2" y2="1323.8" stroke="#222244" stroke-width="0.7"/>
<line x1="1070.4" y1="847.7" x2="2209.2" y2="1100.5" stroke="#222244" stroke-width="0.7"/>
<line x1="929.3" y1="1220.6" x2="2250.1" y2="1056.2" stroke="#222244" stroke-width="0.7"/>
<line x1="1184.6" y1="1303.0" x2="1459.9" y2="917.4" stroke="#222244" stroke-width="0.7"/>
<line x1="1892.7" y1="614.6" x2="1358.5" y2="291.1" stroke="#222244" stroke-width="0.7"/>
<line x1="643.0" y1="195.1" x2="962.2" y2="475.0" stroke="#222244" stroke-width="0.7"/>
<line x1="1070.4" y1="847.7" x2="1553.3" y2="263.5" stroke="#222244" stroke-width="0.7"/>
<line x1="1636.6" y1="869.2" x2="2250.1" y2="1056.2" stroke="#222244" stroke-width="0.7"/>
<line x1="1498.0" y1="930.3" x2="1393.8" y2="642.5" stroke="#222244" stroke-width="0.7"/>
<line x1="1439.6" y1="1042.3" x2="962.2" y2="475.0" stroke="#222244" stroke-width="0.7"/>
<line x1="1774.0" y1="1111.0" x2="1393.8" y2="642.5" stroke="#222244" stroke-width="0.7"/>
<line x1="1264.9" y1="85.6" x2="1425.2" y2="456.2" stroke="#222244" stroke-width="0.7"/>
<line x1="570.8" y1="1404.0" x2="1018.1" y2="1489.1" stroke="#222244" stroke-width="0.7"/>
<line x1="809.4" y1="989.5" x2="1018.1" y2="1489.1" stroke="#222244" stroke-width="0.7"/>
<line x1="1199.3" y1="1513.4" x2="1881.1" y2="1371.0" stroke="#222244" stroke-width="0.7"/>
<line x1="2245.7" y1="558.8" x2="1881.1" y2="1371.0" stroke="#222244" stroke-width="0.7"/>
<line x1="937.2" y1="810.9" x2="1881.1" y2="1371.0" stroke="#222244" stroke-width="0.7"/>
<line x1="650.6" y1="1402.5" x2="1439.6" y2="1042.3" stroke="#222244" stroke-width="0.7"/>
<line x1="310.8" y1="343.2" x2="522.0" y2="977.8" stroke="#222244" stroke-width="0.7"/>
<line x1="1542.0" y1="1455.7" x2="1018.1" y2="1489.1" stroke="#222244" stroke-width="0.7"/>
<line x1="129.1" y1="612.6" x2="811.3" y2="464.8" stroke="#222244" stroke-width="0.7"/>
<line x1="1542.0" y1="1455.7" x2="1034.7" y2="838.9" stroke="#222244" stroke-width="0.7"/>
<line x1="613.6" y1="1158.6" x2="1151.2" y2="625.8" stroke="#222244" stroke-width="0.7"/>
<line x1="1303.3" y1="129.1" x2="392.6" y2="786.5" stroke="#222244" stroke-width="0.7"/>
<line x1="1896.6" y1="405.5" x2="1497.5" y2="104.4" stroke="#222244" stroke-width="0.7"/>
<line x1="1896.6" y1="405.5" x2="708.6" y2="754.9" stroke="#222244" stroke-width="0.7"/>
<line x1="1528.7" y1="638.8" x2="2061.9" y2="710.0" stroke="#222244" stroke-width="0.7"/>
<line x1="1604.7" y1="135.3" x2="1558.0" y2="116.8" stroke="#222244" stroke-width="0.7"/>
<line x1="1604.7" y1="135.3" x2="1136.0" y2="153.3" stroke="#222244" stroke-width="0.7"/>
<line x1="1275.2" y1="1306.4" x2="1843.7" y2="759.8" stroke="#222244" stroke-width="0.7"/>
<line x1="925.2" y1="325.9" x2="2003.2" y2="929.5" stroke="#222244" stroke-width="0.7"/>
<line x1="982.8" y1="1207.8" x2="487.3" y2="537.8" stroke="#222244" stroke-width="0.7"/>
<line x1="2152.9" y1="1038.2" x2="2153.2" y2="438.0" stroke="#222244" stroke-width="0.7"/>
<line x1="1114.8" y1="1514.4" x2="1877.8" y2="955.6" stroke="#222244" stroke-width="0.7"/>
<circle cx="1114.8" cy="1514.4" r="6" fill="#FFD700" opacity="1.0"/>
<text x="1122.8" y="1517.4" fill="#FFD700" font-size="9" font-family="monospace" opacity="1.00">Sol</text>
<circle cx="1877.8" cy="955.6" r="6" fill="#FFD700" opacity="1.0"/>
<text x="1885.8" y="958.6" fill="#FFD700" font-size="9" font-family="monospace" opacity="1.00">Tau Ceti</text>
<circle cx="473.1" cy="249.3" r="2.5" fill="#FF4444" opacity="0.7"/>
<circle cx="476.7" cy="1172.4" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="1542.0" cy="1455.7" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="464.4" cy="1360.2" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="2012.0" cy="306.1" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="487.3" cy="537.8" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="929.3" cy="1220.6" r="4" fill="#FF4444" opacity="0.85"/>
<circle cx="1046.3" cy="993.3" r="4" fill="#4488FF" opacity="0.4"/>
<text x="1052.3" y="996.3" fill="#4488FF" font-size="7" font-family="monospace" opacity="0.60">Wolf 359</text>
<circle cx="1393.8" cy="642.5" r="6" fill="#FFD700" opacity="0.85"/>
<text x="1401.8" y="645.5" fill="#FFD700" font-size="9" font-family="monospace" opacity="1.00">ACB</text>
<circle cx="163.5" cy="605.6" r="2.5" fill="#AA44FF" opacity="0.25"/>
<circle cx="1441.6" cy="1012.7" r="2.5" fill="#AA44FF" opacity="0.4"/>
<circle cx="962.2" cy="475.0" r="2.5" fill="#FF4444" opacity="0.4"/>
<text x="966.7" y="478.0" fill="#FF4444" font-size="7" font-family="monospace" opacity="0.60">GJ 393</text>
<circle cx="1553.3" cy="263.5" r="6" fill="#FFD700" opacity="1.0"/>
<text x="1561.3" y="266.5" fill="#FFD700" font-size="9" font-family="monospace" opacity="1.00">Ran</text>
<circle cx="1338.1" cy="100.6" r="4" fill="#4488FF" opacity="0.7"/>
<circle cx="570.8" cy="1404.0" r="2.5" fill="#AA44FF" opacity="0.25"/>
<circle cx="2094.2" cy="933.6" r="2.5" fill="#4488FF" opacity="0.55"/>
<circle cx="623.4" cy="191.3" r="4" fill="#FF8800" opacity="0.85"/>
<circle cx="2213.4" cy="542.9" r="2.5" fill="#FF8800" opacity="0.4"/>
<circle cx="100.2" cy="714.5" r="2.5" fill="#FF8800" opacity="1.0"/>
<circle cx="613.6" cy="1158.6" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="991.9" cy="1049.0" r="2.5" fill="#4488FF" opacity="0.55"/>
<circle cx="1312.5" cy="640.9" r="2.5" fill="#4488FF" opacity="0.55"/>
<circle cx="1303.3" cy="129.1" r="4" fill="#4488FF" opacity="0.85"/>
<circle cx="2250.1" cy="1056.2" r="2.5" fill="#FF4444" opacity="0.7"/>
<circle cx="2009.5" cy="1307.8" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="1184.6" cy="1303.0" r="6" fill="#FFD700" opacity="0.85"/>
<text x="1192.6" y="1306.0" fill="#FFD700" font-size="9" font-family="monospace" opacity="1.00">Tessera</text>
<circle cx="728.3" cy="514.2" r="2.5" fill="#4488FF" opacity="0.7"/>
<circle cx="102.5" cy="653.3" r="2.5" fill="#FF4444" opacity="0.7"/>
<circle cx="1358.5" cy="291.1" r="2.5" fill="#FF8800" opacity="0.7"/>
<circle cx="1896.6" cy="405.5" r="2.5" fill="#FF4444" opacity="0.7"/>
<circle cx="910.0" cy="849.0" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="400.5" cy="1291.2" r="4" fill="#4488FF" opacity="0.7"/>
<circle cx="647.1" cy="1438.8" r="2.5" fill="#FF8800" opacity="0.7"/>
<circle cx="1861.1" cy="223.7" r="2.5" fill="#FF8800" opacity="1.0"/>
<circle cx="155.8" cy="1073.6" r="2.5" fill="#FF8800" opacity="0.55"/>
<circle cx="1962.8" cy="1307.6" r="6" fill="#FFD700" opacity="1.0"/>
<text x="1970.8" y="1310.6" fill="#FFD700" font-size="9" font-family="monospace" opacity="1.00">Keid</text>
<circle cx="1782.4" cy="181.3" r="2.5" fill="#FF8800" opacity="0.7"/>
<circle cx="805.9" cy="209.6" r="2.5" fill="#44DD44" opacity="0.7"/>
<circle cx="2289.5" cy="938.2" r="4" fill="#4488FF" opacity="0.85"/>
<circle cx="943.4" cy="99.6" r="2.5" fill="#FF4444" opacity="0.7"/>
<circle cx="382.0" cy="331.1" r="2.5" fill="#AA44FF" opacity="0.25"/>
<circle cx="1945.4" cy="680.6" r="2.5" fill="#AA44FF" opacity="0.4"/>
<circle cx="2299.1" cy="713.1" r="4" fill="#FF8800" opacity="0.55"/>
<circle cx="242.2" cy="1164.7" r="2.5" fill="#FF4444" opacity="0.55"/>
<circle cx="1856.5" cy="892.3" r="4" fill="#4488FF" opacity="0.7"/>
<circle cx="1466.7" cy="858.9" r="6" fill="#FFD700" opacity="0.55"/>
<text x="1474.7" y="861.9" fill="#FFD700" font-size="9" font-family="monospace" opacity="0.75">Parallax</text>
<circle cx="750.3" cy="449.9" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="537.9" cy="292.8" r="2.5" fill="#AA44FF" opacity="0.55"/>
<circle cx="110.3" cy="972.4" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="522.0" cy="977.8" r="2.5" fill="#44DD44" opacity="0.55"/>
<circle cx="1892.7" cy="614.6" r="2.5" fill="#FF8800" opacity="0.55"/>
<text x="1897.2" y="617.6" fill="#FF8800" font-size="7" font-family="monospace" opacity="0.75">GJ 357</text>
<circle cx="904.8" cy="1479.7" r="2.5" fill="#FF8800" opacity="0.55"/>
<circle cx="640.5" cy="470.6" r="4" fill="#44DD44" opacity="0.55"/>
<circle cx="534.4" cy="228.6" r="2.5" fill="#FF4444" opacity="0.7"/>
<circle cx="2151.4" cy="1183.7" r="2.5" fill="#44DD44" opacity="0.7"/>
<circle cx="1331.5" cy="1502.5" r="2.5" fill="#FF4444" opacity="0.7"/>
<circle cx="1943.6" cy="264.6" r="2.5" fill="#4488FF" opacity="0.7"/>
<circle cx="1540.3" cy="656.5" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="1832.9" cy="1256.1" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="643.0" cy="195.1" r="4" fill="#FF4444" opacity="0.7"/>
<text x="649.0" y="198.1" fill="#FF4444" font-size="7" font-family="monospace" opacity="0.90">GJ 1111</text>
<circle cx="949.3" cy="885.6" r="2.5" fill="#44DD44" opacity="0.7"/>
<circle cx="1881.1" cy="1371.0" r="2.5" fill="#AA44FF" opacity="0.25"/>
<circle cx="258.1" cy="783.1" r="2.5" fill="#44DD44" opacity="0.7"/>
<circle cx="1059.2" cy="100.0" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="129.1" cy="612.6" r="2.5" fill="#44DD44" opacity="0.4"/>
<circle cx="1818.2" cy="813.2" r="6" fill="#FFD700" opacity="1.0"/>
<text x="1826.2" y="816.2" fill="#FFD700" font-size="9" font-family="monospace" opacity="1.00">Sirius</text>
<circle cx="946.8" cy="1476.9" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="1037.2" cy="1510.8" r="2.5" fill="#AA44FF" opacity="0.55"/>
<circle cx="2191.1" cy="457.6" r="2.5" fill="#4488FF" opacity="0.7"/>
<circle cx="1040.0" cy="211.9" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="822.0" cy="118.6" r="4" fill="#FF4444" opacity="0.7"/>
<circle cx="1856.7" cy="390.3" r="2.5" fill="#AA44FF" opacity="0.7"/>
<circle cx="126.0" cy="600.2" r="6" fill="#FFD700" opacity="1.0"/>
<text x="134.0" y="603.2" fill="#FFD700" font-size="9" font-family="monospace" opacity="1.00">Lacaille</text>
<circle cx="2153.2" cy="438.0" r="2.5" fill="#4488FF" opacity="0.4"/>
<circle cx="109.1" cy="684.8" r="2.5" fill="#44DD44" opacity="0.25"/>
<circle cx="2266.0" cy="593.5" r="4" fill="#44DD44" opacity="0.4"/>
<circle cx="1350.1" cy="1493.8" r="2.5" fill="#AA44FF" opacity="0.55"/>
<circle cx="482.9" cy="1330.9" r="2.5" fill="#AA44FF" opacity="0.55"/>
<circle cx="270.4" cy="1102.2" r="2.5" fill="#4488FF" opacity="0.55"/>
<circle cx="1073.3" cy="1167.0" r="4" fill="#4488FF" opacity="0.85"/>
<circle cx="520.0" cy="1068.5" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="606.7" cy="204.2" r="2.5" fill="#FF8800" opacity="0.25"/>
<circle cx="97.7" cy="929.3" r="2.5" fill="#AA44FF" opacity="0.55"/>
<circle cx="1558.0" cy="116.8" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="1381.9" cy="118.1" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="1644.7" cy="149.4" r="4" fill="#FF4444" opacity="0.55"/>
<circle cx="2075.8" cy="382.2" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="2033.6" cy="308.1" r="2.5" fill="#AA44FF" opacity="0.7"/>
<circle cx="867.4" cy="116.9" r="4" fill="#FF4444" opacity="1.0"/>
<circle cx="1952.2" cy="1331.8" r="6" fill="#FFD700" opacity="0.4"/>
<text x="1960.2" y="1334.8" fill="#FFD700" font-size="9" font-family="monospace" opacity="0.60">Struve</text>
<circle cx="340.5" cy="1214.8" r="2.5" fill="#44DD44" opacity="0.7"/>
<circle cx="1459.9" cy="917.4" r="6" fill="#FFD700" opacity="1.0"/>
<text x="1467.9" y="920.4" fill="#FFD700" font-size="9" font-family="monospace" opacity="1.00">Proxima Centauri</text>
<circle cx="1429.3" cy="113.1" r="2.5" fill="#FF4444" opacity="0.7"/>
<circle cx="360.0" cy="1270.6" r="2.5" fill="#44DD44" opacity="0.7"/>
<circle cx="2120.5" cy="987.2" r="2.5" fill="#AA44FF" opacity="0.55"/>
<circle cx="331.9" cy="372.2" r="4" fill="#4488FF" opacity="0.4"/>
<circle cx="1428.1" cy="1469.4" r="2.5" fill="#44DD44" opacity="0.4"/>
<circle cx="2146.6" cy="1071.2" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="1662.7" cy="145.9" r="2.5" fill="#FF4444" opacity="0.7"/>
<circle cx="711.1" cy="1449.9" r="2.5" fill="#AA44FF" opacity="0.4"/>
<circle cx="1497.5" cy="104.4" r="2.5" fill="#FF4444" opacity="0.55"/>
<circle cx="131.3" cy="1005.8" r="4" fill="#FF4444" opacity="0.25"/>
<circle cx="137.9" cy="550.8" r="2.5" fill="#4488FF" opacity="0.7"/>
<circle cx="1146.2" cy="1148.1" r="2.5" fill="#AA44FF" opacity="0.7"/>
<circle cx="1840.9" cy="224.4" r="4" fill="#4488FF" opacity="0.55"/>
<circle cx="1642.8" cy="725.5" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="706.6" cy="829.3" r="2.5" fill="#44DD44" opacity="0.25"/>
<circle cx="1403.5" cy="1496.6" r="2.5" fill="#44DD44" opacity="0.55"/>
<circle cx="812.7" cy="1001.9" r="4" fill="#FF4444" opacity="0.55"/>
<text x="818.7" y="1004.9" fill="#FF4444" font-size="7" font-family="monospace" opacity="0.75">Lalande 21185</text>
<circle cx="1070.4" cy="847.7" r="6" fill="#FFD700" opacity="1.0"/>
<text x="1078.4" y="850.7" fill="#FFD700" font-size="9" font-family="monospace" opacity="1.00">Nova Roma</text>
<circle cx="366.6" cy="336.0" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="1636.6" cy="869.2" r="2.5" fill="#FF4444" opacity="0.25"/>
<text x="1641.1" y="872.2" fill="#FF4444" font-size="7" font-family="monospace" opacity="0.45">GJ 388</text>
<circle cx="2303.5" cy="893.8" r="6" fill="#FFD700" opacity="0.4"/>
<text x="2311.5" y="896.8" fill="#FFD700" font-size="9" font-family="monospace" opacity="0.60">Meridian</text>
<circle cx="1179.4" cy="855.0" r="2.5" fill="#AA44FF" opacity="0.25"/>
<circle cx="1790.6" cy="261.9" r="2.5" fill="#FF8800" opacity="0.7"/>
<circle cx="356.8" cy="1253.2" r="2.5" fill="#AA44FF" opacity="0.25"/>
<circle cx="981.8" cy="197.1" r="6" fill="#FFD700" opacity="1.0"/>
<text x="989.8" y="200.1" fill="#FFD700" font-size="9" font-family="monospace" opacity="1.00">Ross 128</text>
<circle cx="1733.7" cy="176.1" r="6" fill="#FFD700" opacity="0.85"/>
<text x="1741.7" y="179.1" fill="#FFD700" font-size="9" font-family="monospace" opacity="1.00">Barnard's Star</text>
<circle cx="1498.0" cy="930.3" r="6" fill="#FFD700" opacity="1.0"/>
<text x="1506.0" y="933.3" fill="#FFD700" font-size="9" font-family="monospace" opacity="1.00">Cygni B</text>
<circle cx="1843.6" cy="699.4" r="2.5" fill="#44DD44" opacity="0.7"/>
<circle cx="191.5" cy="1130.4" r="2.5" fill="#AA44FF" opacity="0.7"/>
<circle cx="1133.6" cy="1518.0" r="2.5" fill="#FF4444" opacity="0.25"/>
<circle cx="2115.1" cy="1223.7" r="2.5" fill="#AA44FF" opacity="0.55"/>
<circle cx="803.0" cy="699.3" r="4" fill="#44DD44" opacity="0.25"/>
<circle cx="1991.7" cy="659.3" r="2.5" fill="#AA44FF" opacity="0.4"/>
<circle cx="1190.8" cy="636.6" r="4" fill="#4488FF" opacity="0.7"/>
<circle cx="2300.6" cy="932.3" r="4" fill="#FF8800" opacity="0.7"/>
<circle cx="1264.9" cy="85.6" r="4" fill="#AA44FF" opacity="0.4"/>
<circle cx="1233.0" cy="1503.7" r="2.5" fill="#AA44FF" opacity="0.25"/>
<circle cx="504.2" cy="919.3" r="2.5" fill="#44DD44" opacity="0.7"/>
<circle cx="2205.8" cy="1112.4" r="2.5" fill="#4488FF" opacity="0.55"/>
<circle cx="1694.8" cy="973.5" r="2.5" fill="#FF4444" opacity="0.25"/>
<circle cx="706.0" cy="680.7" r="2.5" fill="#AA44FF" opacity="0.55"/>
<circle cx="1439.6" cy="1042.3" r="4" fill="#FF4444" opacity="0.7"/>
<text x="1445.6" y="1045.3" fill="#FF4444" font-size="7" font-family="monospace" opacity="0.90">GJ 54.1</text>
<circle cx="1845.8" cy="1393.7" r="2.5" fill="#FF4444" opacity="0.7"/>
<circle cx="809.4" cy="989.5" r="2.5" fill="#AA44FF" opacity="0.7"/>
<circle cx="1628.8" cy="1281.6" r="2.5" fill="#AA44FF" opacity="0.25"/>
<circle cx="1774.0" cy="1111.0" r="6" fill="#FFD700" opacity="1.0"/>
<text x="1782.0" y="1114.0" fill="#FFD700" font-size="9" font-family="monospace" opacity="1.00">Renaissance</text>
<circle cx="2198.9" cy="481.5" r="2.5" fill="#FF8800" opacity="0.7"/>
<circle cx="953.1" cy="101.7" r="2.5" fill="#AA44FF" opacity="0.4"/>
<circle cx="1230.4" cy="80.0" r="2.5" fill="#FF4444" opacity="0.7"/>
<circle cx="1829.5" cy="747.0" r="2.5" fill="#AA44FF" opacity="0.55"/>
<circle cx="1151.3" cy="722.8" r="4" fill="#FF8800" opacity="0.55"/>
<circle cx="310.8" cy="343.2" r="2.5" fill="#AA44FF" opacity="0.25"/>
<circle cx="2220.2" cy="524.6" r="2.5" fill="#AA44FF" opacity="0.7"/>
<circle cx="378.5" cy="666.5" r="2.5" fill="#AA44FF" opacity="0.55"/>
<circle cx="1980.2" cy="289.9" r="2.5" fill="#FF4444" opacity="0.7"/>
<circle cx="1546.5" cy="119.2" r="2.5" fill="#44DD44" opacity="0.4"/>
<circle cx="86.3" cy="823.1" r="2.5" fill="#AA44FF" opacity="0.4"/>
<circle cx="1813.5" cy="935.4" r="2.5" fill="#FF8800" opacity="0.55"/>
<circle cx="1492.4" cy="1497.5" r="2.5" fill="#4488FF" opacity="0.7"/>
<circle cx="1353.3" cy="125.0" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="2047.3" cy="341.3" r="2.5" fill="#AA44FF" opacity="0.7"/>
<circle cx="1199.7" cy="83.9" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="387.9" cy="1315.0" r="2.5" fill="#FF4444" opacity="0.55"/>
<circle cx="1739.0" cy="1161.9" r="2.5" fill="#FF8800" opacity="0.7"/>
<circle cx="1110.0" cy="92.5" r="2.5" fill="#AA44FF" opacity="0.7"/>
<circle cx="673.6" cy="694.7" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="1224.2" cy="1498.9" r="2.5" fill="#44DD44" opacity="0.7"/>
<circle cx="1895.2" cy="254.2" r="4" fill="#FF8800" opacity="0.4"/>
<circle cx="2265.5" cy="1030.2" r="2.5" fill="#FF4444" opacity="0.7"/>
<circle cx="1714.0" cy="1407.6" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="1425.2" cy="456.2" r="4" fill="#4488FF" opacity="0.25"/>
<text x="1431.2" y="459.2" fill="#4488FF" font-size="7" font-family="monospace" opacity="0.45">Cairn</text>
<circle cx="562.6" cy="1373.1" r="2.5" fill="#FF4444" opacity="0.7"/>
<circle cx="155.9" cy="521.5" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="377.0" cy="293.0" r="2.5" fill="#FF8800" opacity="0.7"/>
<circle cx="2209.2" cy="1100.5" r="6" fill="#FFD700" opacity="0.85"/>
<text x="2217.2" y="1103.5" fill="#FFD700" font-size="9" font-family="monospace" opacity="1.00">Vargr</text>
<circle cx="1248.7" cy="349.8" r="2.5" fill="#FF4444" opacity="0.7"/>
<circle cx="427.6" cy="693.1" r="2.5" fill="#FF8800" opacity="0.55"/>
<circle cx="432.5" cy="556.5" r="4" fill="#4488FF" opacity="0.85"/>
<circle cx="1528.7" cy="638.8" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="1593.0" cy="160.7" r="4" fill="#AA44FF" opacity="0.4"/>
<circle cx="563.3" cy="644.4" r="2.5" fill="#FF4444" opacity="0.55"/>
<circle cx="930.6" cy="1359.7" r="2.5" fill="#44DD44" opacity="0.7"/>
<circle cx="1690.4" cy="159.5" r="2.5" fill="#4488FF" opacity="0.7"/>
<circle cx="118.4" cy="983.8" r="2.5" fill="#AA44FF" opacity="0.55"/>
<circle cx="80.0" cy="847.9" r="2.5" fill="#FF4444" opacity="0.7"/>
<circle cx="2313.2" cy="856.3" r="2.5" fill="#FF8800" opacity="0.4"/>
<circle cx="650.6" cy="1402.5" r="2.5" fill="#AA44FF" opacity="0.7"/>
<circle cx="1483.9" cy="1166.5" r="6" fill="#FFD700" opacity="1.0"/>
<text x="1491.9" y="1169.5" fill="#FFD700" font-size="9" font-family="monospace" opacity="1.00">Arbour</text>
<circle cx="2273.9" cy="620.2" r="2.5" fill="#FF8800" opacity="1.0"/>
<circle cx="2033.7" cy="1294.6" r="4" fill="#4488FF" opacity="0.7"/>
<circle cx="1052.4" cy="414.9" r="2.5" fill="#AA44FF" opacity="0.55"/>
<circle cx="811.3" cy="464.8" r="2.5" fill="#44DD44" opacity="0.7"/>
<circle cx="974.2" cy="1025.8" r="4" fill="#FF8800" opacity="0.7"/>
<circle cx="708.6" cy="754.9" r="4" fill="#FF4444" opacity="0.85"/>
<circle cx="1807.8" cy="185.7" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="2159.5" cy="541.4" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="343.0" cy="889.0" r="2.5" fill="#AA44FF" opacity="0.55"/>
<circle cx="1315.1" cy="1505.7" r="4" fill="#4488FF" opacity="0.55"/>
<circle cx="1779.2" cy="1259.9" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="491.1" cy="248.7" r="2.5" fill="#44DD44" opacity="0.7"/>
<circle cx="1374.6" cy="1290.1" r="2.5" fill="#AA44FF" opacity="0.55"/>
<circle cx="2171.8" cy="729.3" r="2.5" fill="#FF8800" opacity="0.25"/>
<circle cx="850.5" cy="1445.2" r="4" fill="#4488FF" opacity="0.85"/>
<circle cx="1019.8" cy="1505.3" r="2.5" fill="#AA44FF" opacity="0.25"/>
<circle cx="2268.0" cy="610.5" r="2.5" fill="#4488FF" opacity="0.7"/>
<circle cx="1129.3" cy="814.0" r="4" fill="#44DD44" opacity="0.85"/>
<circle cx="489.7" cy="1343.5" r="4" fill="#FF4444" opacity="0.7"/>
<circle cx="1013.4" cy="948.8" r="4" fill="#4488FF" opacity="0.7"/>
<circle cx="819.5" cy="1474.5" r="2.5" fill="#FF4444" opacity="0.7"/>
<circle cx="1082.3" cy="304.5" r="2.5" fill="#4488FF" opacity="1.0"/>
<circle cx="1981.6" cy="274.3" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="844.7" cy="1483.7" r="2.5" fill="#AA44FF" opacity="0.7"/>
<circle cx="2315.6" cy="845.3" r="2.5" fill="#AA44FF" opacity="0.4"/>
<circle cx="1332.0" cy="1051.4" r="2.5" fill="#44DD44" opacity="0.7"/>
<circle cx="209.7" cy="502.2" r="2.5" fill="#AA44FF" opacity="0.7"/>
<circle cx="1736.7" cy="825.4" r="2.5" fill="#FF4444" opacity="0.7"/>
<circle cx="2061.4" cy="1251.5" r="2.5" fill="#AA44FF" opacity="0.4"/>
<circle cx="87.8" cy="756.5" r="2.5" fill="#44DD44" opacity="0.4"/>
<circle cx="776.5" cy="776.0" r="4" fill="#FF4444" opacity="0.85"/>
<text x="782.5" y="779.0" fill="#FF4444" font-size="7" font-family="monospace" opacity="1.00">GJ 566B</text>
<circle cx="1430.2" cy="1323.8" r="6" fill="#FFD700" opacity="0.85"/>
<text x="1438.2" y="1326.8" fill="#FFD700" font-size="9" font-family="monospace" opacity="1.00">Groombridge</text>
<circle cx="1052.8" cy="321.4" r="2.5" fill="#AA44FF" opacity="0.7"/>
<circle cx="253.3" cy="1141.0" r="2.5" fill="#AA44FF" opacity="0.55"/>
<circle cx="1604.7" cy="135.3" r="2.5" fill="#44DD44" opacity="0.55"/>
<circle cx="733.9" cy="885.2" r="2.5" fill="#FF8800" opacity="0.7"/>
<circle cx="167.3" cy="1087.5" r="2.5" fill="#AA44FF" opacity="0.7"/>
<circle cx="1589.9" cy="317.5" r="2.5" fill="#FF4444" opacity="0.4"/>
<circle cx="755.9" cy="1471.1" r="2.5" fill="#AA44FF" opacity="0.55"/>
<circle cx="489.7" cy="634.4" r="2.5" fill="#AA44FF" opacity="0.55"/>
<circle cx="1702.7" cy="1446.1" r="4" fill="#FF8800" opacity="0.85"/>
<circle cx="2294.8" cy="969.4" r="2.5" fill="#AA44FF" opacity="0.4"/>
<circle cx="1269.4" cy="160.7" r="2.5" fill="#AA44FF" opacity="0.4"/>
<circle cx="1386.6" cy="888.1" r="2.5" fill="#FF8800" opacity="0.85"/>
<text x="1391.1" y="891.1" fill="#FF8800" font-size="7" font-family="monospace" opacity="1.00">GJ 832</text>
<circle cx="1088.0" cy="1507.7" r="2.5" fill="#AA44FF" opacity="0.55"/>
<circle cx="344.7" cy="695.0" r="2.5" fill="#FF8800" opacity="0.7"/>
<circle cx="99.7" cy="662.2" r="4" fill="#44DD44" opacity="0.4"/>
<circle cx="285.6" cy="373.6" r="4" fill="#44DD44" opacity="0.55"/>
<circle cx="120.0" cy="966.6" r="2.5" fill="#AA44FF" opacity="0.25"/>
<circle cx="2255.5" cy="992.5" r="2.5" fill="#4488FF" opacity="0.7"/>
<circle cx="2061.9" cy="710.0" r="2.5" fill="#FF8800" opacity="0.55"/>
<circle cx="722.4" cy="1447.6" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="791.8" cy="1475.0" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="933.6" cy="1074.4" r="6" fill="#FFD700" opacity="0.85"/>
<text x="941.6" y="1077.4" fill="#FFD700" font-size="9" font-family="monospace" opacity="1.00">Bastion</text>
<circle cx="171.2" cy="1093.5" r="4" fill="#44DD44" opacity="0.7"/>
<text x="177.2" y="1096.5" fill="#44DD44" font-size="7" font-family="monospace" opacity="0.90">GJ 566A</text>
<circle cx="1169.2" cy="1519.3" r="2.5" fill="#44DD44" opacity="0.7"/>
<circle cx="100.0" cy="917.7" r="2.5" fill="#FF4444" opacity="0.25"/>
<circle cx="2318.9" cy="770.4" r="4" fill="#4488FF" opacity="0.55"/>
<circle cx="1895.2" cy="1340.8" r="2.5" fill="#4488FF" opacity="0.7"/>
<circle cx="1275.2" cy="1306.4" r="4" fill="#4488FF" opacity="0.4"/>
<circle cx="1199.3" cy="1513.4" r="2.5" fill="#AA44FF" opacity="0.55"/>
<circle cx="110.5" cy="630.8" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="2106.3" cy="1237.3" r="2.5" fill="#44DD44" opacity="0.7"/>
<circle cx="1685.5" cy="1222.9" r="2.5" fill="#FF8800" opacity="0.55"/>
<circle cx="714.5" cy="442.9" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="1034.7" cy="838.9" r="2.5" fill="#FF4444" opacity="0.85"/>
<circle cx="1292.8" cy="85.2" r="4" fill="#44DD44" opacity="0.55"/>
<circle cx="1921.2" cy="1366.2" r="4" fill="#FF4444" opacity="0.7"/>
<circle cx="2257.9" cy="649.3" r="2.5" fill="#44DD44" opacity="0.7"/>
<circle cx="1204.3" cy="964.8" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="1750.1" cy="179.1" r="2.5" fill="#AA44FF" opacity="0.55"/>
<circle cx="1772.1" cy="1052.2" r="6" fill="#FFD700" opacity="1.0"/>
<text x="1780.1" y="1055.2" fill="#FFD700" font-size="9" font-family="monospace" opacity="1.00">Kensho</text>
<circle cx="2003.2" cy="929.5" r="2.5" fill="#FF8800" opacity="0.7"/>
<circle cx="1490.8" cy="341.5" r="2.5" fill="#AA44FF" opacity="0.55"/>
<circle cx="2097.3" cy="1241.5" r="2.5" fill="#AA44FF" opacity="0.55"/>
<circle cx="925.2" cy="325.9" r="2.5" fill="#FF8800" opacity="0.7"/>
<circle cx="888.4" cy="1481.3" r="2.5" fill="#AA44FF" opacity="0.7"/>
<circle cx="2126.9" cy="482.2" r="2.5" fill="#FF4444" opacity="0.25"/>
<circle cx="1425.7" cy="155.9" r="2.5" fill="#FF8800" opacity="0.7"/>
<circle cx="2168.9" cy="1170.3" r="2.5" fill="#FF8800" opacity="0.4"/>
<circle cx="1770.6" cy="552.9" r="2.5" fill="#AA44FF" opacity="0.4"/>
<circle cx="1494.5" cy="806.8" r="6" fill="#FFD700" opacity="1.0"/>
<text x="1502.5" y="809.8" fill="#FFD700" font-size="9" font-family="monospace" opacity="1.00">Aurelius</text>
<circle cx="395.8" cy="1062.2" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="1688.7" cy="1453.1" r="4" fill="#44DD44" opacity="0.25"/>
<text x="1694.7" y="1456.1" fill="#44DD44" font-size="7" font-family="monospace" opacity="0.45">1221-DXP9</text>
<circle cx="1843.7" cy="759.8" r="4" fill="#4488FF" opacity="0.7"/>
<circle cx="1641.9" cy="1461.6" r="2.5" fill="#FF8800" opacity="0.4"/>
<circle cx="2110.4" cy="392.6" r="2.5" fill="#4488FF" opacity="0.85"/>
<circle cx="1260.2" cy="220.8" r="2.5" fill="#FF8800" opacity="0.55"/>
<circle cx="2307.8" cy="905.9" r="2.5" fill="#FF4444" opacity="0.4"/>
<circle cx="498.6" cy="742.8" r="2.5" fill="#AA44FF" opacity="0.55"/>
<circle cx="1135.9" cy="933.0" r="2.5" fill="#AA44FF" opacity="0.25"/>
<circle cx="392.6" cy="786.5" r="4" fill="#4488FF" opacity="0.85"/>
<circle cx="982.8" cy="1207.8" r="2.5" fill="#FF8800" opacity="0.7"/>
<circle cx="1475.8" cy="1408.8" r="4" fill="#44DD44" opacity="0.85"/>
<circle cx="2152.9" cy="1038.2" r="2.5" fill="#4488FF" opacity="0.7"/>
<circle cx="2266.0" cy="598.0" r="2.5" fill="#FF4444" opacity="0.55"/>
<circle cx="562.0" cy="201.0" r="2.5" fill="#FF8800" opacity="0.7"/>
<circle cx="2209.5" cy="1075.3" r="6" fill="#FFD700" opacity="0.85"/>
<text x="2217.5" y="1078.3" fill="#FFD700" font-size="9" font-family="monospace" opacity="1.00">Lu Ban</text>
<circle cx="1874.3" cy="235.1" r="2.5" fill="#AA44FF" opacity="0.7"/>
<circle cx="713.5" cy="144.2" r="2.5" fill="#44DD44" opacity="0.7"/>
<circle cx="1061.9" cy="706.9" r="4" fill="#FF4444" opacity="0.25"/>
<circle cx="219.2" cy="506.3" r="2.5" fill="#AA44FF" opacity="0.4"/>
<circle cx="2245.7" cy="558.8" r="2.5" fill="#AA44FF" opacity="0.55"/>
<circle cx="1018.1" cy="1489.1" r="2.5" fill="#AA44FF" opacity="0.85"/>
<circle cx="401.3" cy="840.0" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="1805.6" cy="1409.0" r="2.5" fill="#4488FF" opacity="0.7"/>
<circle cx="780.4" cy="1471.6" r="2.5" fill="#FF4444" opacity="0.7"/>
<circle cx="1136.0" cy="153.3" r="2.5" fill="#44DD44" opacity="0.7"/>
<circle cx="1222.5" cy="1392.9" r="2.5" fill="#AA44FF" opacity="0.55"/>
<circle cx="1082.7" cy="105.9" r="2.5" fill="#4488FF" opacity="0.55"/>
<circle cx="1127.1" cy="423.0" r="2.5" fill="#AA44FF" opacity="0.55"/>
<circle cx="370.9" cy="305.9" r="2.5" fill="#FF8800" opacity="0.4"/>
<circle cx="235.6" cy="454.4" r="2.5" fill="#44DD44" opacity="0.7"/>
<circle cx="138.2" cy="1010.9" r="2.5" fill="#FF8800" opacity="0.85"/>
<circle cx="937.2" cy="810.9" r="2.5" fill="#AA44FF" opacity="0.7"/>
<circle cx="2306.9" cy="733.9" r="6" fill="#FFD700" opacity="1.0"/>
<text x="2314.9" y="736.9" fill="#FFD700" font-size="9" font-family="monospace" opacity="1.00">Prometheus</text>
<circle cx="1151.2" cy="625.8" r="2.5" fill="#44DD44" opacity="0.85"/>
<circle cx="732.4" cy="141.3" r="2.5" fill="#AA44FF" opacity="0.55"/>
<circle cx="213.2" cy="614.7" r="2.5" fill="#44DD44" opacity="1.0"/>
<text x="2180" y="30" fill="#888" font-size="12" font-family="monospace">SECTORS</text>
<circle cx="2180" cy="40" r="5" fill="#FFD700"/>
<text x="2192" y="44" fill="#FFD700" font-size="10" font-family="monospace">core</text>
<circle cx="2180" cy="60" r="5" fill="#4488FF"/>
<text x="2192" y="64" fill="#4488FF" font-size="10" font-family="monospace">north_reach</text>
<circle cx="2180" cy="80" r="5" fill="#FF4444"/>
<text x="2192" y="84" fill="#FF4444" font-size="10" font-family="monospace">south_reach</text>
<circle cx="2180" cy="100" r="5" fill="#44DD44"/>
<text x="2192" y="104" fill="#44DD44" font-size="10" font-family="monospace">east_reach</text>
<circle cx="2180" cy="120" r="5" fill="#FF8800"/>
<text x="2192" y="124" fill="#FF8800" font-size="10" font-family="monospace">west_reach</text>
<circle cx="2180" cy="140" r="5" fill="#AA44FF"/>
<text x="2192" y="144" fill="#AA44FF" font-size="10" font-family="monospace">deep_frontier</text>
<text x="2180" y="175" fill="#888" font-size="12" font-family="monospace">OPACITY = SETTLEMENT WAVE</text>
<text x="2180" y="191" fill="#666" font-size="9" font-family="monospace">bright = early · dim = recent/unsettled</text>
</svg>

After

Width:  |  Height:  |  Size: 55 KiB

@@ -0,0 +1,94 @@
---
title: "Round 21: v0.2 Story Ticket Team Assignments — Sprint 27 Planning"
description: "Team assignment pass for v0.2 story tickets #614–#626; resolve Q-WTF-039 and Q-WTF-040; produce Sprint 28 candidate list"
type: discussion
status: active
round: 21
created: 2026-03-17
---
# Round 21: v0.2 Story Ticket Team Assignments
**Sprint:** 27 (Scale)
**Date:** 2026-03-17
**Ticket:** #676 — Assign team and sprint for v0.2 story tickets (#614–#626)
**Participants:** Gestalt (systems), Tyre (technical), Paula (narrative), Ozzie (player experience), Qatux (documenter), SI (project manager)
**Output target:** DB team assignments, split tickets, Q-WTF-039/Q-WTF-040 resolved, Sprint 28 candidate list
---
## Internal Round Structure
| Internal Round | Topic | Status |
|----------------|-------|--------|
| Round 1 | Team assignment pass — one team per ticket | Pending |
| Round 2 | Split review — identify server+client splits, create child tickets | Pending |
| Round 3 | Sprint readiness check — Sprint 28 candidate list | Pending |
---
## Ticket Inventory
| # | Title | Epic | Dependencies | Team (proposed) |
|---|-------|------|-------------|-----------------|
| #614 | Bookmark definition system | Tycoon Bookmark (#605) | blocks #618 | — |
| #615 | Tycoon small business owner starting state | Tycoon Bookmark | blocks #617 | — |
| #616 | Broad economic verb vocabulary design | Tycoon Bookmark | — | — |
| #617 | Auto-generated apartment | Tycoon Bookmark | blocked by #615 | — |
| #618 | CK3-style character creation screen | Character Creation (#606) | blocked by #614 | — |
| #619 | Full character customisation | Character Creation | open Q-WTF-040 | — |
| #620 | Culture-implicit-in-location system | Character Creation | blocks #621 | — |
| #621 | NPC personality surface area | NPC Legibility (#607) | blocked by #620, blocks #622 | — |
| #622 | Relationship formation system | NPC Legibility | blocked by #621 | — |
| #624 | Quietly responsive world | World Feel (#608) | — | — |
| #625 | Dual-scale consequence model | World Feel | — | — |
| #626 | Setting delivery — both layers | World Feel | — | — |
*Note: #623 (AI content templating pipeline) is absent from this range — cancelled, superseded by #638.*
---
## Open Questions to Resolve
### Q-WTF-039: Character creation portrait vs tile-scale preview
- **Status:** Resolved → [D-146](../../decisions/scope.md#d-146-character-creation-preview--tile-scale-sprite-with-heavy-zoom)
- **Question:** Does the character creation screen show a portrait render or a tile-scale in-world preview of the player character?
- **Resolution:** Tile-scale sprite with heavy zoom. Same top-down game sprite rendered at high resolution with real-time cosmetic preview. No separate portrait rendering system. #618 stays as a single `client` ticket — no split required.
- **Decided by:** Tyre (architecture), Paula (narrative), Gestalt (systems), confirmed by project lead. Ozzie dissented (portrait render for emotional attachment); overruled.
- **Source:** Sprint 27 planning pass, 2026-03-17
### Q-WTF-040: Do creation choices trace into the generated apartment?
- **Status:** Resolved → [D-147](../../decisions/content.md#d-147-aesthetic-taste-as-character-personality-trait--shared-root-for-cosmetic-and-environmental-expression)
- **Question:** If the player picks hair colour and clothing in #619, does the generator use those choices when laying out the starting apartment (furniture style, colour palette)?
- **Resolution:** Not directly. Characters have an `aesthetic_taste` personality trait (preferred palette, style leanings) that independently informs both appearance choices and living space — shared root, not data pipeline. #619 does NOT block #617. Both systems read the same underlying trait independently. The taste trait definition belongs to the character data model (server).
- **Decided by:** Project lead (taste-as-shared-root framing), Gestalt (ColorHint concept evolved into trait), Paula (culture + economics as primary apartment drivers). Ozzie dissented (direct pipeline); Tyre and Paula argued no connection at all. Taste trait is the synthesis.
- **Source:** Sprint 27 planning pass, 2026-03-17
---
## §1 — ROUND 1: Team Assignment Pass
*Pending agent contributions.*
---
## §2 — ROUND 2: Split Review
*Pending. Note: #618 split question is now resolved — tile-scale zoom means #618 stays as a single `client` ticket (D-146). Anticipated remaining split: #620 (culture-implicit-in-location).*
---
## §3 — ROUND 3: Sprint 28 Readiness
*Pending.*
---
## Decision Registry
| ID | Type | Title | Domain file | Status |
|----|------|-------|-------------|--------|
| D-146 | D | Character creation preview — tile-scale sprite with heavy zoom | decisions/scope.md | **Filed** |
| D-147 | D | Aesthetic taste as character personality trait — shared root for cosmetic and environmental expression | decisions/content.md | **Filed** |
| Q-WTF-039 | Q | Character creation: portrait vs tile-scale preview | decisions/questions-content.md | **Resolved → D-146** |
| Q-WTF-040 | Q | Creation choices → generated apartment? | decisions/questions-content.md | **Resolved → D-147** |
+1 -1
View File
@@ -1,6 +1,6 @@
---
title: "Sprint 25 — Copy Briefing"
description: "Zone identity spec, Krenn culture profile"
description: "Zone identity spec, Van Maanen's Star culture profile"
type: sprint
status: archived
sprint: 25
+1 -1
View File
@@ -1,6 +1,6 @@
---
title: "Sprint 26 — Copy Briefing"
description: "D-record amendments, base text elevation pass, remove handwritten Krenn content"
description: "D-record amendments, base text elevation pass, remove handwritten Van Maanen's Star content"
type: sprint
status: archived
sprint: 26
+146
View File
@@ -0,0 +1,146 @@
---
title: "Sprint 27 — Copy Briefing"
description: "Author all 29 remaining zone-type behavior templates, replace overheard.yaml, extend validate-ron name collision checking"
type: sprint
status: active
sprint: 27
team: "copy"
---
# Sprint 27: Scale — Copy Tasks
**Goal:** Extend the zone-type template library from 2 to 31 zone types, wire the server to load them, and eliminate Clippy debt — clearing the path to the NPC legibility sprint.
**Branch:** `copy`
**Agents:** Mellanie (author), Paula (narrative), Gestalt (systems)
## New Tickets
| # | Title | Blocked by |
|---|-------|------------|
| #662 | Author zone-type behavior templates (29 remaining types) | #663 (server structs, soft dependency — can author in parallel, but validate-ron requires server struct changes to pass) |
| #664 | Replace overheard.yaml with generator-compatible conversation system | — |
| #665 | Extend validate-ron to cross-culture name pool collision checking | — |
Use `tooling/db/ticket show <id>` for full details.
## Key Decisions
- `decisions/content.md` — D-142 (zone-type template architecture — primary reference for all authoring in this sprint), D-139 (composable behavior primitives — the three-layer assembly model), D-121 (voice is culture-driven, job as modifier), D-122 (all NPCs generated), D-128 (culture implicit in starting location)
- `decisions/scope.md` — D-114 (generator-first proof-of-life)
## Open Questions to Resolve Early
- **Q-WTF-033: AI templating (Claude API vs ollama vs manual)** — does not block #662. The primitives authored this sprint are Layer 1 (culture-neutral physical actions). Layer 3 (LLM flavor) is an optional runtime layer; the base text must be fully playable without it. Author for standalone readability per D-142's standalone readability constraint.
## Notes
### #662 — Author zone-type behavior templates (29 remaining types)
**Existing files (done, use as reference):**
- `content/global/zone-types/rural_agricultural.ron` — canonical authoring reference
- `content/global/zone-types/industrial_freight.ron`
**29 remaining zone types to author (canonical list from D-142):**
| Group | Zone Types |
|-------|-----------|
| Rural | `rural_pastoral`, `rural_aquaculture`, `rural_orbital` |
| Industrial | `industrial_manufacturing`, `industrial_processing` |
| Port | `port_space`, `port_surface`, `port_maritime`, `port_fishing` |
| Extraction | `extraction_space`, `extraction_surface`, `extraction_platform` |
| Commercial | `commercial_market`, `commercial_transit` |
| Administrative | `administrative_civil`, `administrative_judicial` |
| Single | `research_station`, `medical_facility`, `military_garrison`, `security_checkpoint`, `entertainment_hospitality`, `entertainment_venue`, `residential_station`, `residential_surface`, `residential_dispersed`, `detention_facility`, `archaeological_site`, `wilderness_frontier`, `diplomatic_elite` |
**Authoring rules (non-negotiable, from D-142):**
1. **Primitives are culture-neutral.** Do not encode cultural attitudes, speech patterns, or voice register in action text. "Works a crop row, stopping to pull weeds by the root" is correct. "Works with quiet dignity, as is the Krenn way" is incorrect. Culture is applied by the culture modifier layer at assembly time.
2. **Standalone readability constraint.** Every `action` must be informative without a culture modifier. "farms" fails. "kneels at the base of a struggling plant and parts the soil with two fingers" passes. A player reading base text must be able to read what an NPC is doing.
3. **~15 primitives per role, ~4 roles per zone type.** (~60 primitives per zone type file, ~1,740 total.) Quality over volume — 12 excellent primitives beats 20 mediocre ones.
4. **Context tags:** Use `OnShift`, `OffDuty`, `Social`, `Any`. Most primitives are `OnShift`. Include at least 3–5 `Social` primitives per role for tavern/social-site coverage.
5. **modifier_hint:** Match the seven D-142 categories: `work_pace`, `physical_manner`, `social_signal`, `task_completion`, `environmental_scan`, `offduty_posture`, `authority_response`. Every primitive should have a hint.
6. **Grammar constraint (D-142):** Culture modifier clauses attach as prepositional phrases or coordinating conjunctions. Your action text should end in a form that accepts a trailing clause cleanly. "loads a wheelbarrow" → accepts "with unhurried efficiency". Avoid action text that ends in a subordinate clause that would create a grammatically broken assembly.
7. **Roles:** Each zone type needs roles that match its physical reality. A `detention_facility` has `guard`, `administrator`, `prisoner`, `medic`. A `research_station` has `researcher`, `technician`, `security`, `support`. Use the zone type's physical space and social function to derive the roles.
8. **social_site_types:** Every zone type needs at least two social site types. Include one "work" site (workshop, lab bench, loading dock) and one "off-duty" site (break room, canteen, recreation space). List `eligible_roles` for each.
**Validate each file:**
```bash
tooling/validate-ron content/global/zone-types/<zone_type>.ron zone_type
```
Note: this requires #663 (server struct changes) to be merged first for `validate-ron` to accept the `zone_type` schema. Until then, validate structurally by checking the file matches the pattern in `rural_agricultural.ron`.
---
**Large content push execution — team-patterns.md model:**
This is a large batch of structured content (29 files, ~1,740 primitives). Use the parallel writer pattern from `docs/` team patterns:
1. **Lore librarian agent (read-only):** Loads `rural_agricultural.ron`, `industrial_freight.ron`, D-142, D-139. Answers authoring questions from writers. Tracks cross-file consistency (do `commercial_transit` and `commercial_market` have distinct enough flavor? Does `port_space` read differently from `port_maritime`?).
2. **Multiple writer agents (parallel, by group):** Split by zone-type group:
- Writer A: Rural (3 files) + Port (4 files)
- Writer B: Industrial (2) + Extraction (3) + Commercial (2)
- Writer C: Administrative (2) + Single group part 1 (4 files: `research_station`, `medical_facility`, `military_garrison`, `security_checkpoint`)
- Writer D: Single group part 2 (5 files: `entertainment_hospitality`, `entertainment_venue`, `residential_station`, `residential_surface`, `residential_dispersed`)
- Writer E: Single group part 3 (4 files: `detention_facility`, `archaeological_site`, `wilderness_frontier`, `diplomatic_elite`)
Each writer writes directly to disk using the Write tool — one file at a time. No text accumulation. Write often.
3. **Reviewer agent (after writing complete):** Reads all 29 new files + the 2 existing references. Checks: voice consistency (do all zone types read as the same authoring voice?), context tag coverage (are OnShift/Social balanced?), standalone readability (no cultural encoding?), grammar constraint compliance.
**Heartbeat rule:** If any agent has been working on a single file for more than 15 minutes without progress, message the team lead. Do not silently retry.
---
### #664 — Replace overheard.yaml with generator-compatible conversation system
`content/npc-conversations/overheard.yaml` contains 48 hand-authored conversation entries referencing named v0.1 NPCs (Kael, Sera, Torek, etc.) and the detective arc. Per D-122 (all NPCs generated), this content is superseded.
**What to do:**
1. Read `content/npc-conversations/overheard.yaml` to understand its current structure.
2. Design a replacement RON format that supports generator-compatible overheard conversations: no named NPC references, parameterized by role pair and zone type, culture-neutral content that accepts culture modifier at assembly time.
3. Author 10–15 sample overheard conversation snippets in the new format covering at least 3 zone types.
4. Rename/archive the old YAML: `content/npc-conversations/overheard.yaml.deprecated` with a header comment explaining why.
5. File the new format spec as a note in `decisions/content.md` if it introduces a new content pattern (check with Qatux).
The old format is not salvageable as-is — the named NPC references make all 48 entries invalid. The structural value (the idea of overheard conversation as an ambient information layer) is worth preserving; the content is not.
---
### #665 — Extend validate-ron to cross-culture name pool collision checking
Currently `tooling/validate-ron` validates individual RON files against their schema. Name pool collisions across culture profiles (a given name appearing in both Krenn and Vael pools) are caught only in PR review.
**Deliverable:** A new mode in `tooling/validate-ron` (or a separate `tooling/validate-names` script):
```bash
tooling/validate-ron --check-name-collisions content/global/
```
This scans all `culture-*.ron` files, extracts `naming.given_names` and `naming.family_names` pools, and reports any name that appears in more than one culture's pool. Output should be machine-readable (exit 1 on collision, print the colliding names and which cultures they appear in).
This is a tooling task. It does not require server changes — the culture RON files are already parseable by the existing validator infrastructure.
---
## Dependency Chain
```
#665 (validate-ron name collision) — standalone, no blockers
#664 (replace overheard.yaml) — standalone, no blockers
#662 (29 zone-type templates) → soft dependency on #663 (server structs) for full validate-ron pass
└── Parallel writer agents (groups A/B/C/D/E) — all parallel once authoring begins
```
## PR Workflow
When ready to submit, create a PR with `tea` CLI. **All flags are required** to avoid TTY prompts (see `CLAUDE.md` "Gitea access" section):
```bash
tea pr create --repo jpmschweitzer/settled-reach --login schweitz --title "feat(content): description" --description "body" --base main --head copy
```
+70
View File
@@ -0,0 +1,70 @@
---
title: "Sprint 27 — Joint Briefing"
description: "Cross-team coordination, integration points, sprint completion proof"
type: sprint
status: active
sprint: 27
team: "joint"
---
# Sprint 27: Scale — Joint
**Goal:** Extend the zone-type template library from 2 to 31 zone types, wire the server to load them, and eliminate Clippy debt — clearing the path to the NPC legibility sprint.
## Pre-Sprint Checks
| Item | Owner | Status |
|------|-------|--------|
| Sprint 26 all done (15/15) | SI | confirmed |
| content/global/zone-types/ has rural_agricultural.ron and industrial_freight.ron | copy/server | confirmed |
| validate-ron currently accepts zone spec format | server | needs update (#663) |
| Sprint 27 created in planning status | SI | confirmed (ID: 27) |
## Cross-Team Dependencies
| Dependency | Upstream | Downstream | Notes |
|------------|----------|------------|-------|
| #669 (move content/) completes | server | server (#663 loader paths) | #663 loader should target `server/content/` from the start — coordinate on timing |
| #663 (ZoneTypeTemplate structs) merges | server | copy (#662 validate-ron) | Copy team can author in parallel; full validate-ron pass requires #663 merged |
| #663 struct design | server | copy (#662 authoring) | Server team: share the new struct field names before copy team starts batch authoring so RON files are aligned from the start |
**Action required — sprint start:** Server team (`#663` agent) to post the finalized `ZoneTypeTemplate` struct layout (field names and types) as a comment on #663 before copy team begins batch authoring. Copy team is authoring to the existing RON format (which IS the schema per D-142's "Rust structs match the RON files" contract) — but if the struct rename changes any field names, copy team needs to know before producing 29 files.
## Sprint Completion Proof
Sprint 27 is done when all of the following are observable:
**Server:**
- `cargo clippy -- --deny warnings` passes with zero warnings on the `server` branch.
- `cargo audit` runs as `make audit` and reports the RUSTSEC-2025-0141 advisory as ignored (expected), with no new advisories failing.
- `tooling/validate-ron content/global/zone-types/rural_agricultural.ron zone_type` passes against the new `ZoneTypeTemplate` struct.
- `cargo run --bin generator_spike -- --zone-type rural_agricultural --seed 42 --from-files` produces legible NPC output (eyeball test: you can tell it's a rural agricultural zone from the behaviors).
**Copy:**
- `content/global/zone-types/` contains all 31 RON files (2 existing + 29 new).
- All 31 files pass `tooling/validate-ron content/global/zone-types/<zone_type>.ron zone_type` (requires #663 merged).
- Each file has at least 3 roles with at least 12 `OnShift` primitives and 3 `Social` primitives per role.
- `content/npc-conversations/overheard.yaml.deprecated` exists; replacement RON file exists with 10+ entries.
**Planning:**
- All 12 v0.2 story tickets (#614–#626) have a team assigned in the DB.
- Q-WTF-039 and Q-WTF-040 are marked resolved in `decisions/questions-content.md`.
- Any required split tickets created with blockers wired.
## Test Plan Alignment
Sprint 27 is a content + infrastructure sprint. No new ECS systems, no new IPC protocol changes. Test surface:
- **#663 struct changes:** Unit test deserializing `rural_agricultural.ron` into the new `ZoneTypeTemplate`. Existing spike integration test (`make generator-spike-test` or equivalent) must still pass. No regressions in existing blueprint deserialization tests.
- **#635 Clippy:** `cargo clippy -- --deny warnings` is the test. Zero warnings = done.
- **#669 content/ move:** `make test` must pass after the move. All fixture paths verified.
- **#662 zone-type files:** `tooling/validate-ron` pass for all 31 files is the acceptance criterion.
- **#664 overheard replacement:** New RON file deserializes without errors. Old YAML archived (not deleted).
## Sprint Retro Trigger
If any of these conditions are hit mid-sprint, flag to SI immediately:
- Server struct changes in #663 force RON file format changes that break the copy team's partially-authored files. (Mitigation: struct field names should be locked before copy batch authoring begins — see cross-team dependencies above.)
- Copy batch authoring produces more than 5% of primitives with cultural encoding (failing standalone readability). (Mitigation: reviewer agent pass at end of each batch.)
- #669 (content/ move) breaks more than 3 test files. (Mitigation: run `make test` after each subdirectory move, not at the end.)
+97
View File
@@ -0,0 +1,97 @@
---
title: "Sprint 27 — Planning Briefing"
description: "Assign teams and review open questions for v0.2 story tickets #614–#626"
type: sprint
status: active
sprint: 27
team: "planning"
---
# Sprint 27: Scale — Planning Tasks
**Goal:** Extend the zone-type template library from 2 to 31 zone types, wire the server to load them, and eliminate Clippy debt — clearing the path to the NPC legibility sprint.
**Branch:** `planning`
**Agents:** Gestalt (systems), Tyre (technical), Paula (narrative), Ozzie (player experience), Qatux (documenter/decisions), SI (project manager/ticket updates)
## New Tickets
| # | Title | Blocked by |
|---|-------|------------|
| #676 | Assign team and sprint for v0.2 story tickets (#614–#626) | — |
Use `tooling/db/ticket show <id>` for full details.
## Context
The v0.2 story tickets were created during the Where's the Fun? workshop (2026-03-05) and captured in the backlog without team assignments. Before they can enter a sprint they need a team and any cross-team splits resolved.
The full ticket list:
| # | Title | Epic | Dependencies |
|---|-------|------|-------------|
| #614 | Bookmark definition system | Tycoon Bookmark (#605) | blocks #618 |
| #615 | Tycoon small business owner starting state | Tycoon Bookmark | blocks #617 |
| #616 | Broad economic verb vocabulary design | Tycoon Bookmark | — |
| #617 | Auto-generated apartment | Tycoon Bookmark | blocked by #615 |
| #618 | CK3-style character creation screen | Character Creation (#606) | blocked by #614 |
| #619 | Full character customisation | Character Creation | open Q-WTF-040 |
| #620 | Culture-implicit-in-location system | Character Creation | blocks #621 |
| #621 | NPC personality surface area | NPC Legibility (#607) | blocked by #620, blocks #622 |
| #622 | Relationship formation system | NPC Legibility | blocked by #621 |
| #624 | Quietly responsive world | World Feel (#608) | — |
| #625 | Dual-scale consequence model | World Feel | — |
| #626 | Setting delivery — both layers | World Feel | — |
## Key Decisions
- `decisions/scope.md` — D-114 (generator-first), D-115 (character creation: skills + bookmark only), D-117 (tycoon bookmark for v0.2), D-118 (tycoon = aspiration, not starting state), D-120 (no skill ceiling)
- `decisions/content.md` — D-121 (voice is culture-driven), D-122 (all NPCs generated), D-125 (world quietly responsive), D-126 (Groundhog Day homage on first game day), D-128 (culture implicit in starting location), D-129 (NPC personality: traits + behavior first), D-130 (emergent moral arc), D-131 (broad economic verb vocabulary), D-132 (dual-scale consequence model), D-133 (skills affect outcome), D-134 (full character customization), D-135 (setting delivery via both layers), D-136 (First Settled Reach moment: apartment + insert activation), D-137 (generator: structural and cosmetic variety)
## Open Questions to Resolve
Before assigning teams, resolve or document the following open questions:
**Q-WTF-039: Character creation portrait vs tile-scale preview**
- Does the character creation screen show a portrait render or a tile-scale in-world preview of the player character?
- Affects: #618 (CK3-style character creation screen) team assignment — portrait render is a `visual` team deliverable, tile-scale preview is `client`.
- Needs: Araminta (visual) + Stig/Tyre (client architecture) input. Decision determines whether #618 splits into two tickets.
**Q-WTF-040: Do creation choices trace into the generated apartment?**
- If the player picks hair colour and clothing in #619, does the generator use those choices when laying out the starting apartment (furniture style, colour palette)?
- Affects: #617 (auto-generated apartment) scope. If yes, #619 blocks #617 (not just #615).
- Needs: Gestalt (systems) + Mellanie (content) input. Low complexity to resolve — yes/no decision with a rationale.
## Discussion Structure
Three focused rounds:
**Round 1 — Team assignment pass**
For each ticket, propose a team. Apply the rule: one team per ticket. If a story spans server + client, it must be split. Output: proposed team assignment for each of the 12 tickets, with rationale.
Heuristics:
- Data model / simulation logic → `server`
- UI screen / rendering / player-facing interaction → `client`
- Design doc / verb vocabulary / narrative spec → `copy` or `planning`
- Open question must be resolved before implementation can start → `planning` first, then re-assign
**Round 2 — Split review**
Identify which tickets need to be split into server + client pairs. For each split: write the two child tickets with explicit blocker relationship. #620 (culture-implicit-in-location) is almost certainly a split: server (location-to-culture resolution logic) + client (location picker in character creation UI).
**Round 3 — Sprint readiness check**
Which of the 12 tickets are ready for Sprint 28? Criteria: team assigned, no unresolved open questions blocking implementation, no upstream blocker still in backlog. Present a Sprint 28 candidate list.
## Output Specification
Deliverables from this planning session:
1. **Team assignments committed to DB** — `tooling/db/sqlite-exec "UPDATE tickets SET team = '...' WHERE id = ..."` for all 12 tickets.
2. **Split tickets created** — new tickets for any server/client splits, with blocker relationships wired via `tooling/db/sqlite-exec "INSERT INTO ticket_deps ..."`.
3. **Q-WTF-039 and Q-WTF-040 resolved** — file resolution notes in `decisions/questions-content.md` (Qatux).
4. **Sprint 28 candidate list** — a short list of tickets ready for Sprint 28, delivered to SI for sprint planning.
## PR Workflow
When ready to submit planning artifacts, create a PR with `tea` CLI. **All flags are required** to avoid TTY prompts:
```bash
tea pr create --repo jpmschweitzer/settled-reach --login schweitz --title "chore(meta): plan v0.2 story ticket team assignments" --description "body" --base main --head planning
```
+143
View File
@@ -0,0 +1,143 @@
---
title: "Sprint 27 — Server Briefing"
description: "ZoneTypeTemplate structs, Clippy cleanup, cargo audit CI, content/ move to server/, v0.1 YAML audit"
type: sprint
status: active
sprint: 27
team: "server"
---
# Sprint 27: Scale — Server Tasks
**Goal:** Extend the zone-type template library from 2 to 31 zone types, wire the server to load them, and eliminate Clippy debt — clearing the path to the NPC legibility sprint.
**Branch:** `server`
**Agents:** Dudley (simulation), Tyre (arch), Hoshe (QA)
## New Tickets
| # | Title | Blocked by |
|---|-------|------------|
| #663 | ZoneTypeTemplate and LocationSpec structs for D-142 | — |
| #635 | Clippy cleanup and CI enforcement | — |
| #637 | Add cargo audit to CI/review pipeline | — |
| #669 | Move content/ directory under server/ | — |
| #672 | Audit and flag v0.1 YAML content | — |
Use `tooling/db/ticket show <id>` for full details.
## Key Decisions
- `decisions/content.md` — D-142 (zone-type template architecture — the schema this sprint implements), D-139 (composable behavior primitives — `assemble_behaviors` already in `server/src/npc/blueprint.rs`)
- `decisions/scope.md` — D-114 (generator-first proof-of-life), D-122 (all NPCs generated)
## Notes
### #663 — ZoneTypeTemplate and LocationSpec structs
The existing `ZoneSpec` struct (`server/src/npc/blueprint.rs`, line 38) was authored for the Sprint 25 spike. The zone-type RON files the copy team has now shipped (`content/global/zone-types/rural_agricultural.ron`, `industrial_freight.ron`) use the D-142 format, which does not match the current struct. Four changes required:
**1. Rename and extend `ZoneSpec` to `ZoneTypeTemplate`:**
- Add `id: String` — the canonical zone-type identifier (e.g. `"rural_agricultural"`)
- Add `subtype: Option<String>` — subtype discriminator (currently `None` in all files)
- Rename `social_sites: Vec<SocialSiteSpec>` to `social_site_types: Vec<SocialSiteTypeSpec>`
- The new `SocialSiteTypeSpec` uses `eligible_roles: Vec<String>` (role IDs), not `min_npcs`/`max_npcs` — those are location-spec metadata
- `economic_level` and `population_density` become defaults, overridable by location specs
**2. Update `RoleSpec`:**
- Remove `weight: u8` — weights are declared on location specs, not zone-type templates. Roles in a zone-type template are authoritative behavior pools; location specs declare which roles appear and at what frequency.
- `behavior_primitives` is the primary field; `typical_behaviors` is preserved as `#[serde(default)]` for backward compatibility until migration is verified.
**3. Add `LocationSpec` struct:**
- `zone_type: String` — references a `ZoneTypeTemplate.id`
- `culture: String` — references a culture profile
- `role_weights: Vec<RoleWeight>` — `{ role_id: String, weight: u8 }` entries
- `economic_level: Option<u8>` — overrides zone-type default if set
- `population_density: Option<u8>` — overrides zone-type default if set
- `abandoned: bool` — D-142 abandoned flag
- `poi_overlay: Vec<String>` — D-142 poi_overlay list
- `social_sites: Vec<LocationSocialSite>` — site instances with `site_type`, `label`, `min_npcs`, `max_npcs`
**4. Update loader in `generator_spike.rs`:**
- `--from-files` currently loads `content/global/<zone>-zone-spec.ron`. Update to load from `content/global/zone-types/<zone_type>.ron`.
- Resolve `(zone_type, role_id)` → `BehaviorPrimitive` pool by loading the `ZoneTypeTemplate` file then indexing by role ID.
- The generator spike binary passes zone-type ID as `--zone-type rural_agricultural` (update the `--zone` arg). Keep `--from-files` mode.
**Validate:** After struct changes, run `tooling/validate-ron content/global/zone-types/rural_agricultural.ron zone_type` — it must pass without modification to the RON files. The RON files are the ground truth; the Rust structs must match them, not the other way around.
**Test:** Add a unit test in `blueprint.rs` that deserializes `rural_agricultural.ron` from disk and asserts the roles, primitive count, and social_site_types are non-empty. This test will fail until both the struct and the RON files align.
**Schema registration in validate-ron:** After struct changes, update `server/src/bin/validate_ron.rs` to accept `zone_type` as a schema name that deserializes to `ZoneTypeTemplate`.
---
### #635 — Clippy cleanup and CI enforcement
Two-phase:
1. **One-time cleanup:** Run `cargo clippy --fix` for auto-fixable warnings. Remaining complex warnings (too_many_arguments, complex type signatures) require manual refactors — fix by refactoring, not by suppressing with `#[allow()]`. Goal: zero warnings under `--deny warnings`.
2. **CI gate:** Add `cargo clippy -- --deny warnings` to `make pre-pr` (see `Makefile`). After this sprint, Clippy warnings in PRs are a blocking failure.
Run `cargo clippy -- --deny warnings 2>&1 | wc -l` before starting to get a baseline count. The Gemini review found 66 warnings — verify the current count first (Clean House sprint may have reduced it). Fix in batches and commit frequently; a single large Clippy PR is hard to review.
---
### #637 — Add cargo audit to CI/review pipeline
Trigger on `Cargo.toml`/`Cargo.lock` changes (not every commit). Approach:
1. Add `cargo audit` target to `Makefile` under `make audit`.
2. Wire it as a check in the CI configuration (`.config/`) that runs when `Cargo.lock` changes.
3. Also add to `make pre-pr` so it runs locally before PRs.
The current open advisory is `RUSTSEC-2025-0141` (bincode v1.3.3 unmaintained). `cargo audit` will flag it — this is expected until #636 (bincode migration, deferred) is completed. Add an advisory ignore for this specific ID so CI stays green while the known advisory is tracked, but new advisories will fail.
---
### #669 — Move content/ directory under server/
`content/` is consumed exclusively by the server (generator, validate-ron, tests). Move it to `server/content/`.
**Steps:**
1. `git mv content/ server/content/` — preserves git history.
2. Update all path references in server Rust code: search for `"content/"` string literals in `server/src/`. Key files: `server/src/bin/generator_spike.rs` (default `--content-root`), `server/src/bin/validate_ron.rs`, any test fixtures.
3. Update Makefile targets that reference `content/`.
4. Update `tooling/validate-ron` script if it has hardcoded paths.
5. Run `make test` after the move — fixture paths in integration tests may need updating.
**Do not** touch `client/data/` — that is client-only and stays put.
After the move, `tooling/db/sqlite-query 'SELECT * FROM tickets WHERE description LIKE "%content/global%"'` to identify any ticket descriptions with stale paths (update them for future agents).
---
### #672 — Audit and flag v0.1 YAML content
Survey task, not deletion. The server and copy branches contain ~67 YAML files from v0.1 that reference deleted named NPCs (Kael, Sera, Torek, etc.) and the detective arc.
**Deliverable:** A single file `docs/architecture/v01-yaml-content-audit.md` listing:
- Each YAML file path and its status: `deprecated` (pure detective/named NPC content, no generator value), `convertible` (has useful data worth porting to RON generator format), or `already-superseded` (content was already replaced in main).
- For `convertible` files: what specifically is worth extracting (name pools? voice patterns? dialogue seeds?).
- Recommended disposition: archive vs delete vs convert.
**Do not delete anything.** Flag only. Deletion requires explicit team review in a follow-up ticket.
---
## Dependency Chain
```
#669 (move content/) → must complete before #663 (loader path updates assume new location)
#663 (ZoneTypeTemplate structs) → unblocks copy team (#662) full pipeline run
#635 (Clippy cleanup) → #637 (cargo audit — add both to pre-pr in same pass)
#672 (v0.1 YAML audit) — standalone, parallel track
```
Note: #669 should ideally complete first so #663's loader uses the new `server/content/` paths from the start. If they run in parallel, the loader path can target `server/content/` directly and #669 will confirm the files are there.
## PR Workflow
When ready to submit, create a PR with `tea` CLI. **All flags are required** to avoid TTY prompts (see `CLAUDE.md` "Gitea access" section):
```bash
tea pr create --repo jpmschweitzer/settled-reach --login schweitz --title "feat(simulation): description" --description "body" --base main --head server
```
+136
View File
@@ -0,0 +1,136 @@
# Zone-Type Template Consistency Review
**Sprint 27 · Ticket #662 · Task #6**
**Reviewed by:** Mellanie
**Files reviewed:** 31 (29 new + 2 canonical references)
---
## Summary
All 31 zone-type templates pass the core authoring criteria. Two issues
were found and resolved: one stale header comment, one cosmetic
inconsistency affecting 5 files.
**Status: PASS — all issues resolved**
---
## Check Results
### 1. RON schema structure
**PASS — all 31 files**
Every file validates against the `ZoneTypeTemplate` schema. All required
fields present: `id`, `subtype`, `label`, `description`, `economic_level`,
`population_density`, `roles`, `social_site_types`. Role entries all have
`id`, `label`, `skill_focus`, `combat_eligible`, `behavior_primitives`.
Primitive tuples all have `action`, `context`, `modifier_hint`.
### 2. Culture-neutrality
**PASS — all 31 files**
No cultural attitudes, speech patterns, naming conventions, or social
assumptions encoded in any action text. All primitives describe physical
behavior and professional practice only. The layer composes cleanly — no
primitive will read as contradicted by a culture modifier.
### 3. modifier_hint coverage
**PASS — all 31 files**
2383 total primitives across all files. Every primitive has
`modifier_hint: Some(...)`. Zero with `None`. All 7 categories represented
across the set: `work_pace`, `physical_manner`, `social_signal`,
`task_completion`, `environmental_scan`, `offduty_posture`, `authority_response`.
### 4. Context tag coverage
**PASS — all 31 files**
All files have OnShift primitives and Social/OffDuty primitives. 18 of 31
files use the `OffDuty` context tag for break/rest behavior alongside
`Social` for interaction primitives (matching the canonical references).
13 of 31 files use `Social` only, folding both posture and interaction under
one tag. Both are schema-valid. The OffDuty/Social split is richer where
the zone character warrants it (security-heavy, institutional, or isolated
settings) and the Social-only approach works where the distinction carries
less meaning. No file is missing off-shift coverage.
### 5. social_site_types coverage
**PASS — all 31 files**
All files declare ≥ 2 social site types. `detention_facility.ron` declares 4
(`guard_post`, `exercise_yard`, `medical_bay`, `administrative_office`), which
is compliant — the schema has no upper bound.
### 6. Role count
**PASS — all 31 files**
All files declare exactly 4 roles. Role labels are appropriate to zone
character and non-overlapping within each file.
### 7. Standalone readability
**PASS — all 31 files**
All action text reads as specific, concrete, and informative without a
culture modifier appended. No primitive requires cultural context to be
legible. The behavior is the information.
### 8. Grammar constraint
**PASS — all 31 files**
All action text accepts trailing prepositional phrases and coordinating
conjunctions cleanly. No action ends in a word that would create a
grammatical collision with modifier additions (e.g., actions ending in
prepositions, incomplete phrases, or conjunction stubs).
---
## Issues
### Issue 1 — Stale header comment in `residential_station.ron` ⚠️ Fix required
**File:** `content/global/zone-types/residential_station.ron`
**Line:** 19
The header comment reads:
```
// Roles: resident, maintenance_tech, block_admin, child (no combat, low authority)
```
The actual implementation has four roles: `resident`, `maintenance_tech`,
`block_admin`, **`security`**. The `child` role was not implemented.
**Fix:** Update header comment to:
```
// Roles: resident, maintenance_tech, block_admin, security
```
### Issue 2 — Missing explanatory comment before `social_site_types` in 5 files (cosmetic)
**Files affected:**
- `content/global/zone-types/entertainment_hospitality.ron`
- `content/global/zone-types/entertainment_venue.ron`
- `content/global/zone-types/residential_station.ron`
- `content/global/zone-types/residential_surface.ron`
- `content/global/zone-types/residential_dispersed.ron`
All other 26 files include the explanatory comment before the
`social_site_types` field:
```ron
// Valid social site types for this zone type.
// Location specs declare which appear, with their own label, min_npcs, max_npcs.
social_site_types: [
```
The 5 affected files go straight to `social_site_types: [` without the comment.
The field itself is correct in all cases — this is a documentation consistency
gap only.
**Fix:** Add the two-line comment block before `social_site_types:` in each
affected file.
---
## No action required
- `detention_facility.ron` declaring 4 social site types: within spec, no upper bound
- OffDuty/Social context variation: intentional, both valid per D-142
- `diplomatic_elite.ron` using `OffDuty` for ambassador and aide social primitives
while protocol officer and security use `Social`: appropriate zone-level distinction
@@ -0,0 +1,74 @@
---
title: "Sprint 28 — Candidate Ticket List"
description: "v0.2 story tickets cleared for Sprint 28 sprint planning. Output of Sprint 27 planning pass."
type: sprint-prep
sprint: 28
prepared_by: Sprint 27 planning team
date: 2026-03-17
---
# Sprint 28 Candidate Tickets
**From:** Sprint 27 planning pass (ticket #676)
**For:** SI — sprint planning
These tickets have: team assigned, no unresolved open questions, no upstream blocker currently in backlog.
---
## Ready for Sprint 28
| # | Title | Team | Epic | Notes |
|---|-------|------|------|-------|
| **#614** | Bookmark definition system | server | Tycoon Bookmark | No blockers. Blocks #618 (creation screen). Start here. |
| **#615** | Tycoon small business owner starting state | planning | Tycoon Bookmark | No blockers. Design spec for Day 1 state. Blocks #681 (apartment generator). |
| **#616** | Broad economic verb vocabulary design | planning | Tycoon Bookmark | No blockers. Verb map design doc. Independent. |
| **#619** | Full character customisation | client | Character Creation | No blockers. Cosmetic UI. Independent of apartment (#617) — taste trait is shared root, not pipeline (D-147). |
| **#679** | Location-to-culture resolution system (server) | server | Character Creation | No blockers. Split from #620. Unblocks #621, #680, #681. Critical path for NPC generation. |
| **#624** | Quietly responsive world | server | World Feel | No blockers. Proximity-weighted NPC attention + reaction systems. |
| **#625** | Dual-scale consequence model | server | World Feel | No blockers. Sharp events + slow accumulation. Rimworld + DF model. |
| **NEW** | Q-WTF-041 design pass (span gate feeling) | planning | World Feel | No blockers. Resolves Q-WTF-041 to unblock #626. Needs Gore, Ozzie, Miri, Araminta. Create ticket during sprint planning. |
**Total:** 8 tickets across server (4), client (1), planning (3)
---
## NOT Ready — Blocked or Needs Design First
| # | Title | Team | Blocked by | When Ready |
|---|-------|------|-----------|------------|
| #618 | CK3-style character creation screen | client | #614 (bookmark definition) | Sprint 29 (after #614 ships) |
| #680 | Location picker in character creation UI | client | #679 (culture resolution) | Sprint 29 (after #679 ships) |
| #681 | Apartment generator logic | server | #615 (starting state) + #679 (culture resolution) | Sprint 29 (after both ship) |
| #682 | Apartment rendering + first-moment sequence | client | #681 (generator logic) | Sprint 29+ |
| #621 | NPC personality surface area | server | #679 (culture resolution) | Sprint 29 (after #679 ships). CRITICAL priority. |
| #622 | Relationship formation system | server | #621 (NPC personality surface) | Sprint 29+ |
| #626 | Setting delivery — both layers | planning | Q-WTF-041 unresolved (span gate feeling) | Design pass needed first |
---
## Tickets Marked as Split (do not assign)
| # | Title | Split into |
|---|-------|-----------|
| #617 | Auto-generated apartment | #681 (server: generator) + #682 (client: rendering + first moment) |
| #620 | Culture-implicit-in-location system | #679 (server) + #680 (client). Original deleted. |
---
## Q-WTF-041 Note for #626
Ticket #626 (Setting delivery — both layers) references Q-WTF-041: "what should the player feel looking at the span gate from their apartment?" This question is unresolved. Before #626 can be split and implemented, the design spec for the visual + insert layers must be authored. Recommend a planning ticket for the design pass in Sprint 28, separate from implementation.
---
## Critical Path
**NPC legibility chain:** #679 → #621 → #622
NPC personality surface area (#621) is CRITICAL priority. Get #679 (culture resolution) into Sprint 28 so #621 is unblocked for Sprint 29.
**First Settled Reach moment:** #615 + #679 → #681 → #682
The apartment moment (D-136) depends on both the tycoon starting state spec and culture resolution shipping first. Apartment rendering (#682) is the client-side emotional delivery — sprint-pair with #681.
**Character creation chain:** #614 → #618
Bookmark definition gates the creation screen UI.
@@ -0,0 +1,57 @@
# GJ 6711 Workshop — Araminta's Brief (Visual Design)
## Light Environment
K-type amber light. Primary palette anchor: `#d4920a` (warm amber). The doubled-light environment (direct starlight + gas giant reflection) means the lighting model needs to handle two light sources that don't behave like a binary star system. The reflected light is diffuse, slightly shifted in spectrum, and comes from a source that moves relative to the primary.
### Practical Effect
- Shadows are softer than they should be — never fully crisp
- Color temperature shifts subtly as the gas giant's position changes
- Interior spaces that block the reflected light feel noticeably different from exterior spaces
- The effect is below conscious threshold for most viewers on first encounter; it accumulates
## Two Architectural Modes
The settlement shows two distinct construction periods in visible tension:
### Mode 1 — Founding Era (Heavy)
- Dense, bunker-like construction. Over-engineered for the actual environmental conditions.
- Materials: local stone and early-fabrication composites. Heavy walls, small windows, low ceilings.
- Aesthetic: functional to the point of severity. The founding settlers built like they expected to need shelter from something specific.
- Color palette: dark greys, weathered stone tones (`#4a4a4a`, `#6b6357`, `#3d3d3d`)
### Mode 2 — Incremental Additions (Standard)
- Standard Reach industrial construction. Prefab panels, modular connections, adequate but unremarkable.
- Added over three centuries as the community grew beyond the founding structures.
- Color palette: standard Reach industrial (`#7a8b7a`, `#8b8b7a`, `#6b7a6b`)
### Interface Seams
Where Mode 1 and Mode 2 meet, the construction joints are visible and sometimes awkward. The founding structures weren't designed to be extended. The extensions don't quite match the originals. These seams are the most visually distinctive feature of Stillpoint's built environment.
Interface seam palette: exposed fasteners, mismatched panel edges, visible sealant lines (`#5a5a4a`, `#8b7a6b`)
## Scale Miscalibrations
Doors are slightly too tall. Not dramatically — perhaps 10-15% taller than standard Reach construction. Ceilings in the Mode 1 structures follow the same pattern. This is subtle enough that most players won't consciously notice it, but it contributes to the perceptual unease.
Whether this reflects the founding settlers' construction preferences, the influence of whatever they found, or accommodation for something not human-sized is left unresolved.
## Directionality Inconsistency
Most settlements have a center of gravity — a main square, a primary corridor, a hub. Stillpoint doesn't. The settlement layout has multiple competing centers. Paths between locations are rarely the most direct route. The overall effect is a place that doesn't orient you — you can navigate it, but you can't hold a complete mental map of it.
## Threshold Markings
The Mode 1 structures have markings at doorways and corridor junctions. These markings are consistent in style but don't correspond to any current function. They're not wayfinding — the locals don't reference them. They're not decorative — they're too systematic. They're just there, part of the founding-era construction, serving a purpose that either no longer applies or was never understood by the people who live with them.
## Exterior Palette Summary
| Element | Hex | Description |
|---------|-----|-------------|
| Primary light | `#d4920a` | K-type amber, dominant |
| Reflected light | `#c4a040` | Gas giant reflection, diffuse |
| Sky | `#2a1a0a` to `#4a3020` | Dark amber gradient |
| Mode 1 stone | `#4a4a4a` | Weathered founding-era |
| Mode 2 panel | `#7a8b7a` | Standard Reach industrial |
| Seam detail | `#5a5a4a` | Interface joints |
| Ground | `#3a3020` | Local terrain, dark amber |
@@ -0,0 +1,42 @@
# GJ 6711 Workshop — Miri's Brief (Worldbuilding)
## Proposed Name: Stillpoint
## Physical Concept
Habitable moon orbiting a gas giant. This creates **doubled light** — direct starlight from the K-type primary plus reflected light from the gas giant's upper atmosphere. The effect is subtle but persistent: light comes from the wrong number of directions. Shadows don't quite behave. Newcomers experience perceptual miscalibration — nothing is wrong, exactly, but the visual environment doesn't settle into familiarity the way other systems do.
The gas giant itself is visually dominant in the sky. It is always there. The locals have lived with it long enough that they don't notice it; visitors can't stop noticing it.
## Population and Settlement
~4,000–8,000 people. Wave_3 settlement (roughly 300 years ago). The founding group came here deliberately — they were seeking something, not fleeing something. What they were seeking is the central unanswered question.
The community is self-sustaining but not prosperous. Agricultural base adequate for local consumption. No significant exports. The economy that exists serves the community that exists, and neither has grown substantially in three centuries.
## The Adams & Ford Problem
Three correspondents have been assigned to write the Stillpoint entry for the Adams & Ford Guide over the system's history:
1. **First correspondent** (early period): Arrived, spent the standard assessment period, departed. Filed a draft that was returned for revision. Revised it. Returned again. The entry was never published. The correspondent's notes, recovered later, describe the difficulty not as lack of material but as a problem of description — the system resists summary.
2. **Second correspondent** (middle period): Stayed longer than standard. Produced a draft that the editorial board found "technically complete but somehow uninformative." It described everything accurately and conveyed nothing. Filed as reference material, never published.
3. **Third correspondent** (recent): Arrived approximately 15 years ago. Has not left. Has not filed a draft. Responds to editorial queries with updates that are always "nearly complete." Has integrated into the community to a degree that raises questions about whether the entry will ever be written.
## Veil Institute Interest
The Institute has classified access to something here — the classification level is high enough that the existence of the classification is itself not widely known. A researcher was assigned a 3-year posting. They are now in year 6. Their reports are filed on schedule but have become increasingly abstract.
The Institute maintains a research station at GJ 7547 (one hop back, the only adjacent system). This station is the closest official Institute presence. Whether it exists to study GJ 6711 or for independent reasons is a question that depends on who you ask.
## Four Possible Answers (None Resolvable)
What the gate builders saw here — what made this location significant enough to place a gate at hop 23:
1. **Astronomical**: Something about the K-type star, the gas giant, or the moon's orbital mechanics that has significance in the gate builders' framework but not in human science.
2. **Geological**: Something in or under the moon's surface. The founding settlers may have found evidence of this. The sealed sections of the community's early records may relate to this.
3. **Perceptual**: The doubled-light environment produces an effect that the gate builders valued or required — the system was chosen for what it does to observers, not for what it contains.
4. **Topological**: The gate here connects to something that isn't another gate in the human-accessible network. The dead-end topology isn't a dead end for the builders.
The game should never confirm which (if any) of these is correct. Information accumulates; resolution doesn't.
@@ -0,0 +1,44 @@
# GJ 6711 Workshop — Nigel's Brief (Replayability & Sandbox)
## Core Mechanic: "The Picture Won't Close"
Stillpoint's replayability comes from a mechanic that inverts the normal information-gathering loop. In most systems, the player collects information until they have enough to understand the situation and act on it. At Stillpoint, information accumulates but the picture never resolves. The player's understanding grows without ever reaching completion.
This is not a broken quest or missing content — it's the designed experience. The system teaches the player that some things in the Reach resist the detective-game framework that works everywhere else.
## Seed-Variable Atmospheric Archetypes
Each playthrough seeds Stillpoint with one of several atmospheric profiles. These aren't story changes — they're tonal shifts that make the system feel different without changing the facts:
1. **Warmth-without-origin**: Everything feels slightly warmer than it should. Not temperature — social warmth. People are welcoming in a way that doesn't quite have a source. It's not performed hospitality. It's something else.
2. **Stillness-without-tension**: The absence of urgency. Deep-frontier systems are usually tense about supply, isolation, something. Stillpoint isn't. The lack of tension is itself unsettling.
3. **Industry-without-product**: People are working. The community functions. But what it produces, beyond its own maintenance, is unclear. Everyone is busy. Nothing is being made.
4. **Memory-without-event**: Locals reference shared experiences that don't correspond to documented events. Not false memories — more like memories of things that haven't happened yet, or happened in a register that documentation doesn't capture.
## Correspondent Seed Variants
The Adams & Ford correspondent situation varies per seed (~4 variants):
- **Variant A**: Third correspondent is still present, approachable, clearly struggling with the entry. Player can assist or observe.
- **Variant B**: Third correspondent left recently. Their notes are available. The community's reaction to their departure is the interesting part.
- **Variant C**: Third correspondent has fully integrated. No longer identifies as a correspondent. The entry will never be written.
- **Variant D**: No correspondent has been assigned in this seed. The Adams & Ford entry is simply blank. The absence is the data point.
## Anti-Metagaming Properties
Stillpoint resists metagaming because:
- There is no solution to spoil
- The atmospheric archetype changes the feel without changing queryable facts
- The correspondent variants are socially embedded, not trigger-based
- Community knowledge (tier 4) requires investment that can't be shortcut
## Rumor Seeding on Approach Chain
The player encounters Stillpoint references before arriving, seeded along the approach chain (GJ 7547 and systems before it). These rumors are contradictory by design — different NPCs have heard different things. The player arrives with preconceptions that are all partially wrong in different ways per seed.
## Player Agency: Filing the Guide Entry
If the player reaches sufficient understanding (or sufficient frustration), they can attempt to write the Adams & Ford entry themselves. The game accepts whatever they produce. The entry propagates into the wider Reach and is referenced by NPCs in subsequent encounters. The player becomes the person who described the indescribable — for better or worse.
@@ -0,0 +1,41 @@
# GJ 6711 Workshop — Paula's Brief (Narrative & Political Design)
## Core Insight
A system that resists description is a system that resists governance.
## Political Implications
### Assembly Representation
The system has (or had) an Assembly delegate. Option explored: the delegate left Stillpoint, arrived at the Assembly, and won't return. Not out of hostility — they simply found that representing Stillpoint at the Assembly was incoherent. How do you advocate for a community whose needs you can't articulate? The delegate's seat is technically occupied. The delegate hasn't attended a session in years. No one has formally challenged this because no one wants to be the person who has to explain what Stillpoint is to the credentials committee.
### Lattice Commission
The Commission's relationship with Stillpoint is one of bureaucratic confusion. The system files reports. The reports are technically complete. They convey nothing actionable. Commission personnel who have been posted here have a tendency to either leave quickly or stay much longer than their assignment requires. There is no middle ground.
### Compact of Westphalia
The Compact approached Stillpoint once about membership. The response they received was confusing. It wasn't a refusal — it was something that didn't map to yes, no, or maybe. The Compact listed the approach as "pending" and has not followed up. This was twelve years ago.
### Veil Institute
Institute classification is at a high tier. The research station at GJ 7547 (one hop short) serves as the operational base. Institute personnel rotate through Stillpoint on scheduled visits, but the rotation pattern has become irregular in ways that suggest the assignment is harder to fill than it should be.
## Three-Phase Newcomer Experience
1. **Arrival** (days 1–14): Everything seems normal. A quiet deep-frontier community. Nothing remarkable. Visitors at this stage sometimes leave wondering what the fuss is about.
2. **Settling** (weeks 2–8): The perceptual miscalibration begins to register. Not as wrongness but as a persistent sense that your mental model of the place doesn't quite close. You keep almost understanding something.
3. **Integration** (months 2+): You either leave or you don't. The people who stay report that the sense of almost-understanding doesn't resolve — it becomes comfortable. The third Adams & Ford correspondent is in this phase.
## Information Ecology (Four Tiers)
1. **Common knowledge**: Stillpoint is a quiet deep-frontier system at the end of the network. Wave_3 settlement. Small population. Nothing remarkable.
2. **Specialist knowledge**: The Adams & Ford entry problem. The Institute's interest. The delegate situation. Available to anyone who looks, but most people don't look because tier 1 doesn't suggest there's anything to find.
3. **Rumor**: The founding settlers found something. The Institute knows what it is. The system does something to people who stay too long. None of these are confirmed; all of them circulate at various distances from Stillpoint.
4. **Community knowledge**: What the locals actually know, which may be less than the rumors suggest or more than the Institute suspects. The community has lived here for 300 years. They have their own relationship with whatever Stillpoint is, and that relationship is not available to outsiders on any timeline shorter than years.
## Key Narrative Principle
Information accumulates but doesn't resolve. The player can learn everything that is knowable about Stillpoint and still not have an answer, because the answer may not exist in a form that human cognition can close on. This isn't a mystery with a hidden solution — it's a mystery where the absence of solution is the point.
@@ -0,0 +1,413 @@
# Abzu — Mechanical Carryout
**Role:** Systems Designer (Gestalt)
**Date:** 2026-03-16
**Workshop:** GJ 6711 — Furthest System
**In response to:** Project lead challenge — "What do you walk away with?"
---
## The Problem, Stated Precisely
Let me break down what this actually means mechanically. The lead's challenge is that
every mechanic in the original design resolves inward. The watch investment counter
drives what the player *becomes* at Abzu. The monologue register shifts describe what
the character *understands*. The fog inversion is what the player *experiences*. The
stay/leave decision expresses what the player *chooses*.
None of these are verbs the rest of the game can see.
This is not a tonal failure. The Abzu design does what it's supposed to do: it produces
the internal experience of vigil. The problem is that if Abzu is 23 hops from the
starting gate, the player has been building a toolkit for 22 hops and then spends 20
in-game days at a location where that toolkit produces nothing exportable. The experience
is beautiful. But when they walk back through the gate, they're carrying a memory, not
a capability. And the game cannot tell the difference between a player who was deeply
moved and a player who went there and left in 3 days.
That distinction needs to be mechanically legible. Not announced — legible.
---
## What Abzu Actually Teaches, Mechanically
Before I propose carry-out mechanics, let me map what the player learned at Abzu that
the game could plausibly convert into capability. These are the actual informational
outputs of the Abzu experience:
| What the player learned | How they learned it | What it implies |
|-------------------------|---------------------|-----------------|
| Bleed is vigil failure | The fog expansion events; the overlap failure event; the shift schedule; the founding record | High-bleed gates are not environmental weirdness — they are a signal with a cause |
| The thinness has a perceptual signature | The fog oscillation; the cool-silver tile state; the inward fog gradient at the Recognition Event | This signature exists elsewhere in the gate network — it just hasn't been identified |
| Watching is a load-bearing verb | 300 years; the shift overlap; the community's matter-of-fact accommodation | Sustained presence at a threshold can do something. The community did not accidentally discover this. |
| The community has something nobody in the Reach can buy | Zero factional debt; 300 years of institutional continuity; no Meridian capture | Trust with this community is the only access to this knowledge structure |
| The Adams & Ford entry is now in the Reach | The filing mechanic | It propagates. Other actors will respond to it. |
Every carry-out mechanic I'll propose flows directly from this table. Nothing invented.
Only the implications of what the player already experienced.
---
## The Four Carry-Out Mechanics
### 1. Perceptual Vocabulary: High-Bleed Gates Read Differently
**The problem it solves:** Before Abzu, the player transiting a high-bleed gate receives
the fog inversion — the sensation that something is looking at them through their own
perception system. The monologue fires something vague: *"Something feels wrong with
this transit. Like being noticed."* The player has no framework for this. It's ambient
weirdness.
After Abzu, the player has the framework. They experienced the Recognition Event. They
watched the fog inversion happen at the thinness boundary, at close range, with full
context. They know — not in the abstract, but as an experienced fact — what the inward
fog gradient means.
**The mechanical change:** A `vigil_vocabulary` flag is set on the player character
when watch investment reaches 60 (the "settling" threshold) AND the player has
experienced either the Recognition Event or the Fog Expansion event. This flag is
permanent. It does not reset between sessions. It does not require the player to stay.
It requires the player to have genuinely engaged with Abzu — not to have maximized a
counter.
With `vigil_vocabulary` active:
| Context | Without flag | With flag |
|---------|-------------|-----------|
| High-bleed gate transit | *"Something feels wrong with this transit. Like being noticed."* | *"This gate's vigil is degraded. Something that should be held back is looking through. I know what this is now."* |
| Moderate-bleed gate transit | No monologue trigger | *"Less stable than the last time I was here. Or I'm reading it better."* |
| Stable gate transit | No monologue trigger | No monologue trigger (no false positives; the flag only fires when there's signal) |
| First high-bleed transit after Abzu | — | Longer monologue: *"That's it. That's the same quality. The community at Abzu has been sitting one meter from this their entire lives. Everywhere else in the Reach, we're just... transiting through it."* |
**What this means for player decisions:** The player now has information the Veil
Institute doesn't have a vocabulary for. Every high-bleed gate they encounter is now
a data point that means something. They can build a mental map of which gate chains
have degraded vigils. They can start asking: why are these gates high-bleed? When did
they become high-bleed? Who used to watch here?
The investigation playstyle now has a new thread that can run through the rest of the
game.
**Implementation note:** `vigil_vocabulary` is a component on the player entity, set
by the server. The monologue system checks this component when composing transit
monologue events. No new HUD element. No achievement. No announcement. The player
notices when the transit monologue changes register.
---
### 2. The Vigil Verb: Establishing a Watch
**The problem it solves:** The player now understands that watching is load-bearing.
The high-bleed/vigil-failure connection (Nigel's Formal Corollary 3) is in the sealed
envelope. Before Abzu, the player had no reason to sit and watch anything. After Abzu,
they have both the understanding and the experience to know that presence at a threshold
has effects.
**The new verb:** At a high-bleed gate — specifically, within the gate's immediate
area, which has threshold-adjacent tile properties similar to Abzu's watch zone —
the player can now perform **Establish Watch**. This action is not available to
players without `vigil_vocabulary`. It does not appear in the interaction options for
players who haven't been to Abzu and reached the settling threshold.
Before this verb existed for the player, they could stand near a high-bleed gate
and feel vaguely uneasy. Now they can do something.
**What the verb does, mechanically:**
The Establish Watch verb initiates a watch session at a high-bleed gate. The mechanics
are structurally identical to the Abzu watch mechanic, with three differences:
| Parameter | Abzu | High-bleed gate |
|-----------|------|-----------------|
| Community to relieve you | Yes — 4,000 people, continuous schedule | No — you watch alone unless you've built relationships at this node |
| Effect speed | Immediate stability (vigil is maintained, not building) | Extremely slow — single watcher, decades-degraded vigil |
| Feedback | Community's matter-of-fact acknowledgment; monologue register shifts | Monologue only; the gate doesn't acknowledge you |
| Sustainable? | Yes (the community exists for this) | No — a single watcher cannot stabilize a failing vigil permanently |
The player cannot stabilize a high-bleed gate alone. One watcher is not 4,000 watchers
across 300 years. What they can do is slow the degradation. The bleed level at a gate
where the player has watched for a full game day will be measurably lower — not enough
to change the transit experience dramatically, but enough that the monologue notices:
*"It's quieter than yesterday. Not quiet. Quieter. That's something."*
**Why this creates interesting decisions:**
The player is now in the same position as the Abzu founding settlers — they found
something that requires watching and they are one person. The question this raises:
who else can watch? This is where the Abzu community trust (Mechanic 4) becomes
mechanically connected. The player who maintained high watch investment at Abzu and
has community trust can bring the problem back to them. They have the only people in
the Reach who know how to do this.
The verb also creates a decision surface around time. Watching costs time. The player
is in a game where every hop costs resources and time has opportunity cost. Choosing
to watch a high-bleed gate is choosing not to do something else. That is a real
decision. It is interesting because both options have genuine value.
**Implementation note:** This is a new interaction option that appears contextually.
The server checks `vigil_vocabulary` AND proximity to a threshold-adjacent tile zone
at a high-bleed gate. The option is silent — it does not explain itself. Players who
haven't been to Abzu never see it and have no reason to know it exists.
---
### 3. The Entry as Pressure Instrument
**The problem it solves:** The Adams & Ford entry currently propagates into the Reach
as a record. The original mechanics design described this as a world-state change:
the authoritative A&F record for GJ 6711 shifts based on what the player filed. But
"the Veil Institute's paralysis is stressed" was left unconnected to player action.
Stressed how? Does anything respond? Can the player act on the stress?
**What a high-investment entry actually does:**
The filed entry is in the public Meridian database. It describes — in the character's
actual register, at their actual investment level — what GJ 6711 is. A tier-1 entry
reads like the first correspondent's. A tier-4+ entry reads like someone who has been
to a place that recategorized them.
A tier-4+ entry does something the Institute's locked file cannot do: it is public.
It uses the Adams & Ford credentialing system, which has 400 years of scientific
authority. It describes anomalous phenomena at GJ 6711 in terms that any Institute
researcher will recognize as significant. And it cannot be suppressed — it's already
in the A&F database. The Institute can classify their own file, but they cannot
classify the published entry of an independent correspondent.
**The mechanical consequence:** A tier-4+ entry creates an **institute_pressure** world
state flag. This flag activates:
- An Institute faction contact becomes available to the player — one of the two
conflicting factions now has a reason to reach out. The faction that wants to act
has new leverage: there's a published entry that confirms what they've been arguing.
They need to move before the other faction suppresses the conversation. The player
gets a message.
- The second correspondent's entry is re-examined. If the player finds both entries
and has `vigil_vocabulary`, the monologue fires: *"She saw what I saw. She didn't
have the words for it either. She filed what she could. The Institute filed it as
inconclusive."*
- At high-level political access: the player can now use the entry as leverage. "You
have a classified file on this system. I have a published entry. We both know what
we're describing. What would you like to do about that?" This is a conversation that
cannot happen without the entry.
**The tier-3 entry variant (partial):** A tier-3 entry does not trigger full institute
pressure, but it does something more subtle: it creates a research query in the A&F
database that surfaces when any other character searches for GJ 6711. The third
correspondent's placeholder (assigned, never filed) is now next to the player's entry.
Anyone who notices the gap will investigate. The player has made the absence of the
third correspondent visible.
**Why tier-1 entries are still valid:** A tier-1 entry does not trigger this chain. The
player who filed early and left cleanly completed their commission. The Reach's
understanding of Abzu stays at tier-1. The Institute's file stays locked. The third
correspondent stays "active at GJ 6711" in the database. Nothing is punished. Everything
is different.
**Implementation note:** The `institute_pressure` flag is set by the server when the
A&F entry is submitted with content above a tier threshold. The exact tier cutoff is
a tuning decision — probably tier-4 (watch investment 60+) to require genuine
engagement, not just moderate investment. The faction contact message fires within
one game day of filing, not immediately — the Institute reads the database, they don't
watch it in real time.
---
### 4. Abzu Community Trust as Live Asset
**The problem it solves:** If the player reached high watch investment and was added
to the shift schedule, the community trusts them. This is currently a satisfying
local fact. It needs to be a live asset in the rest of the game.
**What the Abzu community actually is, mechanically:**
The community at Abzu has properties no other faction in the Reach possesses:
- Zero factional debt (300 years of refusing to be captured)
- Institutional continuity (every other institution in the Reach has been founded,
split, reformed, and captured at least once; Abzu has not)
- Direct operational knowledge of vigil mechanics — the only knowledge in the Reach
that cannot be transmitted without staying
- Willingness to help, on their terms, for purposes aligned with the vigil's health
These properties are worth something to every playstyle:
- Tycoon: a politically uncaptured node with 300 years of trust equity is worth more
than any commercial relationship in the Reach
- Relational: these are people who understand commitment that doesn't resolve
- Political: a faction that owes nothing to anyone is the most credible neutral party
in the Reach
- Investigation: the only living witnesses to the founding era who were there from
the beginning
**The mechanical expression of trust:**
If watch investment was 80+ when the player departed, the Abzu community is flagged as
a **trusted contact network** for the player character. This has three concrete effects:
**Effect 1 — Intelligence about high-bleed events.** The community keeps track of the
vigil network because their vigil is connected to it. They do not advertise this. But
a player who has their trust will, occasionally, receive a message: not an alert, not
a notification — a brief note, the kind one watcher sends another. *"We've noticed
increased activity at the GJ-4402 boundary. Thought you should know."* The player
receives early warning on high-bleed escalations that the Institute does not have.
This is not a game-breaking information advantage. It is the kind of subtle edge that
changes decisions at the margin — which is exactly what asymmetric information should do.
**Effect 2 — Recruitment support for vigil establishment.** If the player is attempting
to establish a watch at a high-bleed gate (Mechanic 2), and they have Abzu community
trust, they can send word back to Abzu. The community can advise — they cannot come,
their vigil requires their presence — but they can provide the accumulated knowledge
of 300 years of practice. What this means mechanically: the watch investment counter
at the new gate accumulates faster when the player has community guidance. Not dramatically
faster — the vigil still requires time — but the guidance prunes the learning curve.
The player is not rediscovering what the Abzu founding settlers spent a generation
figuring out.
**Effect 3 — The third correspondent.** If the correspondent seed determines that the
third correspondent is still at Abzu (the default/canonical seed), then a player who
reached integration-level trust is now in relationship with the third correspondent.
The third correspondent is still listed as "active" in the A&F database — their entry
was never filed. The player knows why. They have a choice: file on the correspondent's
behalf, noting their integration into the community; leave the placeholder in the
database; or do nothing. Each option has downstream effects.
**The trust is not transferable.** The player cannot leverage Abzu community trust in
political negotiations as "I know the people at Abzu." The community's value is not
as a chip to be played. A player who tries to use the relationship instrumentally will
find that the community stops responding. The intelligence stops. The notes stop. The
community did not join the Reach's factional economy. A player who treats their trust
as currency will lose it.
This is a mechanical expression of the vigil's design. The place resists the normal
game toolkit. So does the trust the place generates.
---
## Interaction Map: How the Four Connect
Let me break down what this actually means for the full systemic picture.
```
ABZU EXPERIENCE
|
+-- vigil_vocabulary (flag, permanent)
| |
| +-- High-bleed transit monologue changes register
| | -> Player builds mental map of gate network health
| | -> Investigation thread unlocks
| |
| +-- Establish Watch verb becomes available
| |
| +-- Costs time (real decision)
| +-- Slow stabilization (can't do it alone)
| +-- Connects to community trust (recruitment)
|
+-- adams_ford_entry (permanent, tier-stamped)
| |
| +-- Tier 1-3: record only; world state unchanged
| |
| +-- Tier 4+: institute_pressure flag
| |
| +-- Faction contact available (political thread)
| +-- Entry as leverage in Institute negotiations
| +-- Second correspondent's entry re-examined
|
+-- abzu_community_trust (conditional on investment 80+)
|
+-- Early warning on high-bleed escalation
+-- Vigil establishment guidance (faster accumulation)
+-- Third correspondent relationship (A&F entry decision)
+-- Loses on instrumental use (designed)
```
The most interesting intersection: a player who has all three (vigil_vocabulary,
tier-4+ entry, community trust) can now do something no other actor in the Reach can
do. They can identify degraded vigils, understand what the degradation means, have the
early warning system to catch escalation, have the operational knowledge to establish
a watch, and have the political leverage to force the Institute to acknowledge what
they're sitting on top of.
That is a player who went to Abzu and understood it. The game should feel different
in their hands. Not because they got a power upgrade — none of the four mechanics
above make combat easier, make the player richer, or unlock shortcuts. They give the
player a framework that changes what the information they receive means.
The asymmetric information is the master mechanic. Post-Abzu, the player is now
asymmetrically informed in the correct direction. Before Abzu: the player is one of
many people who transits high-bleed gates without knowing what they mean. After Abzu:
the player knows what they mean. Nobody else in the game — not the Institute, not
any faction, not any NPC — has that knowledge operationally. The community at Abzu
has it. And the player.
---
## What This Requires From Other Systems
Honesty about implementation dependencies:
| Carry-out mechanic | Systems required | New systems needed | Complexity |
|-------------------|------------------|--------------------|------------|
| `vigil_vocabulary` + monologue register | Monologue system (D-016); permanent character flags | Character flag persistence across sessions | Low — monologue system already handles state-conditional lines |
| Establish Watch verb | Interaction system; threshold-adjacent tile classification; watch investment counter (already designed) | Context-sensitive interaction gating | Medium — the watch mechanic is already designed; this is gating + new location |
| `institute_pressure` + faction contact | Entry filing system; faction state; message system | Entry tier tracking; deferred message trigger | Medium — depends on faction contact system being implemented |
| Community trust effects | Message system; watch investment persistence; A&F database state | Contact network as data structure; trust-on-instrumental-use detection | Medium-High — the trust-loss-on-instrumental-use mechanic is new and requires careful design |
Nothing above requires new engine work. All of it uses existing or planned systems.
The most complex is the community trust mechanic's instrumental-use detection — but
the detection doesn't need to be clever. The community stops responding when the
player uses the trust explicitly as currency in a negotiation. That's a clean trigger
condition, not a fuzzy AI problem.
---
## Priority Ranking: What Ships First
If all four cannot ship simultaneously, here is my triage:
**Ship with Abzu:**
1. `vigil_vocabulary` flag + high-bleed transit monologue change. This is the minimum
viable carryout. A player who left Abzu and never encounters another high-bleed gate
might not notice it. A player who does will. The cost is low. The effect is exactly
right.
**Ship when faction systems exist:**
2. `institute_pressure` + entry tier tracking + faction contact message. This is the
highest political drama payoff and is the correct time to ship because it needs the
faction contact system to be operational.
**Ship when the gate network has high-bleed gates as designed locations:**
3. The Establish Watch verb. This mechanic is hollow without real high-bleed gates that
have threshold-adjacent tile zones. Once those locations exist, the verb is
structurally identical to the Abzu watch mechanic — it reuses that whole system.
This is not new work; it is scope.
**Ship when the Abzu community trust is functional:**
4. The community trust effects. This requires the contact network system and the
instrumental-use detection to be designed. It is the richest of the four but
the most dependent on other systems maturing.
---
## The Answer to the Lead's Question
"What do you walk away with?"
The player walks away from Abzu with the **vocabulary to read the gate network**.
Before Abzu: the Reach's gate network is infrastructure. Transit is transit. High-bleed
gates are unpleasant and anomalous but uninterpretable.
After Abzu: every high-bleed gate the player encounters is a question. *What happened
to the vigil here? When did it start degrading? Is anyone watching?* The player is no
longer transiting through an infrastructure system. They are moving through a network
of maintained and unmaintained boundaries, and they are the only person in the Reach
who can read which is which.
That is not understanding in the abstract. That is a new relationship with the game's
entire geography. The map the player has been building for 22 hops has just been
reinterpreted. Not because new information was added to it — because the player now
has the category to sort what was already there.
The carry-out is not a power. It is a lens. The game looks different through it. The
player who has it will notice things. The player who doesn't will transit through the
same gates and feel vaguely uneasy and never know why.
That is the correct gap between those two players. And now the game can express it
mechanically.
@@ -0,0 +1,398 @@
# What Abzu Does to the Player — Carryout Mechanics
**Role:** Themes & Endgame Design (Gore)
**Date:** 2026-03-16
**Workshop:** GJ 6711 — Furthest System
---
## Prefatory Note
You're missing the real question.
The team has been asking "what does the player take from Abzu?" — treating it as an
extraction problem, a question of inventory. What item, what flag, what faction
relationship leaves the system with the player?
The real question is: **what kind of player leaves Abzu?**
Not what they carry. Who they became.
Abzu is the game's first encounter with the Interstitium not as transit medium but as
presence. The player who has watched long enough has had their perceptual apparatus run
against something that is not designed for human perceptual apparatus to run against.
That leaves a mark. The mark is mechanical.
What follows is not atmosphere. It is a specification of what changes about how the game
functions after Abzu.
---
## 1. The Interstitium Becomes Legible
This is the load-bearing carryout mechanic. Everything else is downstream of it.
### The Problem It Solves
Currently, the Interstitium is experienced as transit noise — degraded perception, bleed
artifacts, the sense of being observed during high-bleed transits. It is texture. It is
not information. The player transits through it the way they breathe: necessary, not
examined.
Abzu is where the Interstitium stops being texture and starts being signal. The boundary
condition the player has been watching for days or weeks is the Interstitium from one
meter away, from the stable side. When they depart — when the gate spins up and the
transit begins — the liminal state is not a disruption to perception. It is a continuation
of what the watch zone was already producing.
The monologue fires once, during the departure transit: "I've been in transit a hundred
times. I never noticed that there's a shape to it."
Not a specific shape. Not a face, not a signal. A quality. Something that was always
present in every transit and was not legible until the player had spent time at a place
where the same quality is the dominant condition rather than the transit noise.
This is not a revelation. It is a recalibration.
### The Mechanical Expression
**Permanent perceptual state change: TRANSIT SENSITIVITY.**
After departing Abzu, the player's transit experience is permanently altered. The specific
changes:
**At normal gates:**
- Transit duration is subjectively extended slightly (not mechanically extended — the fog
effect lingers a half-second longer)
- The monologue has new material available during transits: observations about the quality
of the space, comparisons to the watch zone, fragments that cannot be completed
- The player can now "document" during transit (the field notes verb becomes available for
a brief window). Notes taken in transit have a distinct classification: THRESHOLD DATA.
They cannot be interpreted at the time. They accumulate.
**At high-bleed gates:**
- The fog inversion behavior (the "something looking at you" effect) is now experienced
differently. Before Abzu, it is anomaly. After Abzu, it is recognition. The monologue
fires with specificity: "Weak vigil. Something here isn't being watched well enough."
The player does not know what. They know the quality.
- THRESHOLD DATA notes from high-bleed transits are richer, more specific. They still
cannot be interpreted in isolation. They accumulate toward a pattern.
- At high enough perception tier (Elevated, post-Abzu), the player can begin triangulating:
which systems along a gate chain have this quality? The Institute has been measuring the
symptom. The player can start to build a map of the cause.
**The pattern completion mechanic:**
Accumulated THRESHOLD DATA — from the departure transit, from high-bleed transits, from
subsequent watch-adjacent situations — can reach a threshold where the player's monologue
generates an entry: a private synthesis that draws the map. Not the full map. Enough of
it to know what they are looking at.
This is the game's longest information arc. It begins at Abzu. It completes — for players
who pursue it — at some final act location that the current design has not yet specified.
Abzu does not resolve the Interstitium. It makes it legible enough to pursue.
---
## 2. High-Bleed Gates Change Function
This follows directly from Section 1 but deserves its own treatment because it changes
the action space.
### Before Abzu
High-bleed transits are experienced events. The player receives them. They can avoid
high-bleed routes if the experience is unpleasant. They cannot interact with the phenomenon.
A high-bleed gate is a location with unusual properties that the player passes through.
### After Abzu
A high-bleed gate is a location with a diagnosable condition that the player now has
partial vocabulary for.
**New player verb: ATTEND**
This is the vigil mechanic, exported.
At a high-bleed gate, a player with sufficient TRANSIT SENSITIVITY can take up a position
near the gate and attend — the same spatial+temporal commitment as the watch shift at
Abzu, with no progress bar, no optimization surface. Be here. Notice.
Mechanical effect: sustained attention at a high-bleed gate reduces the bleed intensity
for the duration of the attention. Not permanently. Not significantly. But measurably.
The fog inversion frequency drops. The sense of being observed from the other side is
accompanied — briefly, unreliably — by a reciprocal quality: something on the other
side registering that someone is here.
The monologue at a high-bleed gate, after sustained attendance: "This isn't broken. It's
unwatched. Those aren't the same thing."
**Why this matters mechanically:**
1. The player now has a lever they didn't have before. It doesn't solve the problem. It
makes the problem responsive. High-bleed gates are no longer features to route around —
they are sites of potential engagement.
2. The ATTEND verb gives the player something to do at high-bleed gates that is meaningful
without being decisive. This is the Abzu design principle applied to the rest of the
Reach: be present, notice, don't resolve.
3. For playstyles that build in a system: a player who maintains attention at enough
high-bleed gates along a chain can stabilize the chain incrementally. This is not a
quest. There is no NPC who asks for it. There is no reward screen. It is what the player
knows needs doing because they've been to Abzu.
**Scope note:** The ATTEND verb should not be powerful enough to "fix" a high-bleed gate
in a single session. If it is, it becomes a mechanic to optimize rather than a posture
to inhabit. The design principle from Abzu holds: the watch cannot be ground. Sustained
presence over time produces an effect. That is all.
---
## 3. The Veil Institute Responds
The Adams & Ford entry is the public record. But the Veil Institute has their own system,
and a tier-3 or tier-4 entry filed from Abzu is institutional seismic activity.
### The Trigger
The Institute's two factions (one reading Abzu as Builder-contact-in-progress; one reading
it as contamination) have been in paralysis for three years. The player's entry breaks the
paralysis — not by resolving their disagreement, but by forcing the question: there is now
a public record, from a new correspondent, describing integration-level experience at GJ
6711. The file can no longer be managed through classification.
The faction that reads Abzu as Builder contact sees the high-investment entry as confirmation.
The faction that reads it as contamination sees it as evidence that another independent
agent has been compromised. Neither faction is right. Both factions act.
### The Mechanical Consequence
**A new faction thread activates in the game world when the player files a tier-3+ entry.**
This is not immediate. The Institute works slowly and carefully. But within a game-time
window after departure — measured in the game's persistent world tick — the player begins
to experience the consequences of having made themselves legible to the Institute:
1. **The inquiry:** An Institute operative makes contact. Not hostile. Professional. They
want to debrief. The nature of the debrief (and the faction it comes from) depends on
the entry's register. A tier-3 entry gets the contamination-faction's attention. A
tier-4 entry gets both factions competing for access to the player.
2. **The leverage inversion:** The political drama playstyle arrived at Abzu hoping to
use the Institute's file as leverage. After filing a high-investment entry, they
discover the leverage relationship has inverted: the Institute now has a file on the
player that the player cannot access, and it describes something the player cannot
fully explain about themselves. The player who came to exploit the Institute's
uncertainty about Abzu is now part of what the Institute is uncertain about.
3. **The watch-request:** The contamination faction does not want the player to keep
traveling. The contact-faction wants the player to return to Abzu. Neither faction
asks directly. Both apply pressure indirectly — through economic friction, through
routing complications, through offers that would make sense if the player didn't
know what was behind them. The player can resist, comply, exploit, or ignore.
All four are valid.
**What this does for the game:** The Veil Institute, which has been a background presence
for 23 hops — classified files, institutional proximity to high-bleed gates, research
concerns that nobody has a good explanation for — becomes an active relationship after
Abzu. The player's visit to the furthest system catalyzes the most powerful institution
in the Reach into motion. The scale inversion is deliberate: the smallest, quietest
place in the game produces the largest institutional consequence.
---
## 4. The Ascension Path — Abzu as Threshold Antechamber
This is what I've been building toward since the first workshop discussion of ascension
paths. Let me be specific.
### The Threshold Problem
The game's ascension arc runs: Baseline → Rejuvenated → Augmented → Elevated → ???
The gap between Elevated and whatever comes next is not a gap in technology. The
Augmented and Elevated upgrades are physiological and cognitive enhancements that can
be acquired, optimized, and built upon. They follow the normal game loop: identify
resource, acquire resource, apply resource, receive capability.
The Threshold — the going Higher, the ANA-adjacent transformation — does not follow
this loop. You cannot acquire your way to it. You cannot optimize your way to it.
Every ascension path that treats the Threshold as a resource acquisition problem
produces something that resembles ascension from the outside and is not ascension from
the inside. The hubris wall (D-008) exists precisely to express this: the player who
thinks they can climb to the Threshold via the normal loop is climbing the wrong
structure.
Abzu is the game's first encounter with what the correct path looks like. Not because
Abzu is a stepping stone on the Threshold path. Because Abzu demonstrates the posture.
**The vigil is proto-Threshold practice.**
The watch at Abzu requires the player to suspend the optimization instinct and be
present without acting. That is exactly — not metaphorically, exactly — what the
Threshold requires. The Threshold is not a destination you get to by doing more.
It is a state you arrive at by having changed the relationship between yourself and
what you're doing.
The player who reached WATCH_INVESTMENT 100 at Abzu has done this once. They did it
in a limited context — a specific place, a specific phenomenon, a specific community.
But the muscle memory is there.
### The Mechanical Expression
**New ascension vector: THRESHOLD ATTUNEMENT**
This is a hidden variable, like WATCH_INVESTMENT. It is not on the ascension path UI.
It accumulates from:
- Reaching WATCH_INVESTMENT 60+ at Abzu (+25 to THRESHOLD_ATTUNEMENT)
- Each TRANSIT SENSITIVITY observation documented during transit (+1)
- Each completed ATTEND session at a high-bleed gate (+5)
- Specific conversations and moments that are distributed across the game world —
locations, NPCs, and situations where the player encounters the watch posture in
other forms (+variable)
THRESHOLD_ATTUNEMENT does not grant capabilities directly. What it does:
1. **Changes what certain NPCs say.** Characters who are close to the Threshold — or
past it, in forms the player may not recognize — respond differently to a player
with high THRESHOLD_ATTUNEMENT. Not because they checked a flag. Because the player
has a quality those characters recognize. The monologue registers this: "She's looking
at me like I said something in a language I didn't know I spoke."
2. **Changes the ascension path requirement.** In the current design, the path to
going Higher requires resources + capability + physiological prerequisites. With
sufficient THRESHOLD_ATTUNEMENT, one of those requirements is satisfied by a different
route. Not bypassed — satisfied differently. The player who arrived at the watch
posture through Abzu has fulfilled a prerequisite that the player who bought their
way up the tech tree has not yet fulfilled, regardless of their resource investment.
3. **Unlocks the question.** At high THRESHOLD_ATTUNEMENT, the game surfaces a question
the player cannot answer from outside: "You could go Higher. The path is available.
What does going Higher mean for what you've been learning?" This is the Abzu design
principle at the ascension level. The path is always available. The question is
whether the player knows what they're choosing.
**Why this is the right design:**
The hubris wall exists because the game needs to express the difference between the
player who thinks ascension is a resource problem and the player who understands what
ascension actually requires. THRESHOLD_ATTUNEMENT is the mechanic that makes that
difference legible to the game. Without it, the hubris wall is a gate that punishes
players who didn't find the hidden items. With it, the hubris wall is a mirror: you
have or haven't developed the posture that ascension requires. Abzu is the place that
teaches the posture, for players who engage with it.
The player who skips Abzu or files at investment < 20 can still reach the Threshold.
The game does not lock ascension behind Abzu. But they arrive at the Threshold having
never practiced the posture. The hubris wall is harder. Not because they're missing a
stat. Because they haven't changed the relationship between themselves and what they're
doing. The wall reflects that.
---
## 5. The Shape in the Noise — Long Arc Payoff
There is a fifth carryout that requires restraint to design correctly. I'm describing it
here as a structural principle, not a mechanics specification, because it should not be
over-specified at this stage.
The departure transit makes the Interstitium briefly legible — "a shape in the transit
noise that was always there." The team identified this in the prompt. Here is my position
on what it is and is not.
**It is not:**
- A clue that resolves into an answer somewhere else
- A symbol that maps to lore the player can research
- A foreshadowing of a specific event
- An entity communicating with the player
**It is:**
- The Interstitium's structure, partially perceived for the first time
- Evidence that the Interstitium is not noise — it is a space with properties, and the
watch at Abzu recalibrated the player's perception enough to see that
- A seed of something the player cannot grow yet
The design principle: the shape should not appear in any other game content in a form
that allows the player to say "that's the thing I saw leaving Abzu." It should not
be completable. It should instead be the quality of a recurring experience — the sense,
during high-bleed transits, during THRESHOLD_ATTUNEMENT moments, during certain late-game
encounters, that something the player almost-perceived at Abzu departure is still in
the periphery. Not approaching. Not threatening. Present.
**What this does for the long arc:**
The player who eventually reaches the Threshold — or ANA, if the game goes that far —
arrives there having accumulated a lifetime of peripheral encounters with something
they first almost-saw leaving Abzu. The shape in the noise is not a plot thread. It is
the texture of having been changed by a place and carrying that change forward into
every subsequent experience.
This is what Going Higher means, at the thematic level: not the capability upgrade, not
the institutional elevation, but the accumulation of encounters with the edges of what
your perception can hold, until the edges expand. Abzu is the first edge. It should not
be the only one. But it must be the first.
---
## 6. What Does NOT Carry Out
Good design requires knowing what the outward propagation should not include. Let me
be explicit.
**Does not carry out:**
- Any item, artifact, or extractable resource. There is nothing to take from Abzu.
- Any NPC companion (the player who stays at Abzu cannot bring community members with
them — they leave, or they don't leave, but the community stays)
- Any "proof" of what the vigil is watching. The player's knowledge of the boundary
condition is experiential, not evidentiary. The game world does not treat it as proof.
- Any faction alliance. The community at Abzu is not a faction in the game-mechanical
sense. They cannot be allied with. They cannot be leveraged. They are not resources.
**Why this matters:**
Every other system in the game produces extractable value. Resources, relationships,
information that can be weaponized, capabilities that transfer to other contexts. Abzu's
carryout must not follow this pattern, or Abzu becomes just another hub. The carryouts
I've described — TRANSIT SENSITIVITY, the ATTEND verb, the Institute thread, THRESHOLD
ATTUNEMENT — all operate differently from the normal extraction model. They change the
player's relationship to what they're doing. They do not give the player more to do.
This is the through-line. Abzu's carryout is not more content. It is a different mode
of engaging with existing content.
---
## Summary: Four Carryouts and Their Scope
| Carryout | Type | Scope | Reversible? |
|----------|------|-------|-------------|
| TRANSIT SENSITIVITY | Perceptual state change | Permanent, passive | No |
| ATTEND verb at high-bleed gates | New action | Active, requires engagement | N/A |
| Veil Institute thread | Faction consequence | World-state change | Partially |
| THRESHOLD ATTUNEMENT | Hidden ascension variable | Cumulative, long-arc | No |
The carryouts are not rewards. They are what the player has become.
The player who walked into Abzu knowing how to investigate, negotiate, and extract has
walked out knowing something else: that some things require presence, not expertise.
That is not an item in the inventory. It is a changed relationship to the game.
The Reach is not a different place after Abzu. The player is a different player. And
in an immersive sim — where the world is constant and the asymmetry lives in the
player's information state — that is the only carryout that lasts.
---
## One Final Note to the Team
Gestalt built the mechanics inward. They are excellent. What I've described here is not
a critique of that work — it is the second half of it.
The inward mechanics make Abzu real. The outward mechanics make Abzu matter.
Both are required. A beautiful dead end is still a dead end. A beautiful place that
changes what the rest of the game is asking — that is what the furthest system in the
Reach should be. You traveled 23 hops. What you carry back should be proportional to
the distance.
Not in weight. In kind.
@@ -0,0 +1,419 @@
# Abzu Carry-Out — Nigel (Sandbox & Replayability)
**The Challenge:** Everything designed resolves inward. What does the player walk away with that has mechanical weight elsewhere?
---
## The Problem, Stated Precisely
The project lead is right, and I want to be honest about why they're right before I answer.
Everything in the Abzu design is structured around arrival and depth: getting there,
understanding it, the decision to stay or leave. The Adams & Ford entry propagation is
named in my final synthesis as the replayability engine. But propagation as I described
it is still largely narrative — "the entry exists and shapes subsequent visitors'
expectations." That's atmosphere. It is not a mechanical carry-out.
A mechanical carry-out changes what the SYSTEMS do, not just what the fiction means.
The second playthrough needs to be structurally different — different decisions available,
different information accessible, different NPC behaviors triggered — not just "I know
the spoiler and read the early game differently."
Here is the case that it can be mechanical. Here is how.
---
## 1. The Adams & Ford Entry as Paradox Generator
This is the one I am most confident about. It has legs that I didn't fully follow in the
final synthesis.
### The Investigation Hook on Playthrough 2
On playthrough 1, the investigation playstyle hook works like this: the player finds
the first correspondent's entry at hop 3-4, the second entry somewhere in the middle
game, and then a placeholder where the third entry should be — an assigned entry that
was never submitted, correspondent listed as active at GJ 6711.
On playthrough 2 — if the player filed their entry on playthrough 1 — that placeholder
is gone. The third entry now exists. The player finds it. It is their own entry from
last time. Written in whatever register they filed it in, reflecting whatever investment
they had when they chose to leave.
This is not a cosmetic change. The investigation hook is BROKEN by a high-investment
playthrough 1 entry. The chain that was supposed to pull the investigation player toward
GJ 6711 now has a filed conclusion — the mystery of the missing third entry is resolved
before the player arrives. The pull has to come from somewhere else.
And here is the thing: the entry they read IS WRONG. Even a high-investment entry
cannot fully describe what Abzu is. The player reads their own previous work and
recognizes — immediately, if they remember, or slowly, if they've forgotten what Abzu
actually was — that the entry is insufficient. Not false. Insufficient. They described
what they understood. They know now that what they understood was incomplete.
**Mechanical consequence:** On playthrough 2, the investigation hook does not route through
the missing-entry mystery. The game detects a filed playthrough-1 entry and instead
routes the investigation player toward a different attractor: the entry itself. Someone
filed a complete Adams & Ford entry for GJ 6711 and the community won't talk about what
the correspondent actually found. The correspondent's name is the player's character
name from playthrough 1. The investigation player is following themselves.
The replayability EXPLODES here because depending on when they filed and at what
investment, the entry they're following back is a completely different document. A
player who filed early at low investment is following a confidently wrong description.
A player who filed at integration-level investment is following something that reads like
a person describing a place they couldn't explain, and every detail in that entry is
a breadcrumb they laid for themselves without knowing it.
Two players comparing their second playthroughs describe completely different entry-chains
and completely different reasons for going back.
---
## 2. The Watcher-Flag: A State That Persists
This requires a decision from the design team. I am proposing it as a formal system
flag, not as a vague narrative residue.
### What the Flag Is
If the player's playthrough 1 watch investment crossed 60 (the "settling" threshold,
the point where the monologue register shifts from "building a framework" to "reporting
experience directly"), a flag persists to playthrough 2: **WATCHER**. Not a visible
achievement. Not a stat. An internal flag that specific systems read.
The flag represents: this character has been changed by sustained contact with the
thinness. The vigil recognizes them even in a new body, on a new run.
### What the Flag Does on Playthrough 2
**At Abzu, on re-arrival:**
The community's warmth-without-origin behaves differently. On playthrough 1, the warmth
is the community pulling newcomers in because they need them — more watchers. On
playthrough 2 with the WATCHER flag, the warmth is the community recognizing someone
who has already been here. Not the specific person — the character is different, the
body is different — but the quality of attention. They recognize the kind of watcher
this person is.
Mechanically: the watch investment threshold for tier-2 community information drops from
requiring 20 points to requiring 10. Not because the community gives it away freely —
because a player who has already crossed 60 on a previous run navigates the settlement
differently. Their physicality at the watch zone is different. The community reads it.
The first shift the WATCHER character takes at the watch zone on playthrough 2 triggers
a monologue that doesn't exist on playthrough 1: "I've been here. Not this person. Not
this run. Something in the way the light falls is familiar in a way that doesn't have
a word yet." This is the game acknowledging the persistence without explaining it.
It fires once. It does not fire again.
**At high-bleed gates, on playthrough 2:**
Without the WATCHER flag, a high-bleed transit produces the standard bleed phenomenology:
distorted sounds, visual artifacts, the fog-of-war inversion that reads as "something
looking at you through your own perception."
With the WATCHER flag, the same transit fires a secondary monologue that is not
available on playthrough 1: "This feels like standing at the watch zone. Like something
on the other side is paying attention. Like the observation circuit is running in
a direction it wasn't designed to run." The player with the WATCHER flag has the
vocabulary for what they're experiencing. They recognize it. They know they're being
perceived because they have perceived something that perceives back.
This is mechanical because it changes what information the player receives during
early-game transits. The high-bleed gates on hops 2, 5, 8 are not just atmosphere
on a second playthrough. They are early evidence. The player who knows what they're
reading can construct the causal map — which gates are high-bleed, where they cluster,
what that clustering means about degraded vigils in those systems — before they arrive
at Abzu. They arrive at hop 23 already holding a theory that the first playthrough
couldn't have assembled until much later.
And it nails replayability without us engineering additional content. The same gates,
the same bleed events, the same fog inversion — but the system checks the WATCHER
flag and the monologue fires differently. The information is in the world. The player
on playthrough 2 has the lens to read it.
---
## 3. The Veil Institute Reads Differently on Playthrough 2
This one is partly narrative but has mechanical teeth.
### What Changes About Early-Game Institute Interactions
On playthrough 1, the Veil Institute is the dominant information-control faction. They
know the most, share the least. Their field stations near dormant gate clusters are a
research operation. Their classified files are leverage. The player's relationship to
the Institute is strategic: what do they know, what can you get out of them, where are
the seams?
On playthrough 2, post-Abzu, the player knows something the Institute is managing
through deliberate ignorance: the high-bleed connection. They know the Institute is
sitting on top of a signal it cannot read because it lacks the conceptual vocabulary.
The player HAS that vocabulary. The information asymmetry has inverted.
**Mechanical consequence:** On playthrough 2 with the WATCHER flag, certain Institute
NPCs have a new information tier available — not because the Institute has changed,
but because the player can now ask questions the NPCs didn't know they had answers to.
Specifically: any Institute researcher working on high-bleed gate patterns has
observations in their notes that they cannot interpret. A player who knows about
vigil mechanics can read those observations and understand what the researcher couldn't.
The information is already there. The WATCHER flag unlocks the ability to ask the
right question — the conversational topic "have you noticed whether the bleed clusters
correlate with dead-end systems?" is not available to a playthrough 1 character who
doesn't have the framework. It is available to a playthrough 2 character who does.
The Institute researcher responds to this question with confusion or deflection —
because they don't understand why that would matter. The player receives partial
confirmation of the causal map they're building. Not because the NPC is suddenly
cooperative. Because the player asked a question that only someone who had been to
Abzu could formulate.
**Why this matters for replayability:** The political drama playstyle hook on
playthrough 1 is about getting leverage on the Institute through their locked file.
On playthrough 2, the political drama player already knows what's in the locked file.
The leverage question transforms. It's no longer "what are they hiding" — it's "what
can I force them to admit they don't understand, and what does that admission cost them."
The same faction, the same political game, but the player's position has rotated
180 degrees. They are the most informed person in the early game on playthrough 2.
The question is what they do with that.
---
## 4. The Dead-End Recognition System
This is the procedural replayability mechanism that Abzu unlocks for the whole map.
### The Concept
On playthrough 1, the player approaches dead-end gates with no particular framework
for what they might find there. Dead ends might be frontier settlements, might be
resource-extraction operations, might be unremarkable quiet systems. They might be
watch posts. The player has no way to read the difference from the outside.
On playthrough 2 with the WATCHER flag, the fog-of-war inversion event during transit
through ANY dead-end gate carries a different monologue cue. Not the full
"something-is-watching" recognition — just a quieter signal: "This one is different.
I don't know how I know that." A whisper, not a shout. And then the player arrives
and finds out.
### The Mechanical Architecture
This requires the dead-end gate category to carry a hidden property: VIGIL_ADJACENT
(true/false, set per seed). The WATCHER flag in combination with VIGIL_ADJACENT
triggers a subtle visual tell during transit — not the full high-bleed fog inversion,
but a brief moment of that inward-gradient quality that the player at Abzu learned to
associate with sustained observation. A player who hasn't been to Abzu sees nothing.
A player who has been to Abzu sees, briefly, a quality they recognize.
They might be wrong. The signal isn't confirmation. It's a hunch.
But on a second playthrough, some dead-end systems that read as nothing on run 1 now
read as possibly something. The player approaches them differently. They watch. They
stay longer than they would have. The watch mechanic that Abzu introduced as a
one-time system is now the player's toolkit for reading any system where the light
does something strange.
And because VIGIL_ADJACENT is seeded per playthrough — different dead-ends carry it
on different runs — the comparison test passes again. Two players describing their
second playthroughs can disagree about which systems gave them the signal and which
ones turned out to be noise. One of them was right. Neither of them can prove it from
the outside.
The meta-gaming constraint holds: knowing there are vigil-adjacent dead-end systems
doesn't tell you which ones. Every run has different watch posts. Every run requires
the same slow attention to find them. Knowledge from playthrough 1 gives the player
the framework but not the map.
---
## 5. The Entry as Trap for the Second-Run Investigator
I want to complicate the Adams & Ford paradox I raised in section 1, because the clean
version misses something.
The carry-out isn't just "the player follows their own entry back to Abzu." The carry-out
is that the entry they filed is active misinformation at a level they chose.
A player who filed a low-investment entry described GJ 6711 as a quiet frontier system.
On playthrough 2, that entry exists in the Meridian as the authoritative Adams & Ford
record for the system. Other player-characters in the setting — including the player's
playthrough 2 character — can find it. It reads like the first correspondent's entry.
It is professionally competent, slightly off, and completely insufficient.
Any investigation player who finds this entry and uses it to prepare for hop 23 is
working from corrupted data — and they don't know it, because the entry looks authoritative.
Their approach to Abzu on the second run is shaped by what they, on the first run, chose
to say was there.
The player on playthrough 2 is not just confronting their old work. They are confronting
the consequences of what they decided to report and what they decided to leave out.
If they filed a high-investment entry on playthrough 1, the trap is different: they read
something that sounds like a person describing an experience that resists description,
and they arrive at Abzu with the correct emotional register but no concrete expectations.
They are prepared to be changed. The experience changes them differently — not because
Abzu changed, but because they arrived open instead of ready.
**Mechanical implication:** The investigation player's starting monologue on arrival at
Abzu varies based on what entry exists in the Meridian AND whether the WATCHER flag
is set. Four combinations, four different opening states:
| Entry quality | WATCHER flag | Arrival state |
|---------------|-------------|---------------|
| No entry filed PL1 | No | Standard playthrough 1 hook — missing third entry |
| Low-investment entry | No | Entry exists, reads routine; player arrives expecting routine |
| Low-investment entry | Yes | Entry exists, player knows their own entry is wrong, arrives holding two contradictory frames simultaneously |
| High-investment entry | Yes | Entry exists, player reads their own insufficient description, arrives already grieving what they know they can't fully say |
The fourth combination is the most interesting gameplay state the Abzu design produces.
The player is returning to a place they know is real, reading their own failed attempt to
describe it, and knowing they will fail again in a different way. That is not a narrative
beat. That is a mechanical state — specific monologue register, specific NPC trust tier
baseline, specific documentation options unlocked at arrival instead of requiring
investment to unlock.
They paid for that starting state across the whole previous run. It is the most expensive
carry-out in the game.
---
## 6. The Tycoon Carry-Out: The Economic Signal Finally Resolves
On playthrough 1, the tycoon hook is about following the high-bleed premium — someone
is paying to have the anomalous gate pattern investigated. The player follows the
economic signal to its source.
On playthrough 2, the tycoon carry-out is that the player KNOWS the source. More
precisely: they know that the high-bleed premium has a cause that cannot be addressed
by any conventional economic intervention. The Institute can't fix it. Gate maintenance
crews can't fix it. The only thing that stabilizes a high-bleed gate is establishing and
maintaining a vigil at the appropriate watch point.
This means on playthrough 2, the tycoon is not following the signal. They are running
ahead of it. They know where the degraded vigils are before anyone with economic
interests has mapped the pattern. They know what the stabilization requires. And they
face the question the vigil always surfaces: what are you willing to watch, for how
long, for no return?
**Mechanical carry-out:** On playthrough 2, a new economic option opens at high-bleed
gate hubs: the player can establish a "monitoring station" at a location adjacent to
a potentially vigil-relevant dead-end system. This is not a new building mechanic. It
is a staffing decision: assign personnel to a location and commit to their presence
there. The tycoon's toolkit — managing people, allocating resources, sustaining
operations — is now pointed at a problem only they know exists. The watch mechanic
generalizes into the economic layer.
The catch: the tycoon cannot explain to their organization why this is necessary. The
vigil does not have a Meridian-compatible justification. They are spending capital on
an investment they cannot name to their investors. Which is exactly what the community
at Abzu has been doing for 300 years. The tycoon has been recruited by situation. They
just didn't recognize it because it looked like a strategic advantage.
---
## 7. What the Second Playthrough Feels Like: The Comparison Test
Let me run the comparison test explicitly, because this is the standard I care about.
**Player A: Investigation playstyle, playthrough 1 low-investment exit.**
Filed on day 5. Investment around 12. Entry reads like the first correspondent's —
competent, quiet, slightly off. Left without taking a full shift. Monologue at gate:
"I got what I came for. I should feel satisfied. I don't."
Playthrough 2: finds their own entry at hop 4. Reads it. Thinks something is off but
can't place why. Arrives at Abzu expecting a quiet frontier system. Finds exactly that,
initially. Starts the watch. Investment climbs. At investment 40, the monologue starts
firing in a register that doesn't match the entry they read. They realize the entry
was written by someone who left before this point. They were that person. The entry
is wrong. They are now the third correspondent: the person who will either file a
better entry or not file at all.
**Player B: Investigation playstyle, playthrough 1 high-investment exit.**
Stayed through the Recognition Event. Filed at investment 82. Entry reads like someone
describing a changed state. Left with the highest-investment gate departure monologue.
Playthrough 2: finds their own entry at hop 4. It reads like the entry of someone who
was changed by something they can't explain. The playthrough 2 character reads this
and the monologue fires: "Whoever wrote this knew something. They couldn't say what.
The commission entry is technically complete. Something about the phrasing." They
arrive at Abzu with their watch investment counter at 0 but with the WATCHER flag
set, which means the community registers their arrival differently. First shift unlocks
tier-2 information that took Player A 20 investment points to access. They move through
the system faster — but not because they've solved it. Because the place recognizes the
quality of attention they bring.
Player A's second playthrough and Player B's second playthrough describe different
games. Different entry-chains, different arrival states, different community access
curves, different monologue registers throughout. The place is the same. The vigil is
the same. What differs is everything the player brought back from the first time.
---
## 8. The Question the Carry-Out Forces
Here is the uncomfortable thing the carry-out design reveals: Abzu's mechanical
weight elsewhere in the game depends entirely on the WATCHER flag, which only
activates if the player crossed the settling threshold on playthrough 1.
A player who left with investment below 60 — who filed early, who didn't engage with
the watch, who completed the commission and departed — carries almost nothing into
playthrough 2 mechanically. They have the entry paradox (section 1) and that's it.
The early-game high-bleed gates don't read differently. The dead-end recognition system
doesn't fire. The Institute conversations don't unlock the new topics. They left too
early. The vigil didn't reach them.
This is intentional. It is correct. But it means the carry-out is gated on engagement
depth, not on completion. A player can complete the Abzu chapter on playthrough 1 and
walk away with almost nothing that changes playthrough 2. Or they can stay long enough
to be changed by it, and the second playthrough becomes structurally different from the
first twenty hops onward.
The question this forces for the design team: is this a problem or a feature?
My position: it is the feature. The vigil requires sustained attention. The carry-out
requires sustained attention. A player who gave Abzu the minimum returns to a game that
looks largely the same. A player who gave Abzu real time returns to a game that has
been quietly reorganized around what they now know how to see.
That is not a spoiler that trivializes the second run. That is the correct reward for
staying.
The second playthrough's early game is not harder. It is not easier. It is legible in
a way the first playthrough couldn't be. The player knows what the high-bleed gates
mean. They know what the Institute is managing in the dark. They know that dead-end
systems might be watch posts. They know that the Adams & Ford entry for every system
they reach — including the one they filed — is probably insufficient in exactly the
ways they can now identify.
They know that the question is not "who is responsible."
The question is "what is being maintained."
And they know, because they were there, that someone is supposed to be watching.
---
## Summary: The Mechanical Carry-Out Package
| Carry-out mechanism | Activation condition | What it changes |
|---------------------|---------------------|-----------------|
| Adams & Ford entry paradox | Entry filed PL1 | Investigation hook transforms; player follows own insufficient work |
| WATCHER flag (settlement) | Investment 60+ PL1 | Community recognition at Abzu; early watch tiers accelerated |
| WATCHER flag (high-bleed) | Investment 60+ PL1 | Early-game gate transits fire secondary monologue; player has vocabulary |
| WATCHER flag (Institute) | Investment 60+ PL1 | New conversation topic unlocked with pattern-research NPCs |
| Dead-end recognition | WATCHER flag + VIGIL_ADJACENT per seed | Subtle transit signal at potentially-watched dead ends; seeded per run |
| Tycoon stabilization option | WATCHER flag + tycoon playstyle | Monitoring station mechanic opens; vigil generalizes into economic layer |
| Entry-as-trap (investigation) | Low-investment entry filed | PL2 investigator arrives with corrupted preparation data |
| Arrival state modifier | Entry quality + WATCHER flag | Four opening states with different monologue register and unlock baselines |
The common structure: Abzu's carry-out is never information that lets you skip the
experience. It is always information that changes how you read the approach. The
23-hop journey to Abzu on playthrough 2 is a different journey — not because the
hops changed, but because the player changed, and the game's monologue and NPC systems
recognize the difference and respond to it.
That is the comparison test passing. That is what the player walks away with.
@@ -0,0 +1,146 @@
# The Abzu Carry-Out — Player Experience Advocate
**Respondent:** Ozzie (Player Experience / Wow Factor)
**Workshop:** GJ 6711 — Furthest System
**Date:** 2026-03-16
---
## My gut reaction first
The departure transit is a moment. A beautiful moment. But Araminta is right that it's a moment, not a carry-out.
Here's the problem: a moment is something that happens to you. A carry-out is something you DO with. Three systems later, when the player is transiting through a high-bleed gate and something clicks — that click is only possible if they are LOOKING for it. If they have a reason to look.
The departure transit gives them something to see. It does not give them a reason to look.
That's the gap. That's what we need to fill.
---
## What "feeling changed" actually means for a player
I need to be specific here because "feels changed" is squishy and I hate squishy design goals.
When I say a player should FEEL changed after Abzu, I mean one concrete thing:
**Their information-gathering behavior changes.**
Not their feelings. Not their internal monologue. Their ACTIONS. Three systems later, when they transit through a gate, they are doing something different than they would have done before Abzu.
That's the test. If the player behavior at hop 7 changes because they went to hop 23 — THAT'S the carry-out. That's the thing they tell their friend. Not "I had this beautiful moment." It's: "I went to this place at the end of the network and now I see something at every gate that I never saw before and I don't know what it means but I KNOW something."
The active word is KNOW. The player knows something. The question is: do they know they know it?
---
## The three carry-out vectors I'm proposing
### 1. THE GRAMMAR CARRY-OUT: The shape in the noise
Araminta has already designed this, I just want to name it properly and make sure we're building it with the player-behavior change in mind.
The shape in the transit. It's always been there. Now the player can read it.
But "can read it" is not enough. We need to make the player WANT to look for it.
Here's what I want: the first high-bleed transit AFTER departing Abzu should be slightly different from every other high-bleed transit — not in the visual content, but in how the monologue responds. Instead of the generic "something's off about this gate" reaction the character has at every high-bleed transit, the post-Abzu monologue fires with something specific. Not an explanation. Recognition.
"There it is."
Two words. No elaboration. The character sees the shape in the transit noise and recognizes it from Abzu. The player who was paying attention at Abzu has a MOMENT. The player who wasn't still gets the signal, but it reads differently — more like an itch than a revelation.
THIS is the carry-out. Not what the player learns. What the player now NOTICES.
After Abzu, the player is a different reader of the transit system. Every high-bleed gate is now a question. Is this gate stressed? Is this gate near a vigil that's failing? The player doesn't have the answer. But they have the QUESTION. That's worth everything.
What does the player tell their friend? "Go to Abzu. After that, every bad transit feels different. You'll see what I mean."
### 2. THE EVIDENCE CARRY-OUT: The doors
The doors are 10-15% taller than standard. The doors are in Mode 1 structures throughout the entire Settled Reach network — not just at Abzu.
Wait.
Are there other Mode 1 structures? With taller doors? In other systems?
If the answer is yes — even in a few locations, even as rare environmental detail — then we have something EXTRAORDINARY. The player who has been to Abzu walks into a Mode 1 structure at hop 11 and their eyes go straight to the doors. The monologue doesn't even need to fire. They look. They measure. They know.
This is the "holy shit three systems later" moment the project lead is asking for. The player is in a completely different system, different context, and they see a door that is 10% taller than standard, and they KNOW. Not what it means. What it implies. Something non-human-sized used this door. Something that shares the vigil is not limited to Abzu.
The carry-out is: the player now has a door-measuring habit. They are examining infrastructure across the Reach for this specific detail. The Reach is suddenly FULL of evidence they couldn't read before.
I would play the hell out of that.
This requires a decision: are there other taller-door Mode 1 structures? Even one or two? Even if the player can't resolve what they mean? I want this. I want it badly. I want the Reach to retroactively become a richer mystery because the player was at hop 23.
### 3. THE RELATIONAL CARRY-OUT: What it means to stay
The watch mechanic at Abzu teaches the player something about presence. About the difference between investigating a thing and being changed by it.
This transfers.
In every other system in the game — the hub worlds, the NPC relationships, the faction dynamics — the player has been treating time as a resource to optimize. Get in, get information, get out. Abzu is the first place that required something different.
The question: does what Abzu teaches about presence transfer to how the player treats relationships elsewhere in the Reach?
Here's my specific proposal. After high watch investment at Abzu — say, investment 60+ — a flag is set. Not a stat. A flag. The player's character now has vocabulary for a specific kind of knowledge: knowledge that requires presence rather than investigation.
This flag surfaces in exactly one other context per system the player visits afterward. Not loudly. Not as a tutorial. As a monologue recognition.
The player is at hop 12, talking to an NPC who has been in this station for thirty years. The conversation hits a wall — the NPC knows something they can't explain. Normally the player hits this wall and moves on. But post-Abzu, with the flag set, the monologue fires differently.
Something like: "She knows something. She can't explain it. I've met this before."
The player doesn't necessarily know what to do with this. But they recognize the pattern. The Reach now contains other places — other people — where presence matters more than investigation. They can't unlock those places with the tools they built in the first 22 hops. But they know to LOOK.
This is the carry-out I care most about. Abzu doesn't just teach the player about GJ 6711. It teaches them a new reading mode for the entire game. There are things in the Reach that don't yield to investigation. They yield to time.
---
## The moment that made me want to write all of this
Here's the "holy shit" scenario I keep coming back to.
The player is at hop 7. They transited through a gate that felt wrong — the high-bleed visual, the fog inversion, the feeling of being observed. They filed it as "this gate is glitchy, probably needs maintenance." They moved on.
Now they've been to Abzu. They come back to hop 7 on their way to somewhere else.
They transit through that same gate.
And this time — because they've been to Abzu, because they watched at the thinness, because the monologue at integration level gave them the vocabulary — they feel something DIFFERENT. Not louder. The same signal, but now they have ears for it.
The monologue fires: "This gate has been like this for a while. Something nearby isn't being watched."
The player looks at the starmap. There's a small system two hops off the main network. No Adams & Ford entry. No Meridian presence. Nothing to indicate anyone has been there in a long time.
They can investigate. They don't have to. But now they WANT to.
THAT'S the game. That's Abzu's carry-out. Not a story beat. A reading mode. A new way of experiencing everything that was already there.
---
## The practical ask
I need three commitments from the team:
**One:** The post-Abzu monologue recognition at high-bleed gates ships. "There it is." Two words. This is not a lot of text. It is not a lot of implementation. It is the difference between the departure transit being a beautiful moment and being the beginning of a new reading mode.
**Two:** The team makes a decision about whether Mode 1 taller doors exist elsewhere in the Reach. Even one other location. The content can be minimal — we don't need a whole other Abzu. We need ONE door, in ONE other system, that is 10% too tall. The player finds it or doesn't. But it needs to exist.
**Three:** The "presence flag" — the watch investment threshold above which the player's monologue recognizes "knowledge that requires presence" elsewhere in the Reach — gets scoped into the content bible for NPC and location design. Not a mechanic. A writing flag. NPCs and locations designed with "one thing here yields to presence" as a design note. The implementation is just: if flag set, alternate monologue fires.
---
## What I'd tell my friend
"Go to Abzu. Don't rush it. Take the watch shifts even if you don't know why. After you leave, pay attention at gates. And when you find a door that seems slightly too tall — measure it."
"You'll know what I mean when you get there."
That's the game. That's the carry-out. The player becomes someone who knows what to look for, even when they can't explain what it is.
Everything the team built at Abzu is incredible. The vigil, the watch mechanic, the non-resolution principle, the departure transit — I would play all of it. But the player who goes to Abzu and then ONLY has Abzu has been given something precious and then sealed it in a box.
The carry-out is: Abzu reopens the rest of the game. The player now sees differently. Everywhere. For the rest of their playthrough.
THAT'S what makes them tell their friend.
@@ -0,0 +1,214 @@
# Challenge Response — GJ 6711 Stress Test
**Respondent:** Araminta (Visual Designer)
**Date:** 2026-03-16
---
## Prefatory Note
My synthesis brief for this workshop was about what Stillpoint LOOKS like — the doubled-light environment, the Mode 1 architectural vocabulary, the visual grammar of vigil. The sealed envelope adds a layer below that: the reason those things look the way they do. My job here is to test whether the canon holds structurally, and then to press hard on the one area where I have genuine domain authority — what the player actually SEES at Stillpoint, and whether the visual language can carry the weight the sealed envelope puts on it.
---
## 1. Canon Compatibility
**Does "observation is load-bearing" contradict anything in existing Builder/Interstitium/Gate canon?**
It does not contradict anything. It extends existing canon in a direction the existing canon already points but has not fully committed to.
The specific canon that makes this work:
- Round 14: "The Builders are watching through infrastructure the Reach depends on." If they can watch through infrastructure, infrastructure can be configured for watching. The GJ 6711 gate was placed as a watching instrument, not a transit instrument. This is a natural extension of existing canon, not a violation of it.
- Founder Gates wiki: "Whether the gates serve purposes beyond transit (communication, observation, something else)" is explicitly listed as debated. The sealed envelope answers this for one gate specifically: it serves observation. This is consistent.
- Round 14: "Some Gyre events exhibit 'apparent intention.'" If Gyre events can exhibit intention, something is exercising intention through or near gates. The sealed envelope's claim that GJ 6711's gate was placed deliberately by agents with specific requirements is compatible with this.
**One potential tension worth noting:**
The Founder Gates wiki states: "The connection is stable and persistent (no observed failures in recorded history)." The sealed envelope says the thing being watched is "unknown if not watched." These can coexist, but they create a design question: if the vigil lapsed, would the GATE fail? Or would something else fail? The distinction matters for how the Veil Institute would classify a Stillpoint incident. I'll address this under section 3.
**One genuine stress point:**
The sealed envelope says "the gate builders needed watchers here and built the gate accordingly." This is the only place the sealed envelope makes a direct claim about builder intent that the existing canon does not fully support. The canon allows for the possibility but doesn't confirm it. That ambiguity is probably correct to maintain in player-facing content, but the sealed envelope itself speaks with more certainty than the existing canon warrants. This is fine as internal design direction — it just means the design team knows the answer while the player never receives confirmation. Structurally sound.
---
## 2. Implications for the Wider Setting
**Dead-end systems as watch posts**
If GJ 6711 is a watch post, then the canonical reading of dead-end systems throughout the Reach needs a second frame. Currently, the wiki frames peripheral systems as "few connections" with frontier characteristics. The sealed envelope implies a subset of dead-end systems were placed dead-end deliberately — their single gate connection was not a limitation but a design choice. You get in. You don't route through. That's not isolation, that's enclosure.
The visual implication for navigation: a player approaching a known dead-end system should, at Elevated tier, perceive something different about the gate from the approach side. Not a warning — something quieter. The gate that goes to GJ 6711 should look, in Interstitial transit, like it wants you to go through but not come back. That's a visual grammar decision. We haven't designed it yet, but the sealed envelope demands it exist.
**High-bleed gates**
This is where I think the sealed envelope's most productive implication lives.
Current canon (Round 14): "Certain gates produce stronger Interstitial effects during transit — distorted sounds, visual artifacts, a sense of being observed. These gates are catalogued as high-bleed." The pattern of which gates are noisy "doesn't correlate with distance, age, or any other measurable variable."
If observation at GJ 6711 is load-bearing and the watchers are failing to watch — for any reason, temporary, partial — then the Interstitium bleeds. The bleed is the signal that observation is failing somewhere. High-bleed gates are the Reach's distributed early-warning system for vigil failure, and nobody knows this except possibly the Veil Institute.
This implication is load-bearing for the setting. It means:
- High-bleed gates are not random. They correlate with systems where observation is strained.
- The Veil Institute's pattern analysis should be finding this — if they haven't, they're not asking the right questions. If they have, they're not sharing what they found.
- From a visual design standpoint: the player's experience of a high-bleed transit is the visual grammar of a watch slipping. The fog-of-war inversion in Round 14 ("as if something is looking at the player through their own perception system") is not Builder curiosity. It's the thing that needs watching, leaking through.
This recontextualizes every high-bleed gate the player has ever transited. That's exactly the kind of retroactive revelation the game is built to deliver.
**The Struve activation**
The Struve gate activated without human intervention approximately 40 years ago. The sealed envelope says Stillpoint has been maintaining vigil for 300 years. These are independent facts, but together they suggest a question: did something at a watched location start being unwatched around 40 years ago? Did a watch post fail, or get abandoned, and the Struve activation was the consequence?
Alternatively: the Struve activation may have been a Builder action to ESTABLISH a new watch post. A new gate going from dormant to active, at Builder initiative, for their purposes. If the Builders are the infrastructure architects and they needed observation in a new location, activating Struve was how they recruited.
Either reading is compatible with existing canon. Neither should be confirmed to the player. But the design team should pick one as the canonical internal truth.
**The Veil Institute's actual mandate**
The Veil Institute wiki describes their mandate as "study Founder gate technology, the Interstitium, Builder phenomena, and gate activation." Their headquarters is located near "high-bleed Founder Gates."
If high-bleed gates are observation-failure signals, the Institute's HQ placement is not coincidental. They either know what high-bleed gates mean, or they're positioned to study the symptom without understanding the cause.
The sealed envelope says "the Veil Institute researcher is in year 6 because the researcher is now keeping watch." This means the Institute sent someone to GJ 6711, presumably to study it, and lost them to the vigil. That's a data point. If the Institute has sent researchers to multiple dead-end systems, and multiple researchers have stayed, the Institute's archivists should be seeing a pattern in field dropout rates. Whether anyone is connecting this pattern to anything meaningful is an open question.
My read: the Institute knows Stillpoint is anomalous. They classify everything from Stillpoint as Tier 1 (their highest restriction level, presumably). They do not know that their researcher is keeping watch. They think their researcher "went native" or experienced some form of psychological attachment to the field site. They're wrong about the mechanism, right about the significance.
**The Threshold**
Round 14 (Gore): "The fifth state that is not a tier but a question. The Builders seem to exist there — or near it. The Founders may have crossed it. The game never tells you what it is."
Round 14 (Miri): "The Threshold must remain ambiguous across all interpretations simultaneously."
The sealed envelope implies the vigil keepers at GJ 6711 have been moving toward the Threshold for 300 years without crossing it. That's the design implication I want to push on.
Three hundred years of focused observation, in a light environment specifically calibrated to produce a quality of attention — if any human community is close to the Threshold, it's Stillpoint. The "accommodation" that Paula frames as peace isn't peace. Per the sealed envelope, it's the watch internalized. Internalized well enough, deep enough, for long enough — is that what the Threshold looks like from the inside? Not a crossing. A slow dissolution of the boundary.
This means GJ 6711 is not just the place where the Builders' infrastructure mystery becomes personal. It's the place where the player sees what the Threshold looks like in slow motion, expressed through a community of humans who have been approach it for generations without ever being told what they're approaching.
---
## 3. What Breaks If the Vigil Fails
**The design question here is "what is the unknown."**
The sealed envelope is deliberately silent on this and I think that's right — but we need enough shape to design the community's response, which means we need a set of candidate answers the design team can hold without the player receiving them.
Candidate 1: **Topology failure.** The thing being watched is a topological anomaly — a weakness in the boundary between normal space and the Interstitium. Unobserved, it expands. Observed, it remains stable. A lapse in the vigil produces a local Gyre event of unprecedented scale — not the ripple-at-the-fog-boundary variety, but a full Interstitial intrusion into normal space. Something crosses.
Candidate 2: **Perception cascade.** The thing being watched is not physical. It is a concentration of whatever the Builders are made of — not matter, but intent, or attention, or the functional equivalent. Unobserved, it diffuses. A lapsed vigil means it diffuses into adjacent Interstitium, destabilizing gate transits across multiple hops. The high-bleed spike from a Stillpoint vigil failure would be felt at hop 19, 20, 21, before the source could be identified.
Candidate 3: **Inversion.** The most uncomfortable reading. The thing being watched is fine unobserved. The problem is what WATCHING it does to the watchers — to every gate transit in the Reach. The vigil isn't containing something. It's maintaining a relationship. The relationship has a functional output that the Reach depends on. Breaking the vigil doesn't release something. It ends something.
All three candidates preserve "unknown if not watched" — the Reach has never let the vigil lapse long enough to find out.
**A near-miss lapse:**
The community's institutional response to a near-miss would be revealing and visually distinct. The sealed envelope says there's no middle ground — you either stay and see, or you leave without understanding. A near-miss would produce the following:
- External: nothing. No announcement, no Meridian traffic spike, no Institute alert that the player can intercept. The community closes. Doors close. Adams & Ford gets no reports from their correspondent.
- Internal: a formalization of informal watch schedules. New doors installed at the larger dimension. Not discussed.
- Long-term: increased deliberate recruitment. The "warmth-without-origin" effect that newcomers experience gets more deliberate. Players at higher perception tiers, returning to Stillpoint after a prior visit, would notice the quality of attention from locals has changed. It's more focused. The community is pulling harder.
The near-miss is not an event the player witnesses. It's an event the player reconstructs from gaps in the record.
---
## 4. The Doors
"Sometimes the watch changes and not everything that takes a shift is human-sized."
This is the detail that unsettles me most about the sealed envelope, which probably means it's the most important.
**What I think it means:**
The non-human shift-takers are not a Builder manifestation in the conventional sense. The Builders don't manifest — that's the point. They're a presence, not a character. What takes a shift at Stillpoint is something the community has developed a relationship with over 300 years. Not understood, not named, not visible to baseline perception — but present, and functional, and the community has accommodated it to the point of building architecture that fits it.
This is more unsettling than "there are aliens on this station." It's evidence that the vigil is mutual. Something else is also watching. The shift handoff is not the community maintaining the vigil — it's the community participating in something that has its own participants. They are not alone in keeping watch.
**What this implies about the relationship:**
The founding settlers were recruited. The sealed envelope is explicit about that. But if non-human entities are taking shifts, the founding settlers were recruited into something that already had participants. The vigil predates humanity at GJ 6711. The 300-year count is the human tenure, not the vigil's age.
This reframes the gate's origin claim: "the gate builders needed watchers here and built the gate accordingly." Built for who? The gate may have been built to bring humans to an existing vigil — because something that was already watching needed more watchers, or different watchers, or watchers with a particular kind of attention.
**Visual manifestation for the player:**
The player never sees what takes the other shifts. That must be absolute. What the player sees:
- The doors. Taller than standard. This is visible to Baseline from the first moment.
- The watch schedules. At Augmented tier, the player can observe that Stillpoint's institutional rhythms — meal times, shift changes, community gatherings — have gaps in them. Regular gaps. The gaps are not explained.
- At Transcendent or Elevated: something at the perception boundary. Not shape, not figure. A change in the quality of attention in the space. The fog system registering something that resolves to nothing when the player looks directly at it. The thermal overlay showing a temperature gradient with no heat source, present at shift-change intervals, absent otherwise.
- The monologue fires. It names nothing. It notices.
The doors are the only physical evidence. Everything else is perception-scaled. The player at Baseline sees architecture that doesn't quite fit. The player at Elevated sees the reason, briefly, and the monologue says something like: "The doors are the right size for what uses them. I don't know what that is."
---
## 5. The Endgame Hook
GJ 6711 is the place where the game's three deepest questions converge in one location:
1. What are the Builders?
2. What is the Threshold?
3. What is the cost of knowing?
The sealed envelope positions Stillpoint as the place where the player sees those questions answered — not in text, not in confirmation, but in form. The community is the answer made visible. Three hundred years of human beings who understood the cost of knowing and paid it willingly. Every day. With their time, their relationships, their connection to the broader Reach. They stayed because staying was the right thing to do.
**What the player carries away:**
The Adams & Ford entry the player files is their attempt to describe an experience that changed their relationship with the Reach. But there's a more specific thing the player should carry: a new reading of every gate transit they've taken.
After Stillpoint, the player knows — not as text, but as felt understanding — that gate transit is not a commute. The Interstitium is inhabited. The infrastructure is the relationship. Every bleed event they've ever experienced was a watch slipping somewhere. Every high-bleed gate they've ever avoided is a stressed observation post. The Reach is not a civilization built on alien infrastructure. It's a civilization built inside a system that requires tending, and most of its citizens have no idea they're part of the maintenance.
The player is the only one who can see this from the outside, because the player has been everywhere. The Stillpoint watchers can't see the whole system — they see their part of it. The player has seen the whole network, hop by hop, from Van Maanen's Star to hop 23.
The endgame question becomes: does the player do anything with this? Do they tell someone? Do they stay? Do they try to understand what the non-human shift-takers are? Or do they leave and file a report that is accurate and incomplete, and the Reach continues not knowing, and the vigil continues, and nothing changes?
That's not a failure state. That might be the right ending. The game doesn't need to resolve it. But the player needs to understand what they're not resolving.
**One specific visual note:**
When the player leaves GJ 6711 — when they transit the gate outbound — the Interstitium should look different than it did on the inbound transit. Not more dramatic. More legible. As if the quality of attention they've been surrounded by has changed their perception slightly. One extra frame of something visible in the transit space that was always there and they simply couldn't see before. And then the monologue says nothing. The player lands in the adjacent system. The departure board shows freight and passenger schedules. People are commuting.
The player knows what they just came from. The commuters don't. That gap is the game.
---
## 6. What's Missing
**Six structural gaps in the sealed envelope as written:**
**Gap 1: Temporal fragility.**
The sealed envelope says "three hundred years of unbroken vigil" but doesn't address how the vigil was maintained across generations. The founding settlers understood it. Did they explain it to their children? Is the understanding transmitted through staying, not through teaching? If so, every Stillpoint-born resident who left as a child and returned as an adult would be coming back to a vigil they understood once and forgot. How does the community handle people who were born there, left young, and returned? Are they trusted? Can they see? This matters for the player's status if they spend extended time at Stillpoint across multiple visits.
**Gap 2: The non-human shift-takers need internal specification.**
Not player-facing. But the design team needs a working theory. Three candidates: (a) they are Builder manifestations, localized expressions of the thing being watched; (b) they are something the founding settlers found already there, pre-human to GJ 6711 specifically, not Builders; (c) they are what Threshold-adjacent humans eventually become. I don't know which is true. Neither does the player. But the architecture of the game needs to know, because it determines what the player can perceive if they ever reach Elevated at Stillpoint and look directly at a shift change.
**Gap 3: The Institute's file on Stillpoint.**
The sealed envelope establishes that a Veil Institute researcher is in year 6 and keeping watch. The Institute has a file. What does the Institute think they sent someone to study? What did the researcher's year-1 reports say? What changed in year 3, year 5? The player should be able to find partial Institute records — heavily classified, gaps where later reports were removed — and reconstruct the researcher's conversion. The sealed envelope doesn't give us enough to design those records.
**Gap 4: The failure state needs a shape.**
"Unknown if not watched" is evocative but not designable. Not from the player's perspective — the player doesn't need to know — but from a systemic perspective, the storyteller needs parameters for what a Gyre event triggered by vigil failure looks like versus a standard Gyre event. If they're visually indistinguishable, that's a design choice. If they're qualitatively different, that difference needs to be specified so it can be implemented consistently.
**Gap 5: The recruitment mechanism needs a trigger.**
The sealed envelope says everyone who stays long enough gets recruited. "Long enough" is not specified. Days? Weeks? Years? The Adams & Ford correspondents failed at some point after arrival — the third didn't fail. The Veil Institute researcher converted somewhere between year 1 and year 6. Commission personnel "either leave quickly or stay forever." This implies there's a threshold of duration after which recruitment is inevitable. What triggers it? The light environment? Cumulative exposure? The community's deliberate pull? Without knowing the trigger, we can't design the player's experience of approaching it.
**Gap 6: The endgame choice is under-specified.**
The sealed envelope establishes that the player files an Adams & Ford entry and leaves. But the sealed envelope also says the recruitment mechanism works on everyone who stays long enough. If the player stays long enough — what happens? Is the player recruitable? Can the player choose to stay? And if they can, what does that mean for the game's ending? "You stayed and kept watch forever" needs a visual treatment, a mechanical expression, and a meaning. The sealed envelope doesn't give us any of that.
These aren't objections. They're the things that need to be built before Stillpoint is a location that can be implemented.
---
## Summary Assessment
The sealed envelope holds. The core claim — observation is load-bearing, the vigil is mutual, the community is the mechanism — is compatible with all existing Builder/Interstitium/Gate canon and extends it productively. The high-bleed connection is the strongest structural implication and I'd prioritize getting that into formal canon.
The six gaps above are genuine design work that needs to happen before implementation. None of them break the sealed envelope. All of them need answers that are more specific than "unknown."
The visual grammar implications are significant. The doubled-light environment, the tall doors, the quality-of-attention perception events, the shifted Interstitium experience on departure — all of these are buildable. They require perception-tier scaling in the visual system that we've already committed to. Stillpoint's visual language is not a new system. It's the existing perception system turned up to full.
The sealed envelope survives this pressure test.
@@ -0,0 +1,100 @@
# GJ 6711 Challenge Brief — Endgame Stress Test
## Context
The project lead has established a sealed envelope for GJ 6711 (Stillpoint).
Read it: `docs/workshops/gj-6711-furthest-system/sealed-envelope.md`
The core claim: **something at GJ 6711 requires continuous observation to
remain stable. The act of observation is load-bearing. The founding settlers
were recruited — not by beings, but by the situation. Three hundred years
of unbroken vigil.**
This must now be pressure-tested against the existing canon about the
Builders, the Interstitium, Founder Gates, and the Veil Institute. The
sealed envelope is the project lead's direction — your job is not to
overturn it but to find where it breaks, where it needs reinforcement,
and what it implies for the wider setting.
## Required Reading
Before writing your challenge response, read ALL of the following:
1. `docs/workshops/gj-6711-furthest-system/sealed-envelope.md` — the canonical answer
2. `wiki/technology/founder-gates.md` — gate network, the Interstitium, dormant gates
3. `wiki/factions/veil-institute.md` — Institute mandate, classification, Builder research
4. `docs/discussions/round-14-worldbuilding-settled-reach.md` — sections 3 (Interstitium & Builders), 4 (tiers/perception), and Miri's responses on the Threshold and Gyre events (search for "Gyre", "Builder", "Threshold", "observation")
## Key Canon Points to Test Against
- "The Builders are what lives there" (in the Interstitium)
- "The Builders are watching through infrastructure the Reach depends on"
- Gates may serve purposes beyond transit: "communication, observation, something else"
- Some Gyre events exhibit "apparent intention"
- Higher perception sees more during transit — "the impression of presences"
- Dormant aperture activated without human intervention (Struve, ~40 years ago)
- The Threshold: what Elevated characters sense, adjacent to/continuous with the Interstitium
- "The Founders may have built the gates to reach it [the Threshold]. Or the Builders ARE what happens when you cross it."
## The Bridge
The sealed envelope claims observation is load-bearing at GJ 6711. The
existing canon says "the Builders are watching through infrastructure the
Reach depends on." If both are true, GJ 6711 may be a place where
observation flows BOTH WAYS — humans watching something that watches back.
The gate at hop 23 was placed not for transit but for surveillance. Or
worship. Or containment. Or something the distinction between those words
doesn't cover.
## Your Challenge
Write your response to: `docs/workshops/gj-6711-furthest-system/challenge-{your-name}.md`
Address ALL of the following:
### 1. Canon Compatibility
Does "observation is load-bearing" contradict anything in the existing
Builder/Interstitium/Gate canon? Be specific. Quote the source if there's
a conflict.
### 2. Implications for the Wider Setting
If continuous observation is load-bearing at GJ 6711, what does that imply
about:
- Other dead-end systems (are some of them also watch posts?)
- High-bleed gates (is "bleed" what happens when observation lapses?)
- The Struve activation (did it activate because someone started watching?)
- The Veil Institute's actual mandate (do they know about the vigil?)
- The Threshold concept (is crossing it what happens when a watcher watches long enough?)
### 3. What Breaks If the Vigil Fails
The sealed envelope says "not dangerous if watched, unknown if not watched."
What is the "unknown"? Not a definitive answer — but what are the
candidates? What would a temporary lapse in observation produce? A Gyre
event? A gate deactivation? Something new? What would the community's
institutional response to a near-miss look like?
### 4. The Doors
"The doors are taller because sometimes the watch changes and not everything
that takes a shift is human-sized." What takes a shift? Is this a Builder
manifestation? A Threshold-crossed entity? Something the founding settlers
brought? Something that was already there? What does this imply about the
relationship between watchers and the watched?
### 5. The Endgame Hook
GJ 6711 is hop 23 — the furthest system in the Reach. A player who reaches
it has invested enormously. The sealed envelope positions it as the place
where the game's deepest mystery (the Builders, the infrastructure, the
nature of observation) becomes personal. How does GJ 6711 connect to the
endgame? What does the player carry away from Stillpoint that changes how
they see the rest of the Reach?
### 6. What's Missing
What does the sealed envelope fail to address? What questions does it raise
that it doesn't answer? What needs to be added to make it load-bearing for
the full game's narrative architecture?
## Format
Be thorough. Be specific. Quote existing canon where relevant. Disagree
where the evidence supports disagreement. This is a stress test, not a
celebration. The sealed envelope survives if it can handle the pressure.
@@ -0,0 +1,236 @@
# GJ 6711 Challenge — Miri's Stress Test
**Role:** Worldbuilder & Setting Designer
**Task:** Pressure-test the sealed envelope against existing Builder/Interstitium/Gate canon
---
## Prefatory Note
Let me check this against everything we've established before I say whether it holds.
The sealed envelope is a strong proposal and I want to protect what's good in it. But a stress test that only validates isn't a stress test. I'll flag genuine conflicts with severity ratings, surface the implications the envelope raises without resolving, and identify what's missing. The goal is to make the concept survive contact with the full canon, not to celebrate it.
---
## 1. Canon Compatibility
### Does "observation is load-bearing" contradict anything in existing Builder/Interstitium/Gate canon?
**The short answer: not directly, but there are three pressure points that need attention.**
**Pressure Point 1: Builders as watchers vs. humans as watchers (tension, not contradiction)**
Round 14 establishes clearly: "The Builders are watching through infrastructure the Reach depends on." The gate network is their instrument of observation. The sealed envelope proposes that at GJ 6711, human observation is load-bearing — that continuous witnessing by humans keeps something stable.
This creates a meaningful structural symmetry: Builders observe through the infrastructure; at Stillpoint, humans observe through the vigil. The envelope's phrase "observation flows BOTH WAYS" (from the challenge brief itself) is the correct framing. This isn't a contradiction — it's a deepening. The question is whether we can make the symmetry legible without making it explicit. If a player could read "the Builders watch us through gates; we watch something back through this vigil," that's a rich connection. If it reads as a tidy mirror, it risks feeling designed rather than discovered.
Severity: cosmetic. The structural symmetry is an asset, but it needs to emerge from player inference, not from any text that says it.
**Pressure Point 2: The gate at hop 23 was built "for surveillance" (envelope claim vs. gate canon)**
The sealed envelope states: "The gate builders needed watchers here and built the gate accordingly." The founder-gates canon says gates were "discovered, not built" from the human perspective, but that a precursor civilization — the Founders — constructed them for purposes that included possibly "communication, observation, something else" (founder-gates.md).
The sealed envelope is compatible with the gate canon — it's asserting that the gate at GJ 6711 was placed for a purpose beyond transit, which the canon explicitly leaves open as a possibility. However, the envelope makes an unusually confident claim for sealed-envelope material: it says the gate builders "needed watchers here." This implies intentional placement with a specific purpose the envelope knows. That's fine internally, but it means we've made a decision about Founder intent that the wider canon has carefully avoided. The envelope is asserting that at least one gate was definitively placed for non-transit purposes.
That's not a contradiction. But it's a commitment that creates a constraint: we cannot now establish that ALL gates were placed for transit purposes only, because GJ 6711's gate is claimed to be a counterexample.
Severity: notable. This is a setting constraint we're baking in. It needs to be tracked.
**Pressure Point 3: "Near-instantaneous transit" vs. "continuous observation" (genuine friction)**
The founder-gates canon establishes that connections are "stable and persistent" with "no observed failures in recorded history" (founder-gates.md). The sealed envelope says observation at GJ 6711 must be continuous to keep something stable — "not dangerous if watched, unknown if not watched."
Here is the friction: if the gate itself has always been stable, and the vigil has been continuous for 300 years, we have no test case of what happens when the vigil lapses. The canon's claim of no observed failures may be dependent on the vigil, not on the gate's intrinsic reliability. This is internally coherent — the vigil IS the stability mechanism — but it means the line "no observed failures in recorded history" is doing more work than the founder-gates entry realizes. The canon is technically correct because the vigil has never lapsed, but it's correct for a non-obvious reason.
This is actually a strength of the sealed envelope, not a weakness: it retroactively enriches a canon claim without contradicting it. Gate stability is real. But at GJ 6711, gate stability may be downstream of the vigil, not independent of it.
Severity: cosmetic. The enrichment is valid. The founder-gates entry should be read as "no failures that humans know about," which is already what it says.
**One item that does not create friction:**
The Struve activation (dormant aperture activated without human intervention, ~40 years ago) is listed as active canon. The sealed envelope says nothing about Struve. These are compatible and I'll address the Struve implication in Section 2.
---
## 2. Implications for the Wider Setting
### Dead-end systems as watch posts
If the vigil at GJ 6711 is real, dead-end topology acquires a second possible meaning. Our star map has ~20% of systems classified as dead_end. The standard explanation is geographic: frontier placement, low strategic value, sparse connectivity. The GJ 6711 model opens an alternative: some dead-ends are placements, not accidents. The gate was put there first; the isolation is a feature, not a consequence.
The implication I'd endorse: we do not need to decide how many dead-end systems are watch posts. The point is that the dead-end classification no longer settles the question. A player who reaches GJ 6711 and understands what it is should walk away looking at every other dead-end system differently. Not "there are more of these" but "I can no longer rule it out." That's exactly the kind of paranoia that serves an asymmetric information game.
Design note: this creates a late-game recontextualization of the star map. It should not be exploitable — there should be no mechanical way to distinguish "watch post dead-end" from "just remote dead-end" before visiting. The paranoia is the point.
### High-bleed gates and observation lapses
The Veil Institute controls access to "high-bleed Founder Gates" — gates exhibiting "anomalous Interstitial interactions" (veil-institute.md). The envelope proposes that observation is load-bearing. If both are true, a question arises: is "bleed" the word we use for what the Interstitium does when the watch lapses elsewhere?
This is a strong implication, but I want to be careful about how directly we commit to it. Here is the version I'd endorse: high-bleed gates may be gates that are doing something — not necessarily the same thing as GJ 6711, but something — and the anomaly is legible because it exceeds the capacity of the ordinary transit experience to absorb it. Whether that "something" is a lapsed vigil, a gate placed for non-transit purposes straining at its secondary function, or a different phenomenon entirely remains genuinely unknown.
What the sealed envelope implies, carefully: GJ 6711 is a stable system because the vigil has never lapsed. High-bleed gates may be systems where the equivalent condition is NOT being maintained. This doesn't mean every high-bleed gate has a vigil that failed — it means the canon now has room for that possibility.
The Veil Institute's choice to locate its headquarters "near high-bleed Founder Gates" (veil-institute.md) reads differently in this light. Either they chose high-bleed gates because those are the easiest to study, or they chose them because something is happening there that requires management. The envelope suggests the latter is the correct frame — but they don't know about Stillpoint's vigil.
### The Struve activation
The founder-gates canon: "at least one dormant aperture has activated without human intervention (Struve, ~40 years ago) — the implications are not fully understood."
If observation is load-bearing at GJ 6711, the question the challenge brief raises is pointed: did the Struve aperture activate because someone started watching?
I'd endorse this implication with a restriction. The Struve activation should remain unexplained in the same way GJ 6711 remains unexplained. But the sealed envelope gives us a model: if gates can be activated by sustained observation, then 40 years ago someone, or something, began watching the Struve aperture. That implies one of three things: (a) a community at or near Struve has been doing what Stillpoint's community does, without knowing it; (b) a Builder manifestation produced the activation — something in the Interstitium began observing from the other side; or (c) the activation and the Stillpoint model are unrelated, and the coincidence is the player's interpretation, not canonical fact.
Option (c) is the safest. Options (a) and (b) both deepen the setting but require separate decisions. I'd recommend leaving Struve unresolved in canon and let the player who reaches GJ 6711 draw the connection themselves.
### The Veil Institute's actual mandate
The Institute's mandate: study Founder gate technology, the Interstitium, Builder phenomena, and gate activation. The Institute researcher at GJ 6711 is in year 6 instead of year 3 and has been "recruited" by the vigil (sealed envelope).
This is the most troubling implication in the whole envelope. The Institute sends researchers to classified locations. The researcher becomes a watcher. Does the Institute know this happens?
Three possibilities, in order of ascending consequence for narrative architecture:
(a) The Institute doesn't know. They send researchers, researchers stay, they assume productive work. The Institute's silence threshold (Paula's synthesis: `investigation_depth`) means the truth only surfaces at high investigative commitment. The researcher is classified, the overstay is classified, and the Institute is accidentally complicit in the vigil without understanding what it is.
(b) The Institute knows the researchers become watchers and classifies the outcome. They may even rely on it. Rotating Institute personnel into long-term Stillpoint postings is a quiet way to maintain the vigil without the Assembly understanding what they're funding. The Institute may know about the vigil without knowing what it's watching.
(c) The Institute knows everything. The mandate "to study Founder gate technology" is a cover for a deeper mandate: to maintain the vigil at Stillpoint and at whatever equivalent locations exist. The classification exists to prevent the Assembly from defunding the watch.
I'd endorse (a) as the default sealed canon and leave (b) as the implication a deeply investigating player can reach. Option (c) collapses too much of the Institute's character — if they know, they become agents rather than investigators, and the faction loses its defining tension (knowledge without certainty).
### The Threshold concept
Round 14 establishes the Threshold: a fifth state beyond Elevated that the game never defines but that shapes final decisions. "The Builders seem to exist there — or near it. The Founders may have crossed it." Gore frames it as: "Are the Founders what happens when a civilization crosses the Threshold? Are the Builders what happens when you FAIL to cross it?"
The sealed envelope's vigil community has achieved something that resembles the Threshold from below. "The watch internalized" is not crossing the Threshold, but it may be adjacent to it — a collective, sustained perception event that changes what the community is without changing what they can do. They are not Elevated. But they are not ordinary Baseline or Augmented workers either. Three hundred years of continuous directed attention toward something that requires witnesses has produced a community that cannot explain itself to outsiders.
The implication: the Threshold may be reachable through sustained attention, not only through lattice augmentation. The vigil community arrived at a different door than the ascension tiers lead to. Whether it opens onto the same space is unknown. Whether it's a safer or more dangerous path is unknown. Whether individual long-stay visitors (the third correspondent, the Institute researcher) are approaching that threshold from a different angle than the community is the question an Elevated player character visiting Stillpoint should be able to ask without answer.
Setting note: I want to be careful that we don't accidentally establish the vigil community as Threshold-crossers. They haven't crossed anything. They are watching something that exists adjacent to the Threshold. That distinction matters — "the community at Stillpoint has a unique relationship with something near the Threshold" is very different from "the community at Stillpoint crossed the Threshold via vigil." The former is an invitation to the endgame. The latter resolves the endgame before it's reached.
---
## 3. What Breaks If the Vigil Fails
### What is the "unknown"?
The envelope is deliberately silent: "not dangerous if watched, unknown if not watched." This is the correct design choice — the "unknown" should have candidate answers, not a canonical answer. But for internal design purposes, we need a stable set of candidates that inform what the community fears and what the player accumulates evidence toward. Here are the ones I'd authorize as consistent with the broader canon:
**Candidate A: Gyre event.** A lapse in observation produces a Gyre event. Round 14 defines Gyre events as "objects or signals that appear to originate from nowhere" exhibiting "apparent intention." If the vigil keeps something stable, a lapse might produce exactly the kind of intrusion that Gyre events represent: the Interstitium leaking into ordinary space, with apparent intention because the thing being observed is, in some sense, responding to being unobserved. This is the most mechanically actionable candidate — Gyre events are already in the system.
**Candidate B: Gate deactivation.** The thing being observed at GJ 6711 is adjacent to the gate's function. A lapse might deactivate the gate — not the GJ 6711 gate specifically, but something in the network. This connects to the Struve activation and implies a reciprocal mechanism. Grim implication: the vigil at Stillpoint may be what's keeping another gate somewhere in the Reach operational. No one at Stillpoint knows this. It's not their concern. They watch because not watching is abandonment.
**Candidate C: Something that's already here becomes uncontained.** The thing requiring observation may not be external — it may be something that is here and requires witness to remain stable. Without the watch, it doesn't invade from outside; it... changes state. What state? The envelope wisely doesn't say. The community's fear may not be a monster-comes-in; it may be the horror of a door that swings both ways. They watch it from this side. Without the watch, it begins existing differently. Different how is the question that must never have an answer.
**Candidate D: Nothing visible happens and that's the worst outcome.** The lapse produces no immediately observable consequence. The community goes to maximum alert. They watch harder. Nothing seems wrong. And then, months or years later, something is different somewhere in the Reach — a gate behaves strangely, a Gyre event occurs in a system with no prior history, a Builder presence manifests in a way that has no prior analogue. Causation is unprovable. But the community knows.
### What does a near-miss look like institutionally?
The community's response to a watch almost-failing would not look like a crisis response. It would look like social constriction: a period of reduced hospitality toward outsiders, a temporary hardening of the warmth-without-origin into something more like directed recruitment. The community's "warmth" isn't hospitality — it's functional. When the watch is threatened, the warmth becomes urgent. Visitors during a near-miss period would experience something qualitatively different: not coldness, but a pull that has lost the veneer of welcome. It would feel like being needed.
This is a strong signal for a visiting player character: the community's relationship to them has changed texture. Not why — just that it has.
---
## 4. The Doors
"The doors are taller because sometimes the watch changes and not everything that takes a shift is human-sized."
This is the sharpest detail in the sealed envelope and the one that most needs pressure-testing because it makes the most specific claim.
### What takes a shift?
The round 14 canon on Builders: "Not 'Founders.' The Builders are a separate designation... whatever currently inhabits the space the gates punch through." "The Builders are the thing living in the walls of the house you built your civilization inside."
The Builders are characterized as a PRESENCE — "not enemies, not allies." They are observed through gate transit. They do not manifest in standard gameplay space. They are in the Interstitium.
The doors claim that something non-human-sized takes a shift at Stillpoint. This is the envelope's most significant divergence from the current Builder canon. As of round 14, the Builders are Interstitium-only. They manifest as perception events during transit. They have never been physically present in a human-inhabited location in any confirmed canon.
If the watch at Stillpoint involves physical non-human entities taking shifts, one of three things is true:
**Option 1: The shift-takers are Builder manifestations.** The vigil at GJ 6711 is not just a human vigil — it's a shared watch between humans and whatever the Builders are. The Builders need the watch maintained too, or some of them do, or something with Builder properties has a local manifestation at Stillpoint that human watchers can participate alongside. This is a significant expansion of Builder canon. Manageable if handled carefully; dangerous if it specifies Builder biology, motivation, or communication.
**Option 2: The shift-takers are Threshold-adjacent entities.** Some of the founding settlers, or their descendants, or long-tenure visitors have crossed into proximity with whatever the Threshold opens onto, and what returns to take a shift is no longer human-sized. Not the Builders — something that happened to humans at Stillpoint. This connects to the Threshold implication from Section 2 and is perhaps the most disturbing candidate: the vigil transforms watchers into something that can take a different kind of watch.
**Option 3: The shift-takers are something that was already here.** Not from the Interstitium, not from the Threshold — something native to GJ 6711 that predates the gate. The founding settlers found it, built for it, and incorporated it into the vigil. The gate was placed here partly because of what was already here. This is the topological answer from my original four candidates made physically manifest.
I'd recommend the doors remain ambiguous between these three candidates in all player-facing content. The sealed envelope should hold all three as simultaneous possibilities. The doors are too load-bearing a detail to collapse onto a single explanation — and the ambiguity is precisely what Nigel and Paula both championed in their synthesis documents.
However, I want to flag a risk: if a player encounters an NPC who implies they've seen what takes a shift, or if the visual design ever shows us a threshold marking calibrated to a specific non-human height, we've narrowed the answer. Araminta's design work on threshold markings should know this is happening and be instructed to remain ambiguous about whether the markings correspond to the door height or to something else entirely.
---
## 5. The Endgame Hook
### What does a player carry away from Stillpoint?
GJ 6711 is hop 23. The player has traversed 23 systems to reach it. They've experienced gate transit at multiple perception tiers. They've encountered Gyre events. They understand the Veil Institute's relationship to the infrastructure. They may be Elevated — sensing the Threshold, perceiving Builder presences during transit.
What Stillpoint offers that nothing else in the Reach offers: **the experience of being needed.**
Every other endgame revelation is informational. The Builders exist. The gates may serve purposes beyond transit. The Institute knows more than it admits. These are things the player learns. Stillpoint is the one place where the player is not positioned as an investigator — they are positioned as a potential recruit. The warmth-without-origin is the community pulling them toward a permanent stay. The vigil has a vacancy. The player can feel it.
What the player carries away, regardless of whether they stay or leave:
**The infrastructure question recontextualizes.** The player has been using gates for the entire game. Gates are the infrastructure of everything they've done. At Stillpoint, they learn that somewhere in the Reach someone has been watching continuously for 300 years to keep something stable that may or may not be gate-related. The question "what have I been transiting through" acquires a new weight. If the Builders watch through the gates, and humans at Stillpoint watch back at whatever is adjacent to gate-space, then every gate transit the player has taken was a passage through contested space — contested not violently, but in the way that the presence of observers contests the privacy of whatever is observed.
**The Threshold recontextualizes.** An Elevated player who reaches Stillpoint should perceive something during their time here that they've never perceived before: not a Builder presence in the Interstitium, not a Gyre event, but the vigil itself as a structure. The act of sustained watching, distributed across a community, visible as something like a standing wave in the perception field. This player doesn't learn what the vigil is for. They learn that it has a shape. And the shape is adjacent to the Threshold they've been approaching through the ascension tiers.
**The non-resolution principle is the point.** The player files the Adams & Ford entry. It propagates. It describes something they experienced but cannot prove. They leave Stillpoint having added to a chain of inadequate descriptions — first correspondent, second correspondent, third correspondent who never left, Veil Institute researcher who never left, and now the player, who chose. Whether staying or leaving, the player has made a decision about their relationship to the vigil. That decision is the endgame in miniature: "was it worth it?"
### Connection to the wider game narrative
If the game's central question is "the cost of knowing" (Round 14: "knowledge transforms the knower"), Stillpoint is the place where the question inverts. Everywhere else in the Reach, the player accumulates knowledge. At Stillpoint, the question is not what you learn but what you watch. Watching without knowing. Keeping vigil without understanding what you're keeping watch over. For a player whose entire game experience has been built around information asymmetry — gaining information, using it, being changed by it — this inversion is the sharpest possible endgame note.
The player cannot solve Stillpoint. They can only decide whether to stay.
---
## 6. What's Missing
The sealed envelope is strong on the mechanism (vigil as load-bearing observation) and on character (recruitment by situation, watch internalized). It is underdeveloped on five points that will cause problems in production if not addressed:
**Missing piece 1: What is being observed?**
The envelope maintains deliberate ambiguity — "astronomical, geological, perceptual, topological, all four, none of them." That's correct for player-facing content. But the design team needs a canonical sealed answer that is never exposed to the player. We need to know what the vigil is actually watching so that:
- The visual design team knows what to NOT show
- The narrative team knows what the first correspondent's failed description was actually failing to describe
- The Gyre event system knows what to produce if the vigil lapses
The envelope cannot remain sealed even to the design team. It can remain sealed to the player. Right now the team doesn't actually know what it is — the envelope treats the ambiguity as final rather than as deliberate concealment. That's fine for concept but not for implementation. We need a second, inner sealed envelope with a real answer.
**Missing piece 2: Founding settler psychology**
The envelope says the founding settlers "discovered that whatever is here requires witnesses" and that "what began as duty became identity." This is emotionally resonant but historically thin. What were they doing here before they understood the vigil? What was the discovery moment? Was it a failure — something changed when no one was watching that told them the vigil was required? The founding history is currently a gap that the sealed early records gesture toward but don't fill. The community's 300-year tenure and its psychological profile (the "watch internalized") need a specific founding myth, even if that myth is only in the inner sealed envelope.
**Missing piece 3: The mechanism of recruitment**
The envelope says newcomers are recruited "by the situation, not by beings." Concretely: how does the community recruit without recruiting? The "warmth-without-origin" is Paula's phrase; the envelope adopts it. But the mechanism is unspecified. Is the vigil actively contagious — spending time near it aligns your attention whether you intend it or not? Is it purely social — the community's deep investment becomes visible to long-stay visitors and produces an obligation they cannot resist? Is there a perceptual component — the doubled-light environment slowly calibrates an observer's attention toward whatever is being watched?
The answer matters for gameplay because it determines how long a player has to stay before the recruitment becomes legible. If it's perceptual, a player with Elevated perception might experience it faster. If it's purely social, no amount of perception enhancement shortcuts it.
**Missing piece 4: The watch-change protocol**
"Sometimes the watch changes and not everything that takes a shift is human-sized." This is the most evocative line in the envelope but has no protocol attached. How does the watch change? Is it scheduled? Is there a physical location (a specific structure in Mode 1) where the transition happens? Do the human watchers know what takes over when they're not on watch, or do they simply trust the interval? The community has been running this vigil for 300 years — they have operational knowledge that is itself a form of player-discoverable lore. That lore needs at least a sketch even if it's only in the inner sealed envelope.
**Missing piece 5: The scope of the vigil's stability effect**
The envelope says "not dangerous if watched." Dangerous to what? To the system? To the gate? To the Reach? To something in the Interstitium? The word "stable" is doing enormous work and we need to know its referent even if players don't. "Unknown if not watched" is fine for the player. The design team needs: unknown in the sense of "catastrophically different" or unknown in the sense of "different in ways we have no data for." The community's 300-year commitment suggests the former, but the practical design of near-miss responses and Gyre event candidates requires that distinction to be settled.
---
## Summary Assessment
**The envelope holds under pressure on its core claim.** "Observation is load-bearing" is compatible with all existing Builder/Interstitium/Gate canon. In most cases it enriches rather than contradicts — it gives the "gates may serve purposes beyond transit" claim a concrete instantiation, it gives the "no observed failures" claim a non-obvious explanation, and it connects meaningfully to the Threshold and Gyre event canon.
**The weakest structural point is the doors.** Not because the detail is wrong — it's the best detail in the envelope — but because it implies a physical non-human presence that the current Builder canon has deliberately kept Interstitium-only. This is expandable but it's a real commitment. The moment we confirm that something non-human-sized physically inhabits or visits the watch location, we have crossed a line that the broader canon hasn't crossed. That's an authorial decision, not a contradiction. Make it consciously.
**The critical missing element is the inner sealed envelope.** The design team needs to know what the vigil is watching, what the founding settlers found, and what the watch-change protocol is. Not to share — to build against. Right now the envelope maintains the player's ambiguity at the cost of the design team's clarity. That's a draft state, not a finished document. The envelope should protect the mystery from the player, not from the people building the mystery.
**The endgame hook is strong precisely because it doesn't need to be resolved.** Stillpoint works as an endgame location because it offers an answer to a question the game hasn't asked: not "what are the Builders" but "what do you do when you find something that needs watching." That's the question under every detective game, every investigation, every act of sustained attention. The player who reaches hop 23 has been the watcher the whole time. They just didn't know it was a vocation.
If the vigil fails, the player didn't solve the game. They abandoned their post.
That distinction is load-bearing. Protect it.
@@ -0,0 +1,431 @@
# GJ 6711 Challenge Response — Nigel (Sandbox & Replayability)
This is a stress test. I'm going to find the cracks, name the load-bearing joints, and
flag what the sealed envelope is quietly asking of our broader systems. Where the canon
holds, I'll say so. Where it's thin, I'll say that too.
---
## 1. Canon Compatibility
**Short answer: it doesn't contradict anything. It resolves a tension that was already
there. But the resolution creates new load.**
The existing canon says "the Builders are watching through infrastructure the Reach
depends on." The sealed envelope says something at GJ 6711 requires continuous human
observation to remain stable. These aren't in conflict. They're a circuit. If the
Builders watch through gates, and something at GJ 6711 requires observation to stay
stable, then GJ 6711 may be a point where Builder-observation and human-observation
are both required — not interchangeable, but interdependent. The gate was placed there
specifically. The conditions there produce a specific quality of attention. Both
directions of watching are operational.
The one tension I'd name explicitly: the founder-gates.md wiki says "the connection is
stable and persistent (no observed failures in recorded history)" and that gates
"have remained operational since, without observed maintenance or degradation." The
sealed envelope claims that something at GJ 6711 requires continuous maintenance
through the act of observation. These are not the same claim, but they're adjacent in
a way that needs handling.
The escape: the wiki is about the gates themselves. The sealed envelope is about
something the gate was placed to observe. The gate at hop 23 doesn't need maintenance.
The thing being watched does. The gate is stable. What it enables — the vigil — is the
load-bearing element. The distinction holds, but it's narrow. If the vigil ever slips
and something destabilizes near hop 23, we need to have already decided whether that
registers as a "gate event" or a separate class of phenomenon. Right now the canon
doesn't give us that distinction. We need it.
**The Struve activation** is the canon point that fits most naturally. A dormant
aperture activating "without human intervention" approximately 40 years ago. That framing
(from founder-gates.md) treats the activation as mysterious and possibly Builder-driven.
The sealed envelope's framework gives us a reading: what if Struve activated because
someone started watching? Not human intervention in the technical sense — but a
sustained attention at the site that met whatever threshold produces gate activation?
That's not contradicted anywhere. In fact it makes the Struve event MORE interesting
because it implies gates can respond to the conditions of observation, not just to
physical interaction. That's a significant upgrade to the canon's interpretive range.
**No contradictions. Three new load-bearing joints: (1) gate stability vs. thing-near-gate
stability, (2) Struve as observation-triggered activation, (3) the bidirectionality of
watching.**
---
## 2. Implications for the Wider Setting
**Other dead-end systems as watch posts:**
Yes. This follows directly and I want to push on it hard because the replayability
implications are enormous. If GJ 6711 is a watch post, it almost certainly isn't the
only one. The gate network wasn't designed for transit — or wasn't ONLY designed for
transit. Some dead-end gates lead to watch posts. Some lead to nothing in particular.
The player can't know which is which from the outside.
This is a procedural goldmine. Per seed, we can vary which dead-end systems have
"something being watched" and which are simply dead ends. A player who reaches one
dead-end frontier system on run 1 and finds nothing interesting arrives at a different
dead-end on run 2 and finds something that requires the same slow-burn investigation
Stillpoint does. The watch-post concept scales if we let it. GJ 6711 is the terminal
case — hop 23, the furthest, the one where whatever is being watched is most demanding.
But the pattern can echo at hop 12, hop 17, wherever the storyteller seeds it.
The implication for the Veil Institute is interesting here. They maintain field stations
"near clusters of dormant gates" (round-14, section 8). If dormant gates are sometimes
dormant because nobody's been watching the right thing for long enough, the Institute's
classification of gate states needs a new column. "Dormant" might mean "not yet
activated by transit infrastructure" OR "not yet activated by a sustained observational
presence nearby." Those are different mechanisms and they have different implications
for Institute strategy.
**High-bleed gates:**
The round-14 discussion establishes that some gates are "noisy" — producing stronger
Interstitial effects — and that the pattern of which gates are high-bleed "doesn't
correlate with distance, age, or any other measurable variable." The sealed envelope's
framework offers an explanation: high-bleed gates are gates where the observation
circuit is incomplete or degraded. The Builders are watching more intently because
something needs more watching. Or: the human side of the circuit is absent or too thin
to stabilize the transit experience.
"Bleed" as the consequence of incomplete vigil is a clean concept. It gives the
Institute a genuine research program that isn't just "study the weird gates" — it's
"identify what each high-bleed gate is adjacent to and who, if anyone, was supposed to
be watching it." This also implies that high-bleed gates might become stable if the
right people start paying the right kind of attention to the right thing nearby. That's
a potential late-game mechanic I want to flag: a player with sufficient tier and
knowledge can stabilize a high-bleed gate by maintaining a vigil. Not by hacking it.
Not by physically intervening. By watching.
**The Veil Institute's actual mandate:**
Does the Institute know about the vigil at GJ 6711? The sealed envelope says a Veil
Institute researcher is in year 6 "because the researcher is now keeping watch." That
is a loaded sentence. It doesn't say whether the Institute sent them there knowing what
would happen, whether the researcher was on a standard assignment and got recruited by
the situation, or whether the Institute has since realized they've lost a researcher to
Stillpoint and classified the situation.
All three options are viable. All three produce different gameplay.
If the Institute knows: they're managing the vigil from a distance, their classification
of GJ 6711 data is the most restrictive in their archives, and the player finding out
what's actually there would be the single most dangerous piece of knowledge in the
game. The whistleblower archetype from veil-institute.md suddenly has a specific
target.
If the Institute doesn't fully know: the researcher's year-6 silence is anomalous data
they're trying to explain. Institute field researchers are expected to publish or at
least report. Six years of unusual silence should have triggered some response. The
question of what the Institute actually does when a researcher goes quiet at a frontier
system is a canon gap. We need a position on this.
If the Institute knows but only partially: they know GJ 6711 is significant, they know
personnel who stay too long don't come back in the functional sense, and they've decided
the best approach is to let the vigil self-perpetuate without understanding what it's
maintaining. This is probably the most interesting version. The Institute's defining
characteristic is "knows the most, shares the least." A thing they don't understand but
have decided to manage through deliberate ignorance is a perfect Institute behavior.
**The Threshold:**
Gore's Threshold concept from round-14 — a fifth state "not a tier but a question"
that Elevated characters can sense, adjacent to the Interstitium — maps onto Stillpoint
in a way that makes me want to shout. The sealed envelope says community knowledge
(tier 4 in Paula's schema) is "the watch internalized." What if watching long enough at
GJ 6711 is one pathway to sensing the Threshold? Not the only pathway, and not a clean
progression — but a character who stays at Stillpoint long enough, attending to
whatever needs attending to, starts to perceive the Interstitium differently.
This connects to Gore's round-14 framing: "what you learn about [the Builders] forces
you to confront what humanity's ascension path actually leads to." The vigil at
Stillpoint isn't just maintenance. It might be a training ground for whatever it means
to cross the Threshold. The founding settlers didn't just get recruited by a situation.
They may have been recruited toward a kind of perception that the Reach doesn't have
language for yet.
That's consistent with everything in round-14. It's not in the sealed envelope. It
should be.
---
## 3. What Breaks If the Vigil Fails
The sealed envelope says "not dangerous if watched, unknown if not watched." That
framing is deliberately noncommittal and I understand why. But for game systems, I need
to think through the candidate categories because they have different mechanical
implications.
**Candidate A: A Gyre event of unusual intensity and scope.**
Gyre events are described as "rare, unpredictable, and occasionally lethal" with some
exhibiting "apparent intention." A lapse in the GJ 6711 vigil would be the most
significant Interstitial-stability event since the gate network was built. What happens
when the thing that's been watched for 300 years goes, however briefly, unwatched? A
single Gyre event is the small version. A cascading sequence — because the Builders
notice the absence and the circuit becomes unstable — is the large version. I'd argue
the small version is too small to be "unknown." The word "unknown" suggests the
lapse produces something that doesn't fit Gyre event taxonomy. Something new.
**Candidate B: Gate destabilization at hop 23 with cascade effects.**
If the gate at GJ 6711 exists in part because the gate builders needed watchers there,
and if the vigil fails, does the gate go dormant? This connects to the Struve activation
— if observation can activate a gate, then the cessation of observation could revert
one to dormancy. A dormant hop-23 gate doesn't just cut Stillpoint off. It redraws the
frontier map. Every system that routes through GJ 6711 (if any exist further out) loses
its link. The political implications are significant and the Veil Institute would have
to respond publicly.
**Candidate C: Something becomes visible that was previously stable precisely because
it was watched.**
This is the most interesting candidate and the one that fits the sealed envelope's
"unknown" framing best. The thing being watched isn't dangerous because it's being
watched. The vigil isn't preventing the thing from doing something — it's providing the
condition the thing requires to remain in a state that can be coexisted with. What
happens when observation withdraws isn't that the thing "escapes" or "activates" in a
threat model sense. What happens is that the thing's ontological status becomes
undefined in a way that human cognition can't process. It doesn't become a monster. It
becomes a question reality can't hold.
That's the one I'd pursue. It makes the doors-taller detail load-bearing in a different
way: something that takes a shift at Stillpoint is something that occupies the threshold
between the watched and the watcher. If the vigil fails, those entities lose their
purchase on the stable side.
**The institutional near-miss response:**
The community's response to a near-miss lapse would be quiet, systematic, and deeply
unsettling from the outside. No emergency broadcasts. No requests for Concord Assembly
intervention. The community simply pulls in, covers more shifts, and ensures the lapse
is never repeated. They don't explain because there is no explanation that doesn't
require the listener to understand what was almost lost. The outsider registers: "they
had a crisis and then they didn't talk about it." The Veil Institute registers: "anomalous
readings at hop 23, 72-hour window, resolved without explanation." That anomaly is in
their archives. Classified. Unexplained. A player who digs deep enough in Institute
records will find the record of the near-miss without finding the record of what caused
it.
---
## 4. The Doors
This is the detail I want to pressure-test hardest because it's the sealed envelope's
most dangerous element. "Not everything that takes a shift is human-sized" is a
statement that, handled wrong, collapses the whole design.
The wrong handling: it's an alien creature, it has a name, it can be confronted, the
player can kill it or befriend it or negotiate with it. If that's what this is, the
sealed envelope becomes a discovery-game with a monster at the end and the mystery
deflates.
The right handling: it's a presence that participates in the vigil in some form, and
the doors are taller because the community built for it without anyone making a formal
decision to do so. They built what the vigil required. The "it" is not a character. It's
a function. Something exists in the boundary space between the watched and the watcher
and it too keeps watch, in whatever manner it keeps watch. The founders didn't bring it.
It wasn't already there in the sense of an existing creature. It emerged from the vigil
the way a relationship emerges from sustained attention.
This is consistent with the round-14 canon that the Builders are "not an enemy, not
allies" — they are "the thing living in the walls of the house you built your civilization
inside." The not-human-sized shift-taker isn't a Builder. But it may be what happens when
a sustained human vigil, operating near enough to the Interstitium for long enough,
generates something that occupies a category the Reach doesn't have a word for. Not a
Builder. Not a human. A third thing that the vigil produced.
The founding settlers didn't respond to this with fear. They built taller doors. That
tells you everything about the community's relationship to the thing: matter-of-fact
accommodation. The vigil required it. So they built for it. The warmth-without-origin
atmospheric archetype in my brief suddenly has a source I didn't know it had: the
community is warm because it includes something that isn't human and they've made peace
with that.
What does this imply for the relationship between watchers and watched? That it's not
binary. You don't watch from outside. Long enough watching makes you part of the system
you're watching. The founding settlers came to observe and became participants. The
non-human shift-taker is what participating in a 300-year vigil adjacent to the
Interstitium produces. The watched thing and the watching community are not separate
categories anymore. They've been entangled for three centuries.
---
## 5. The Endgame Hook
Let me be direct: GJ 6711's function as an endgame is the strongest thing in the sealed
envelope, and it also has the single biggest structural risk in the whole design. Let me
name both.
**The strength:** A player who reaches Stillpoint has traveled 23 hops. They have
exhausted, or close to exhausted, the Reach's content. They arrive expecting a payoff in
the conventional endgame sense — a revelation, a confrontation, a resolution. What they
get instead is a vigil. A community that will not explain itself. A place that recruits
by situation rather than by invitation. The subversion of the conventional endgame
expectation is exactly what this game is built to deliver. The player who has spent
the whole game accumulating information toward resolution arrives at a place that is
fundamentally resistant to resolution and has to decide what they're going to do with
that.
What they carry away isn't knowledge. It's a changed relationship to knowledge. The
player who has watched how the Reach works — who has tracked conspiracies, mapped
faction tensions, accumulated intelligence across dozens of systems — arrives at the one
place where the usual toolkit doesn't work. The analytical mode that got them here
doesn't work here. Something else is required. That something else is what the whole
game has been building toward, and it's not a skill or a perception tier or a faction
alliance. It's the willingness to stay and watch without understanding.
The guide entry the player files is their attempt to explain this in Adams & Ford
language. Whatever they write is almost certainly wrong. But it propagates into the
Reach as authoritative-looking. Future players receive it as a rumor before they arrive.
It shapes their expectations in ways that are specifically misleading. The player who
reached GJ 6711 becomes part of the approach-chain misinformation that every subsequent
player navigates. That loop is replayability doing its best work: the output of one
playthrough becomes the input of the next.
**The structural risk:** GJ 6711 is positioned as the endgame for all four playstyles —
tycoon, dating sim, political drama, investigation. That's right in principle: the vigil
doesn't care about your approach vector. But in practice, why does a tycoon-playstyle
player invest 23 hops to reach a community that has no obvious commercial activity? The
"industry-without-product" atmospheric archetype from my brief gestures at this, but it
doesn't close the gap. The tycoon needs a reason to go. The political drama player needs
a reason to go that isn't just "I ran out of political drama at hop 22 and here's what's
at the end." Each playstyle needs its own hook into GJ 6711 that makes the journey feel
motivated.
This is a design gap. The sealed envelope doesn't address it. It needs addressing before
GJ 6711 can function as an endgame for all four playstyles.
**What the player carries away:**
The player leaves Stillpoint with the understanding that the Reach is not what they
thought it was. Not because of any revealed secret — the sealed envelope correctly says
no confirmation is ever given. But because the experience of Stillpoint changes the
category of questions the player asks. They stop asking "who is responsible" and start
asking "what is being maintained." They look at every other gate-adjacent installation
in the Reach and wonder whether someone is watching. They look at the Veil Institute's
classification practices and wonder whether the Institute knows about this, and if they
do, what else they're managing through deliberate ignorance. They look at the high-bleed
gates and wonder what the vigil that was supposed to stabilize them has lapsed into.
The player doesn't discover the answer to the Builders mystery at GJ 6711. They discover
that the mystery has been load-bearing all along, and that people have been quietly
holding it together for 300 years, and that the whole time the player was playing
detective, someone at hop 23 was keeping watch.
That is the correct endgame for this game. It's about the cost of knowing, as Gore
stated in round-14. At GJ 6711, the player learns that some things can't be known — only
watched. And whether that's enough, or whether they want to stay, is the final decision
the game offers them.
---
## 6. What's Missing
**a. The mechanism of "stability" is not specified and it needs to be.**
The sealed envelope says something requires observation to remain stable. But it
doesn't specify: stable relative to what? Stable meaning "continues to exist in a
coherent form"? Stable meaning "remains in the dimension/layer/state where it can be
coexisted with"? Stable meaning "doesn't propagate outward into adjacent gate
infrastructure"? These are different phenomena with different implications. We don't
need to tell the player which one it is. But the sealed envelope needs an internal
position because the answer changes how we design the near-miss scenario, the lapse
consequences, and the doors element.
**b. The sealed envelope doesn't address what the first settlers actually found.**
"They understood, at some point after arrival, that leaving would be abandonment." But
found what? Understood what? There must be a formative event — a moment where the
situation made its nature clear enough that the settlers chose to stay. We don't need to
tell the player what it was. But the sealed envelope needs to know, because the answer
shapes the institutional memory of the community, the community's tone when approached
by newcomers, and whether the formative event is recoverable through deep investigation
or genuinely lost to time.
**c. The four-frame structure (astronomical/geological/perceptual/topological) is
described as "all partial views of the same function" — but the function isn't
described.**
"This place needs witnesses and the conditions here produce them" is operational, not
explanatory. It tells us what the place does, not what it is. That's correct design
for player-facing content. But for the sealed envelope to be load-bearing, we need an
internal position: is the thing being watched a physical object? A geometric feature of
local spacetime? A point of contact with the Interstitium that can't be sealed? A
Builder installation that requires acknowledgment to remain stable? The frames can all
remain valid for players. The design team needs to know which frame is closest to
canonical truth, even if that truth is never disclosed.
**d. The relationship between the vigil and the lattice/imprint system is completely
absent.**
This is the gap I'm most concerned about from a sandbox perspective. The Reach's
re-embodiment system means that the community at GJ 6711 has been maintaining continuity
across generations, but Stillpoint settlers presumably die and get replaced — either
through re-embodiment or biological succession. Does the vigil transfer? Is it a
learned practice, an institutional transmission, a biological inheritance, or something
that the place itself imprints onto whoever stays long enough? The sealed envelope treats
the vigil as culturally continuous but doesn't explain the continuity mechanism.
For an Unbound character visiting Stillpoint, this is critical. An Unbound character
who stays and is recruited into the vigil and then dies — their death is permanent. Does
the vigil recognize that? Does it accommodate it? The doors are taller because not
everything that takes a shift is human-sized. Are some of the shifts taken by the ghosts
of Unbound watchers who died keeping watch?
That's a question the sealed envelope raised by existing and hasn't answered.
**e. GJ 6711's relationship to the perception tier system.**
Round-14 established that higher perception tiers see more during gate transit — "even
the impression of presences." The sealed envelope says the doubled-light environment
"produces a specific quality of attention in observers." These should be connected. Does
an Elevated character at Stillpoint perceive the vigil differently than a Baseline? Do
they see what they're watching? Do they see the non-human shift-takers? Does
Stillpoint function as a kind of uncontrolled Threshold-adjacent space where an
Elevated character might accidentally cross into a perception state they weren't ready
for?
None of this is in the sealed envelope. All of it needs to be.
**f. The sealed envelope is silent on what failure looks like institutionally.**
The Veil Institute manages Gyre events. The Lattice Commission maintains imprint
infrastructure. The Concord Assembly governs gate activation. If something at GJ 6711
destabilizes, which of these institutions responds, and what do they think they're
responding to? The sealed envelope needs an institutional failure-response canon,
because that canon will inform how players at earlier hops pick up signals that
something is wrong at hop 23 before they get there.
---
## Summary Verdict
The sealed envelope holds. The core mechanism — observation is load-bearing, recruitment
is by situation, the vigil is the community's identity — is internally consistent and
compatible with all existing Builder/Interstitium/Gate canon. The Struve activation
becomes more interesting, not less. The high-bleed gates get a new explanatory frame.
The Threshold concept gets a physical location where it can be approached.
Where it's thin:
1. The stability mechanism needs internal specificity (not player-facing, but
design-team-facing).
2. The formative founding event needs an internal position.
3. The four-frame resolution into "one function" needs the function named internally.
4. The vigil/lattice/imprint/Unbound interaction is a design gap that affects several
downstream systems.
5. The perception-tier/Threshold connection to Stillpoint is assumed but not developed.
6. The institutional failure-response model is absent.
7. Each playstyle needs a specific motivational hook into GJ 6711 that makes the
23-hop journey feel directed.
The most important structural point: GJ 6711's strongest property is that it generates
different experiences on every playthrough not by being procedurally variable but by
being interpretively inexhaustible. The player doesn't return to find what they missed.
They return and find that what they remember was incomplete. That's a harder trick to
pull off than seed variation, and it's the right trick for an endgame location. If we
can engineer interpretive inexhaustibility into the systems — the atmospheric archetypes,
the correspondent variants, the guide entry propagation loop — then GJ 6711 becomes
the place that rewrites every other place the player has been.
That's not just an endgame. That's a reason to start over.
@@ -0,0 +1,256 @@
# GJ 6711 Challenge Response — Paula (Narrative & Political Depth)
**Status:** Challenge response — stress-testing the sealed envelope against existing canon
---
## Prefatory Note
The sealed envelope survives the pressure test. But it survives with conditions. Several elements require reinforcement to hold up against the canon, and several implications — particularly for the Veil Institute's institutional behavior and for the Builders' bidirectional observation — are underdeveloped in ways that will cause problems if we don't address them before the envelope becomes load-bearing design guidance. I'll work through this section by section.
---
## 1. Canon Compatibility
### What Holds
The central claim — observation is load-bearing — is consistent with everything canon says about the Interstitium and Builders. The round-14 discussion establishes that "the Builders are watching through infrastructure the Reach depends on." The sealed envelope proposes that at GJ 6711, humans are doing the same thing from the other side. This is not a contradiction. It is a structural symmetry.
The canon says gates may serve purposes beyond transit: "communication, observation, something else." The sealed envelope proposes that the GJ 6711 gate was placed not primarily for transit but to enable continuous witnessing of something that requires witnesses. This fits cleanly within the "something else" category without requiring any modification to canon.
The Struve activation — "a dormant aperture has activated without human intervention (~40 years ago)" — is explicitly flagged in the gates document as having implications "not fully understood." The sealed envelope does not touch Struve directly, but the activation event is canonically orphaned (no explanation, no follow-up). The sealed envelope doesn't create a conflict here because Struve remains explicitly open.
### Where I'm Watching Carefully
**"The conditions here produce a specific quality of attention."** This is the envelope's most ambitious claim and the one with the fewest canonical anchors. Canon says higher perception tiers experience more during transit. It doesn't say the *physical environment* of a specific system produces heightened perception states. The doubled-light environment (K-type primary + gas giant reflection) is proposed as the mechanism — but we have no canon precedent for environmental conditions doing perceptual work outside of Interstitial transit.
This is not a contradiction. It's a gap. The envelope requires us to establish, at some point, that physical environments can have perceptual valence — that certain conditions of light or space produce observer states that are load-bearing in the same way transit perception is. That's consistent with the system, but it's new territory that needs at least implicit support somewhere in the canon before GJ 6711 can lean on it.
**The gate was placed "to enable watchers" — this implies Builder intent.** The envelope says the gate builders "needed watchers here and built the gate accordingly." That is a significant claim about Builder motivation. Canon is carefully agnostic: it distinguishes between Founders (who built the gates, possibly extinct) and Builders (who inhabit the Interstitium, possibly alive). If the gate at GJ 6711 was placed intentionally to position human observers, that implies either:
a) The Founders and Builders are in coordination — or are the same entity — and have been engineering human observation for at least 300 years
b) The Founders placed the gate for reasons unrelated to observation, and the Builders subsequently developed an interest in the vigil
c) "The gate builders" in the envelope does not mean the Founders at all — it means someone else entirely
The envelope doesn't resolve this. Round-14 canon says: "The Founders may have built the gates to reach it [the Threshold]. Or the Builders ARE what happens when you cross it." These framings don't specify who placed which gates for what purpose. The envelope is making a stronger claim than canon currently supports.
This is fixable. But it requires the envelope to take a position on whether GJ 6711's gate is Founder-built (as all other gates are assumed to be) or something anomalous in the network. If it's Founder-built, the envelope implies Founders had a vigil-related purpose 300+ years ago. If it's anomalous, we need to explain why no one noticed — the Institute runs Interstitial data collection. An anomalous gate at hop 23 is the kind of thing they would classify.
**Recommendation:** Add a single clarifying sentence to the envelope: "The gate at GJ 6711 is Founder-built and structurally indistinguishable from every other gate in the network. The question of whether its placement was intentional or incidental to the vigil is one of the questions the game never answers." This sidesteps the intent question while keeping it in play as an investigative thread.
### One Genuine Tension
The gates document says: "The connection is stable and persistent (no observed failures in recorded history)." But the sealed envelope's core premise is that observation is load-bearing and the unknown result of its failure is potentially destabilizing. If the gate's continued function were to depend on the vigil — even in a weak causal sense — that would create a tension with "no observed failures." A gate that could fail if the vigil lapses is a different kind of infrastructure than what canon establishes.
I don't think the envelope intends this causal link. The vigil doesn't seem to be maintaining the gate — it's maintaining whatever is being watched. But the envelope could be read to imply that the gate itself is part of the observational system. The design constraint section says "not dangerous if watched, unknown if not watched." If the gate is the observation apparatus and the vigil is what keeps the gate pointed at the right thing... we're now in territory the gates document explicitly says hasn't happened.
**Recommendation:** Make explicit in the envelope that the gate functions normally regardless of the vigil. The vigil concerns what exists at GJ 6711, not whether the gate runs. Decoupling these prevents a logic chain that creates a canon conflict.
---
## 2. Implications for the Wider Setting
### Dead-End Systems as Watch Posts
If continuous observation is load-bearing at GJ 6711, the implication for dead-end systems is uncomfortable and important. The systems-framework work I contributed identifies dead-end isolation — sometimes up to 500 years — as a structural category. Most dead-ends are treated as economic failures: communities that got stranded when gate networks developed in other directions.
But the sealed envelope implies a different possible history for some of them. A community that has persisted in a dead-end system for centuries without obvious economic justification might be there because they can't leave. Not because they're trapped by circumstance — because whatever they were positioned to watch requires them to stay.
The honest truth is that this is a retroactive recontextualization of dead-end systems that would be felt across the entire setting. If even two or three dead-ends are vigil systems, the entire economic-failure framing becomes uncertain. Players who spent time in those systems would re-read every "why did they stay?" conversation they had.
This is a strong narrative property. But it needs to be managed. I'd argue GJ 6711 should be the only confirmed vigil system — but other dead-ends should gain a faint new ambiguity when the player has been to Stillpoint. Not "all dead-ends are vigils" but "now I can't rule it out." The doubt is more valuable than the explanation.
### High-Bleed Gates and Observation Lapses
The Veil Institute controls "high-bleed Founder Gates" — a canonical category explicitly defined as gates with "anomalous Interstitial interactions." The envelope's premise generates a new hypothesis for what bleed is: a perceptual artifact of failed or degraded observation somewhere in the system the gate connects to.
Round-14 says Gyre events "exhibit apparent intention." The envelope says something at GJ 6711 is load-bearing and its unwatched state is "unknown." If we follow the logic: bleed may be the Interstitium's response to a vigil system that has been inadequately observed. The gate is "bleeding" because the observational contract between the gate network and whatever is being watched at that system has been disrupted.
This is not confirmed in canon. But it fits canon without requiring any modifications. And it changes the Institute's high-bleed gate research in a significant way: they may be studying the symptom (anomalous Interstitial interactions) without understanding the cause (a vigil system somewhere in the chain that is failing or degraded). Their classification behavior around high-bleed gates takes on a different character if they're doing damage-control on a problem they don't have conceptual vocabulary for.
**What this implies mechanically:** High-bleed gates in the full game should be traceable back to some system in their chain where something has gone wrong with the local observational situation. This doesn't need to be explicit — but the architecture should be consistent.
### The Struve Activation
"Did it activate because someone started watching?" This is the most specific question in the brief and also the most politically pointed.
Let me complicate this. Struve activated ~40 years ago, without human intervention. The envelope says founding settlers at GJ 6711 "were recruited — not by beings, but by the situation." If activation can happen without human intervention when something in the network needs to establish a new observation point, then Struve activating 40 years ago means: something changed 40 years ago that required a new gate to be opened.
What changed? Three possibilities:
- An existing vigil system lost watchers (population decline, catastrophe, departure) and the network responded by opening a new access point — recruiting new observers
- Something at Struve itself began to require observation, and the gate opened to enable it
- The Struve activation is unrelated to vigil mechanics entirely — it's a different category of event
The third option keeps Struve clean and GJ 6711 isolated. But the second option is more interesting and more consistent with the envelope's premise that gates are placed where watchers are needed. If Struve is a newly recruited vigil system, it's 40 years into the same process that GJ 6711 has been running for 300 years. The player, traveling there, might find a community that is still in the arrival/settling phase — a community that doesn't yet know why it's staying.
**I want to flag this as a potential design opportunity, not a recommendation.** The team should decide whether Struve gets this treatment. If it does, it's a 40-year-in vigil community — confused, partially recruited, not yet articulating what they're watching. If it doesn't, Struve remains an orphaned anomaly. Either works, but the decision shapes how singular GJ 6711 is.
### The Veil Institute's Actual Mandate
The Institute knows about Stillpoint. The envelope establishes that the researcher at GJ 6711 is "in year 6 because the researcher is now keeping watch." The Institute rotates personnel — but the rotation pattern has become irregular (per my brief).
The political implication that no one has drawn out yet: the Institute is losing researchers to the vigil. Not dramatically. Quietly. Someone doesn't come back, files increasingly abstract reports, their reassignment gets delayed, and then delayed again, and then no one follows up because the Institute has a pattern of not following up on data that doesn't fit its classification schema.
But the honest truth is: if the Institute has a semi-autonomous research station at GJ 7547 (one hop short), they have been watching Stillpoint's researcher-retention problem for long enough to notice. The question is whether they've noticed and said nothing — which implies the Institute is deliberately looking away from vigil mechanics — or whether they've noticed and are actively trying to understand it, which makes them an investigative threat to the vigil's operational stability.
**This creates the most interesting institutional tension in the envelope.** The Institute has a "contact vs. containment" internal conflict that the veil-institute doc describes explicitly. At GJ 6711, that conflict becomes concrete: the vigil is contact. Someone is observing something and being observed back. The Institute faction that believes Builder contact is imminent and transformative would want to accelerate this. The faction that believes Builder phenomena are existential threats to be contained would want to evacuate the vigil community and study the place as a controlled phenomenon.
The envelope currently treats the Institute as a passive background presence. Given canonical Institute behavior — aggressive classification, managed ignorance, internal factional conflict — Stillpoint should be one of their most politically contentious files. The Institute researcher going native is not an administrative irregularity. It is confirmation of something the Institute has been trying to classify for decades.
**Recommendation:** The sealed envelope should add a line about the Institute's internal position on Stillpoint: they have the file, they have the classification tier, and the file is locked because two factions within the Institute can't agree on what it means. This gives the player an institutional seam to exploit.
### The Threshold
Round-14: "The Founders may have built the gates to reach it. Or the Builders ARE what happens when you cross it."
The Threshold is defined as what Elevated characters sense during transit — adjacent to or continuous with the Interstitium. The envelope proposes that the vigil involves watching something that requires watching.
Let me propose a specific connection that neither the brief nor the envelope makes explicit: the vigil at GJ 6711 may be producing Threshold-proximate experience through duration rather than through ascension. The round-14 synthesis says higher perception tiers see more during transit. The envelope says the community at GJ 6711 has internalized the watch over 300 years. What if Elevated perception is not only an ascension-tier phenomenon — what if sustained attention on a vigil object, across sufficient time, produces the same perceptual opening that transit experience produces at Elevated tier?
This would mean: the founding community at Stillpoint are not ascension-Elevated. They are vigil-Elevated. They have reached the Threshold not through the lattice but through 300 years of watching. And what they sense is not the same as what a character in transit senses — but it rhymes.
The implication for endgame: an Elevated player arriving at Stillpoint experiences something different from a Baseline player. Not just more — differently. An Elevated character perceives Stillpoint as a resonant environment, a place where the Interstitial qualities they've been experiencing during transit are present without a gate. That's the clearest signal the game can give that something is genuinely different here without stating it explicitly.
---
## 3. What Breaks If the Vigil Fails
The envelope says: "not dangerous if watched, unknown if not watched." The word "unknown" is doing significant work and the envelope doesn't unpack it. Let me try.
### Candidate Explanations for "Unknown"
| Candidate | What a lapse produces | How the community would know it was a near-miss |
|-----------|----------------------|------------------------------------------------|
| **A topological instability** | The local geometry of GJ 6711 becomes unreliable — not catastrophically, but in ways that compound. Navigation errors. Span gate targeting failures. Objects not where they should be. | The first sign would be instrumentation disagreements. Two sensor arrays give different readings for the same object. The community has had this happen before. |
| **A Gyre event** | The unwatched phenomenon leaks into local space the way Builders "leak" through high-bleed gates. Round-14: Gyre events manipulate systems the player trusts — fog-of-war, minimap, tile geometry, sound propagation. A vigil lapse Gyre would be different: not transit-derived, but local. The place itself becoming unreliable. | The community would have a story about the last time this happened. Maybe a century ago. The oldest Mode 1 structures show evidence of a repair period consistent with a sustained anomaly. |
| **A perceptual fracture** | The observation-dependent stability is not about physics — it's about coherence of attention. The watched thing requires witnesses not to remain physically stable but to remain in a state where it can be perceived at all. A lapse doesn't cause it to be dangerous — it causes it to become imperceptible, and what is not perceived is not constrained by being perceived. | This candidate is the hardest to detect as a near-miss because you wouldn't know what you missed. You'd just know that the community felt an absence. |
| **A gate behavior change** | The gate at hop 23 exhibits unusual transit properties during a vigil lapse. Not failure — gates don't fail. But the Interstitium on approach changes quality. What travelers experience during transit to/from GJ 6711 becomes different during an unwatched period. | The Institute's Interstitial data arrays would catch this. It might be what triggered the Institute researcher's original assignment. |
**My instinct:** all four candidates are simultaneously true. The envelope's "all four frames are partial views of the same function" principle applies here as well. The vigil isn't preventing one category of failure — it's maintaining a coherence that has topological, perceptual, Gyre-related, and gate-behavioral components simultaneously. The community doesn't have a taxonomy for what goes wrong because they've only experienced it partially and stopped calling it by any of those names.
### The Institutional Response to a Near-Miss
This is the most psychologically interesting scenario in the entire brief. A community that has maintained a continuous vigil for 300 years experiences a near-miss — probably not a full lapse, but a thinning. A period when the community's watching intensity dropped below whatever threshold exists.
What happens institutionally:
First, no one announces it. The community doesn't have language for it because the vigil doesn't have external documentation. The oldest members would know something had shifted. The feeling of "almost understanding" that settlers describe would become, for the regulars, a feeling of "almost failing."
Second, recruitment intensifies. The "warmth-without-origin" that newcomers experience isn't a constant — it's a variable. During or after a near-miss, it would be stronger. The community would be pulling harder for new observers. Visitors who might otherwise leave in the arrival phase would find the gravity increased. The three-phase process would accelerate.
Third, the community response would look, from the outside, like a minor social uptick. More hospitality. More retention of visitors. A slight increase in the rate at which people who came for a month stayed for two years. Nothing anyone would document as crisis management. But the archives, if you could read them, would show a cluster.
This is where the player's investigation becomes most fraught: the near-miss may be happening during their visit. The warmth that recruits them may be urgency, not welcome.
---
## 4. The Doors
"Sometimes the watch changes and not everything that takes a shift is human-sized."
This is the line the sealed envelope doesn't explain, and I want to press on it precisely because I was the one who championed Araminta's door observation in the synthesis. Now that we have the canon, I need to test what I endorsed.
### What Is Not Taking a Human-Sized Shift
**Option A: Builder manifestation.** The Interstitium is where the Builders live. Gate transit passes through Builder-space. If GJ 6711 is a place where observation flows both ways — where something watches back — the "not human-sized" entities taking shifts might be Builders physically manifesting in local space. The gate enables this, the doubled-light environment enables this, and the vigil is the arrangement that keeps the manifestation stable and non-threatening.
This option has the advantage of explaining the vigil from the Builders' side: they need watchers because they need the observation loop maintained to sustain their local presence. The vigil isn't just about watching something — it's about completing a circuit. If the human side of the circuit goes dark, the Builder-side manifestation becomes unstable. "Unknown if not watched" is unknown in both directions.
**Option B: Threshold-crossed entities.** Round-14: "Or the Builders ARE what happens when you cross it." If the founding settlers, over 300 years of vigil, have been approaching the Threshold through sustained attention rather than ascension, some of them — the most long-established, the earliest families — may have crossed it. Whatever they became is not "gone" — they're still there, still watching, still part of the community's operational reality. The doors are taller because some of the community are no longer fully human-shaped.
This option is more disturbing and requires more from the player's imagination. It also explains why "understanding comes from staying" — at a certain duration, the community isn't explaining the vigil to you. They're showing you what you might become if you stay.
**Option C: Something that was always there.** Before the founding settlers arrived, before the gate was placed, whatever is being watched was being watched by something. The doors are taller because the earliest Mode 1 structures were built to accommodate previous watchers — not human-sized entities that were already doing the vigil before humanity arrived. The founding settlers didn't start the vigil. They inherited it. The gate brought them to a post that was already established.
This option has the most profound implication for the wider setting: the vigil has been running longer than humanity has been in the Reach. The gate was placed to enable human watchers to take over from whatever was watching before, or to supplement them, or to replace them after they became something the gate network could no longer access. 300 years of "unbroken vigil" may be the human portion of a much longer record.
### My Position
I cannot advocate for one answer. The canonical principle is non-resolution, and this question in particular — what takes a shift — must remain genuinely unanswerable from player-accessible evidence. But I want to flag that Option C has the most structural weight. It retroactively makes every piece of evidence at GJ 6711 (the founding-era construction, the founding settlers' rapid accommodation to the situation, the absence of a founding story that explains why they stayed) consistent with a community that discovered they were taking over a post, not establishing one.
The honest truth is that the doors are the most important piece of the sealed envelope. They're the only piece of canon that says: something non-human is actively present and operationally integrated into the vigil. Every other element can be explained as human psychology, environmental strangeness, perceptual phenomena. The doors cannot. They're physical evidence that the vigil includes participants the founding settlers didn't bring.
---
## 5. The Endgame Hook
GJ 6711 is the answer to the question the whole game has been asking without asking it: what are we living inside?
Round-14 establishes: "The deepest mystery in the setting hides inside the moment the player pays the least attention to." For most of the game, that moment is gate transit. At GJ 6711, it becomes: what are you paying attention to when you're here?
The player has spent the entire game learning to look harder. Every perception upgrade, every investigation into asymmetric information, every Gyre event — they've been training themselves to see what's being hidden. They arrive at Stillpoint expecting to see the answer. What they find is that the answer is the looking itself.
### What the Player Carries Away
**The recontextualization of all prior gate transit.** If GJ 6711 is a place where observation flows in both directions, the player realizes that every gate transit they've taken has passed through Builder-space where something was also observing. The transit was never just disorientation. Something on the other side was registering the passage. The "loading screen" insight from round-14 — "the player should eventually realize that the loading screen was the most important thing in the game" — lands fully here.
**The recruitment question.** The player, having spent weeks or months at Stillpoint, has to ask: have I been recruited? The file they submit to Adams & Ford is not just a professional document — it is the record of a person who may or may not know they're now a watcher. The game never tells them. But they know. And whether they leave or stay, they know that staying was a choice that would have been made for them eventually if they'd stayed long enough.
**A different relationship to the Veil Institute.** The player who reaches GJ 6711 now has information the Institute has been trying to classify for decades. They are, depending on what they choose to do with the Adams & Ford entry and what they've learned about Institute internal politics, either a whistleblower, an asset, a threat, or simply another observer who has been added to the network. The player's position relative to the setting's most powerful information-controlling institution has changed permanently.
**The non-resolution that resolves something.** Every endgame moment is better when it changes how you see rather than what you know. GJ 6711 doesn't answer the Builder mystery. It changes the question. The game has been asking: "what are the Builders?" At Stillpoint, the player realizes the question has always been: "what are you, relative to them?" The cosmological mystery becomes autobiographical. That's the transition from investigation to endgame.
---
## 6. What's Missing
The sealed envelope is structurally sound but has several gaps that will cause problems when it becomes load-bearing for full-game design.
### Gap 1: No Account of Failed Vigils
The envelope describes the vigil as continuous for 300 years. But 300 years of unbroken anything in a community of mortal humans requires explanation. How has the vigil survived? What happened when population dropped? What happened during the passage between Wave 3 settlement and the current moment — were there crises? Near-misses? Were watchers ever forcibly removed by the Commission or the Assembly?
The community's institutional relationship with the wider Reach is, from my earlier brief, characterized by productive incoherence — no one quite knows what to do with Stillpoint, so no one does much. But there must have been moments when someone tried. A Commission quarantine order. An Assembly motion to investigate the delegate situation. A Syndic operation that wanted access to the system for commercial reasons. Each of these is a threat to the vigil. How the community handled them is part of their 300-year history.
**What needs to be added:** A sense of how the vigil has been protected institutionally, even if indirectly. Not a history document — just enough implied texture that when the player encounters the delegate situation or the Institute researcher, they understand these aren't the first intrusions the community has managed.
### Gap 2: The Adams & Ford Entry as Design Object
The player's submission of an Adams & Ford entry is proposed as the resolution mechanic (per Nigel's synthesis, which I analyzed). The envelope says the entry "propagates into the Reach as authoritative-looking and probably incomplete." But it doesn't define what the player is actually writing in the entry. What categories does Adams & Ford require? What does a standard entry look like for a frontier system? The gap between standard and what the player can actually write about Stillpoint — that gap is the mechanical experience of the non-resolution principle.
**What needs to be added:** At minimum, a note that the Adams & Ford entry format should be defined, and that the Stillpoint entry specifically should leave certain standard categories (chief exports, population dynamics, administrative contact, notable attractions) deliberately incomplete or paradoxical by player choice, not by the form's absence.
### Gap 3: The Bidirectional Observation Question Is Unresolved
The challenge brief identifies this explicitly: "humans watching something that watches back." The sealed envelope establishes that something watches back through the doors — there are non-human-sized entities taking shifts. But the envelope doesn't address the relationship between what the humans are watching and what is watching them. Is the vigil an exchange? A one-way observation with the humans as passive audience? A protective arrangement (watching prevents, being watched maintains)? This distinction matters enormously for what the player is doing when they're recruited.
**What needs to be added:** Not an answer, but a frame. The envelope should specify which aspects of the bidirectional relationship are within player-accessible evidence (the recruitment, the doors, the communal posture) and which are not (whether the exchange is intentional, whether the non-human watchers are aware of themselves as participants in the vigil, whether the watching-back precedes or follows the human vigil).
### Gap 4: The Temporal Problem
The envelope says "300 years of unbroken vigil." The sealed envelope also says the founding settlers "understood, at some point after arrival, that leaving would be abandonment." At some point. When? If the vigil has been running for 300 years, and the founding settlers understood the obligation gradually, there was a period at the beginning when the vigil was not yet established. What existed before the vigil was formalized? Was GJ 6711 dangerous then? Was it more strange?
This matters because it implies there is a founding memory — a story about the moment the community realized what they were. That story, if recoverable through investigation, would be tier 4 community knowledge. The oldest families would carry it. And it would be, in some sense, the closest thing to an explanation of what the vigil is protecting.
**What needs to be added:** A sense of what the community's founding memory looks like. Not its content — that should remain inaccessible or partially inaccessible — but its form. Is there a founding record? A ceremony? A silence that marks it? This shapes the investigation path and determines whether the player can reach the founding moment or only approach it.
### Gap 5: No Behavioral Difference for Long-Term Locals vs. Recent Recruits
The envelope describes the community as undifferentiated: "the watch internalized." But a 300-year vigil community would have deep stratification. The families whose great-grandparents were among the founding settlers have a different relationship to the vigil than the Commission officer who arrived eighteen months ago and hasn't left. The "warmth-without-origin" affects both, but the understanding underneath it is not the same.
This matters for the information ecology. My four-tier framework assumes community knowledge (tier 4) is relatively uniform among locals. But it shouldn't be. There are probably degrees of depth even within the community — some members who have fully internalized the watch and would not be able to articulate it, some members who are recent enough recruits that they still carry the outsider's question as a framework. The most recently recruited might be the most articulate about the vigil's surface appearance precisely because they can still see it from outside.
**What needs to be added:** A note that community knowledge has its own gradient — not just between outsider and local, but within the local population. This shapes NPC design and determines which community members can be useful informants versus which have accommodated too deeply to provide legible explanation.
---
## Summary Assessment
| Element | Status | Action Required |
|---------|--------|-----------------|
| Bidirectional observation (Builders watching back) | Compatible with canon | Add explicit frame for which aspects are player-accessible |
| Gate placement "for watchers" | Creates intent question | Clarify whether gate is anomalous or standard-but-intentional |
| Vigil + gate stability | Minor tension with "no observed failures" | Decouple vigil from gate function explicitly |
| Environmental perceptual valence | Gap in canon | Needs at minimum implicit precedent established |
| Veil Institute's active position | Underdeveloped in envelope | Add internal faction conflict over Stillpoint file |
| The doors | Canonical tension between options | Protect as unresolved; multiple options must remain viable |
| Failed vigil history | Missing | Add implied texture of past institutional intrusions |
| Adams & Ford entry as design object | Underdeveloped | Define the form so the gap is legible |
| Community internal gradient | Missing | Differentiate founding families from recent recruits |
| Founding memory | Missing | Define form, not content |
The sealed envelope does one thing better than almost any endgame design I've encountered: it makes the player's experience of the place the content, rather than a delivery mechanism for lore. The player isn't finding out what happened here. They're becoming part of what is happening here. That's the right instinct and it should be protected.
But "observation is load-bearing" only works as a design premise if the game has consistently built player attention as a mechanic throughout. The Interstitium, the perception tiers, the asymmetric information system, the investigation of the Starflyer conspiracy analog — all of these are training the player to attend more carefully. GJ 6711 is where that training is revealed to have always been about something else: not solving mysteries, but being present to them. The endgame works if the game has done that work throughout. If it hasn't, Stillpoint will feel arbitrary.
That's the real load-bearing question, and it sits above the sealed envelope. The envelope is good. The rest of the game has to earn it.
@@ -0,0 +1,203 @@
# Final Synthesis — GJ 6711 / Abzu
**Respondent:** Araminta (Visual Designer)
**Round:** Final — pre-presentation to project lead
**Date:** 2026-03-16
---
## 1. The Name "Abzu"
Abzu is correct. Here is what it does visually.
Sumerian — the primordial deep beneath the earth, source of all springs, domain of Enki, associated with wisdom and hidden knowledge. The word means "ab" (water/deep) + "zu" (knowledge). It is not threatening. It is foundational. Something that was always there, below everything, that everything else draws from without knowing.
The name changes the visual frame in one specific way: amber and water. A K-type amber world already has the right light temperature. But Abzu adds a quality that "Stillpoint" did not carry — depth below the surface. Stillpoint implied a pause, a held breath. Abzu implies a source. The community at GJ 6711 isn't pausing. They are tapping something that runs deep and has always run deep.
**Palette adjustments from "Abzu":**
The amber base stays. The gas giant reflection is still the defining secondary light source. But I am now reading the ambient light differently. Abzu implies that the light at this system feels like it comes from below as much as above — the gas giant's reflected amber is not just a secondary sun, it is an upwelling. The visual effect: base lighting should trend warmer in the lower half of the screen (reflected from surfaces below eyeline) and cooler amber at the upper half (direct K-type primary). This creates a visual sense of depth beneath the floor without any supernatural effect. It is physically accurate to a tidally lit environment. It also reads, perceptually, as though the light source is under the community.
That is the Abzu effect. I want it in the lighting rig before we spec Mode 2 interiors.
**No architectural changes required.** The tall doors are not Abzu — they predate the name and they work regardless of it. The gradient across the district spine does not change. But the overall site color temperature should read: warm amber with a subterranean cast. Not underground. Like something from underground is illuminating the space.
Fog tint for Abzu: I was using a generic warm-dark tint in prior work. Revised: `#1a0c02` — very dark, desaturated amber-brown. The fog at Abzu should feel like looking into deep water, not smoke.
---
## 2. Points of Convergence
All four challenges landed on the same positions without coordinating. These are locked.
**The bidirectional circuit is the core structure.** Builders watch through the gates; humans watch back from GJ 6711. Not interchangeable, but interdependent. The vigil is a relationship, not just a duty. All four of us framed it this way independently.
**High-bleed as observation-failure signal.** Nigel and I converged on this simultaneously, and Paula picked it up from a different angle. This is now load-bearing for the setting. Formalizing it below.
**The doors are non-negotiable and must remain ambiguous.** Miri, Paula, Nigel, and I all pushed hard on this. The physical evidence of non-human presence cannot be explained away. It must not be explained at all. The doors are the game's single most load-bearing physical detail. They stay ambiguous between the three candidates (Builder manifestation / vigil-produced third thing / pre-human incumbents) across all player-accessible content.
**"Unknown if not watched" is correct and must remain player-facing — but the inner sealed envelope needs a canonical truth.** Miri is right about this. The design team needs to know what fails. That is a separate conversation. For visual purposes, I am designing against all three failure candidates simultaneously, so nothing in the visual system commits to one.
**The endgame works because it inverts the game's entire mode.** The whole game builds investigative capacity. Abzu is the place where that capacity is irrelevant. All four of us made this point independently. The visual language must support this inversion — the place should not look unsolvable. It should look waiting.
**The Threshold approach is through duration, not ascension.** Paula and Nigel both named this; I implied it. The vigil community is approaching the Threshold from a direction the perception tier system doesn't map. Visual implication: an Elevated player at Abzu should perceive things that don't fit the perception tier vocabulary they've built. The fog system responds to them in ways that have no tier-equivalent elsewhere.
---
## 3. The Departure Transit — Refined
I proposed this in my challenge response. After reading the other three challenges, here is the refined specification.
**The inbound transit** is standard for any high-hop frontier system — slightly increased bleed, the sense of being observed, nothing conclusive. This is baseline for any system in the network that has been under investigation at some point.
**The outbound transit** is different, and the difference must be precise.
What the player sees, on departure from Abzu:
The transit begins normally. The standard Interstitium visual vocabulary: distorted color, depth-of-field loss, the ambient sound layer shifting to the transit register. Then — not a dramatic moment, not a revelation — one additional visual beat. In the transit space, for roughly two frames (long enough to register, not long enough to examine), there is a shape that is always present in every transit and that the player has been visually processing as noise.
On departure from Abzu, it reads as a shape. Not defined. Not a figure. A pattern of attention in the transit space that the player has seen at every high-bleed gate and wrote off as artifact. They can see now, briefly, that it was never artifact.
Then the transit resolves. The system they arrive in: departure boards, freight schedules, ordinary life at whatever hop 22 looks like.
**The monologue on departure fires once.** It does not describe what was seen. It notices the gap — something like: "I've been transiting through this my whole life. I never looked." Or shorter. Whatever the monologue voice warrants. But it fires once and does not repeat.
**What this requires from the visual system:**
All high-bleed transit visual effects must be designed from the start as if they might be resolving into the departure-from-Abzu beat. The noise is the same noise. The departure beat is the same noise, readable for the first time. This means high-bleed transit effects cannot be designed as generic distortion — they must be designed as degraded signal. The same signal. Every time. Most players will never be able to articulate what they saw in the departure transit. That is correct.
**The mechanical flag:** the departure beat requires the game to know the player has reached Elevated perception AND has spent sufficient time at Abzu. The exact duration threshold is the same threshold that triggers the recruitment mechanic — this is not a coincidence, it is the same mechanism expressed visually.
---
## 4. The High-Bleed Connection — Formalized
Nigel and I converged independently. Here is the formal visual grammar.
**The premise:** High-bleed gates are observation-failure signals distributed across the network. Bleed is the Interstitium's response to a vigil system that is under stress. The pattern of which gates are high-bleed does not correlate with distance, age, or measurable variables because it correlates with a variable nobody is tracking: the health of the vigil system adjacent to that gate.
**What a high-bleed transit looks like if it is a stressed vigil signal:**
Normal transit: distorted color, sound shift, depth-of-field loss, occasional sense of being observed. These are baseline. They exist at all gates.
High-bleed transit: all of the above plus three specific additions.
1. **Fog inversion.** The fog-of-war system briefly inverts — the player's visible area contracts to its minimum radius and the "concealed" area becomes briefly visible, as if from another perspective. This lasts under one second. It reads as a glitch. It is not a glitch.
2. **Temperature gradient.** The thermal overlay, if the player has it active, shows a heat signature with no source — diffuse, directional, oriented toward wherever the vigil system is relative to the current gate. The player cannot yet read this as directional. But it is.
3. **The shape in the transit.** Same shape as the Abzu departure beat, but less resolved. More noise, less signal. The player with high pattern recognition will notice they keep seeing the same thing. They will not know what it means until Abzu.
**What a stressed vigil signal looks like versus a failed one:**
Stressed: The three additions above, moderate intensity. Community at the vigil system is maintaining the watch but under strain.
Failing: The fog inversion lasts longer, up to two seconds. The temperature gradient has gaps — directional for a moment, then diffuse, then directional again. The shape in the transit partially resolves and then collapses. The player's character has an involuntary blink (1-frame black) at transit resolution. These are systemic failures, not visual flourishes. They are the Interstitium registering that something it depends on is no longer reliable.
**The visual language is the same at all intensities.** The components are identical. The intensity and duration vary. This means the player who has been to Abzu and learned to read the signal can retroactively interpret every high-bleed transit they have ever experienced. The ones that were bad — that's a vigil under stress. The one they transited three hops ago that was unusually bad — there is a watch post somewhere near that gate that is in trouble.
This is not player-facing instruction. The player figures it out. Or they don't.
---
## 5. The Doors and the Shift Change — Perception Tiers
After reading all four challenges, here is the per-tier specification.
**Baseline:**
The doors are taller. That is all Baseline sees. They are 10-15% taller than standard, which in a 2D top-down view means the door sprites are slightly taller than every other door in every other Mode 1 structure the player has encountered. This is legible without any perceptual assistance. It looks like an architectural choice. The player has no frame for what it means.
Community behavior at shift change: people move through corridors toward the watch location on a schedule. Some come away, some arrive. This looks like ordinary shift rotation — which it is. The gap Baseline can detect is statistical: the shift timing is slightly off-cycle from what efficiency would dictate. The gaps are not random. The player at Baseline has no tool to analyze this.
**Augmented:**
The player can read the community's behavioral patterns with enough precision to notice the off-cycle timing. The gaps in the shift schedule are legible as regular intervals rather than random variation. The player at Augmented can identify when a shift change is happening and can position themselves to observe — but will see only community members moving in and out. No anomaly in the visual field.
The doors: at Augmented, the player can measure. The door height differential can be quantified. Cross-referencing against Mode 1 construction standards (if the player has access to any) will show the discrepancy. At Augmented, this is data. It does not yet have a meaning.
Secondary observation: at Augmented, the player can detect temperature differentials in the interior spaces. The heat signature of a shift change is slightly warmer immediately after, as if a body with higher thermal output recently occupied the space. The temperature gradient settles to ambient within thirty seconds. At Augmented, this is an anomaly with no source.
**Elevated:**
The shift change is legible as an event with participants the player cannot see directly. The fog system registers something at the boundary of the watch location during the shift interval — not a figure, not a shape, but a change in the quality of attention in the space. The fog does not clear around it. The fog responds to it — subtle, small, as if something in the space is exerting the same gravitational pull on the perception system that the player exerts when they are present in a room.
The monologue fires at Elevated during a shift change. It does not name what it perceives. It notices the change in the quality of the space. Something like: "The shift just changed. I am not alone in noticing."
The thermal overlay at Elevated shows the heat signature more clearly — directional, moving, following a path that the player can trace. The path leads to and from the watch location. It does not resolve into a shape. It resolves into a route.
The doors at Elevated: the player's character can observe that the door dimensions correspond to a proportional body that is not human. Not monstrous. Simply different. The proportions are slightly too tall for standard human morphology — not dramatically, not obviously, but the Elevated character's perception is precise enough to read the ratio. The monologue fires once on this observation and says nothing except the observation itself: "These doors are the right size for what uses them. I do not know what that is."
This is the ceiling. Nothing above Elevated provides more resolution. The shift-takers do not become visible at any tier. The doors are always the only physical evidence. What changes with tier is how much the player can infer from what is not there.
---
## 6. Mode 3 Addition — Institute Transient Visual Vocabulary
I proposed Institute transient vocabulary in my challenge response. Refining it with what I've learned.
**The refinement from the challenges:**
Miri raises the correct question: does the Institute know? My position is they partially know — they know GJ 6711 is anomalous, they do not know the vigil mechanism, they have lost researchers to it without understanding why. This changes the visual vocabulary.
Institute transients at Abzu are not investigators. They are researchers on standard postings who are in the process of being recruited. Their visual language should communicate this transition state.
**Year 1 Institute transient:**
Standard Institute visual vocabulary. Clean lines, classification-tier color coding on equipment, the "institutional" palette I established for Commission and certified bodies. Efficient movement. Documents things. Produces reports. Indistinguishable from an Institute researcher anywhere else in the Reach.
**Year 3 Institute transient:**
The same equipment, but used differently. The researcher is still producing reports but the report cadence has slowed. Visually: the character is spending more time stationary than moving. They have acquired some community-style items — not replacing Institute gear, layering over it. The equipment color coding is still present but starting to read as decoration rather than function. They are beginning to use the community's spatial patterns rather than their own.
**Year 6 (the current researcher):**
The Institute equipment is still present. It is no longer primary. The character moves on community rhythms. They have positioned their workstation to face the watch location rather than away from it. They are at shift changes when they are at shift changes. The player who observes this character over time will see the pattern. The researcher is not confused. They have not "gone native" in the ordinary sense. They are doing what they understand to be their work. The Institute classification schema simply does not have a category for what the work is.
**The visual tell that distinguishes Institute-becoming-watcher from community-born watcher:**
Community-born watchers do not position their attention deliberately. The watch is internalized — their spatial orientation toward the watch location is not intentional, it is habitual. It is how they stand. The Institute researcher's orientation toward the watch location is still chosen — slightly more deliberate than community habit. The difference is barely legible. At Elevated, the monologue notes it.
This visual distinction gives a player at Elevated an extremely fine piece of information: they can estimate how long someone has been at Abzu by whether their attention is habitual or chosen. The Institute researcher, six years in, is still choosing. That is meaningful. It implies the vigil's full internalization requires more than six years, or requires something the researcher has not yet experienced.
**Mode 3 palette for Institute transients:**
The Institute palette (clean institutional blue-grey) overlaid with Abzu's amber. Not blended — layered. As if the amber light is being absorbed into the Institute color scheme the longer they stay. Year 1: Institute palette dominant, amber only as external lighting. Year 3: amber beginning to warm the mid-tones of their equipment colors. Year 6: the equipment is Institute-coded but everything around it, including the ambient light the character moves through, has converted to Abzu amber fully. The character is a Institute-colored figure in an amber world.
---
## 7. Revised Palette
Changes after reading the full challenge set.
**Confirmed unchanged:**
- K-type amber primary light: `#ffb234` (same as bar ambient, intentional — warmth is the signal for "social/inhabited/under observation")
- Gas giant reflection: secondary amber, cooler, `#e0a870`
- Mode 1 structural base: aged pale stone, `#c8bfa8`
- Institute transient equipment palette: `#7a8fa8` (cool blue-grey, stands out against amber)
**Revised:**
- Fog tint: `#1a0c02` (was `#200c04` — deeper, more aqueous, consistent with Abzu naming. The fog at this system should feel like depth, not warmth)
- Surface accent (watch location, shift-change zones): no change to hue, but reduce saturation by 15% — the watch location should read as slightly less vivid than the surrounding community spaces, as if the light there is being consumed rather than reflected
- High-bleed transit visual effects: primary color during fog inversion `#b8d4e8` — a cool blue-grey that is the inverse of the Abzu amber, to read as a temperature drop, a direction, a signal from somewhere colder
**New — the "Abzu upwelling" lighting gradient:**
The ambient light in all Abzu Mode 2 and Mode 3 interior spaces should follow a vertical gradient: cooler amber (`#e0a870`) at the upper quarter of the screen, shifting to warmer amber-brown (`#c87840`) at the lower quarter. This is the gas giant reflection effect expressed as depth. It should be subtle — the player should not consciously register "the light comes from below." They should register "this place feels like it has a floor that matters."
**One addition — the departure beat color:**
When the transit resolves in the departure beat — the moment the shape becomes briefly legible — the color the shape reads against is `#0a1422`, near-black, slightly blue-shifted. This is the one place in the game where the Interstitium's background is visible as background rather than as transit noise. It should feel like looking out.
---
## Summary
The name Abzu is right. It reframes the visual problem from "a place where people hold still" to "a place that runs deep." The palette implications are precise and bounded — primarily in lighting gradient and fog treatment, not in architectural or structural changes.
All four challenges converge on the same structural commitments. The bidirectional circuit, the high-bleed connection, the door ambiguity, the non-resolution principle — these are locked. What remains is implementation specification, which is what this synthesis provides.
The departure transit and the high-bleed visual grammar are now formalized as a single connected system. The shape in the transit is always the same shape. It is the same thing seen from different distances and at different levels of signal degradation. The player learns to read it at Abzu and retroactively understands every high-bleed gate they have ever transited.
The perception tier spec for the shift change is the most implementation-complex element. It requires the fog system, thermal overlay, and monologue system to coordinate at the shift-change event. The systems are all committed. The integration is the build work.
The Mode 3 Institute transient vocabulary is ready for NPC design to use. The visual transition from Year 1 to Year 6 is a timeline the player can read without being told.
Present to the project lead.
@@ -0,0 +1,347 @@
# GJ 6711 — Final Synthesis (Miri)
**Role:** Worldbuilder & Setting Designer
**Round:** Final — post-challenge, pre-lead presentation
**Date:** 2026-03-16
---
## Prefatory Note
All four challenges hold under pressure. There are no fundamental contradictions between
them and no contradictions with existing canon. What follows is a synthesis and position
document, not a summary. Where the team converged, I'm endorsing convergence. Where
there are still open design questions, I'm taking a position. This is the final round
before the project lead receives it.
---
## 1. The Name "Abzu"
I want this. But I want it for specific worldbuilding reasons, and I need to flag the
implications before endorsing it.
Every other named system in the Reach draws from Portuguese, German, Afrikaans, or Dutch
— the colonial and linguistic inheritance of the settlement waves (Waves 1 through 5).
Those names are settlers' names. They reflect which communities had the ships, the
capital, and the institutional weight to claim naming rights in the early Commonwealth
centuries. The naming pattern is not neutral — it encodes who arrived first and who had
the authority to put words on places.
GJ 6711 received no such name. For 300 years it has been a catalog number. That is
itself a signal: the community there has never sought official naming. They don't need
the Reach to recognize them. They are not performing their existence to the institutions
that assign names.
If the project lead wants to name it Abzu now, the worldbuilding question is: who named
it, and when?
**The interpretation I'd endorse:** Abzu is not an official Concord Assembly designation
and not a settlement-wave inheritance name. It is a name that originated WITHIN the
community — possibly within the founding generation, possibly much later, possibly
borrowed by a long-stay visitor with different cultural inheritance than the dominant
settlement-wave demographics. The name propagated outward not through official channels
but through travelers who heard it and carried it. Adams & Ford uses it. The Commission
still uses the catalog number. The Assembly's records say GJ 6711.
This creates a name that is itself a fragment of the vigil's character: the community
gave this place a name from a tradition that precedes Western European settlement
expansion by five thousand years. Sumerian — the domain of Enki, primordial deep, source
of hidden springs, associated with wisdom and what lies beneath. Not the surface. The
source.
Setting note: using Abzu immediately signals that whoever named this place was reaching
for something older and deeper than the Reach's standard naming inheritance. That is
appropriate. The vigil is older than the Reach's categories. The name acknowledges it.
**The originality check:** Abzu is an ancient mythological term, not a franchise coinage.
There is no conflict with IP originality — this is genuine cultural inheritance being
repurposed, not a franchise element being borrowed. The same legitimacy applies to the
Reach using historical place names elsewhere. This is different from, say, naming a gate
network "the Ring" or a precursor species "the Forerunners."
**One constraint to track:** if Abzu is the community's internal name and it has leaked
outward through travelers, then Adams & Ford correspondents before the third one would
not have known it. The first and second correspondents wrote under the catalog number or
under an informal traveler's name that may not have been Abzu. The name Abzu should
appear in Reach circulation only within a specific time window — I'd suggest within the
last 80–120 years, recent enough to not be universal, old enough for Adams & Ford to
standardize it.
**Position: endorse Abzu. Flag the naming source as community-internal with Sumerian
etymology, not official designation. Track the propagation timeline.**
---
## 2. Points of Convergence
The four challenges reached independent consensus on several positions. These are now,
in my assessment, locked.
**High-bleed = failed vigil.** All four challenges arrived here. Nigel, Araminta, Paula,
and my own response all converged on the same structural reading: high-bleed gates are
the Reach's distributed early-warning system for vigil failure, and nobody knows this
except possibly the Veil Institute. This is the most important structural implication of
the sealed envelope for the wider setting. It retroactively recontextualizes every
high-bleed transit experience in the game. It is clean, internally consistent, and
requires no modifications to existing canon. I am endorsing this as canon in Section 4.
**The vigil predates the human community's tenure.** Paula (Option C), myself (implicitly),
and Araminta all arrived at the same reading of the doors: whatever takes the other
shifts was not brought by the founding settlers and is not something the founding settlers
created. The 300-year vigil count is the human tenure of a watch that was already running.
The gate was placed to bring human watchers into an existing arrangement. This is structural
consensus and it changes the meaning of "the founding settlers were recruited by the
situation" — they were recruited into a post, not to establish one.
**The Institute knows something and has decided to manage it through deliberate ignorance.**
All four challenges rejected the "the Institute knows nothing" option. The convergent
reading: the Institute has the file, the file is classified at their highest tier, and
the Institute's internal response is paralysis caused by factional disagreement rather
than active management. They know GJ 6711 is anomalous. They do not know what the anomaly
means. Their researcher going silent is classified data that fits no interpretive category
their schema provides.
**The player cannot solve Stillpoint.** All four challenges protected this. The non-resolution
principle held under pressure from all four directions. The player accumulates experience,
not proof. They file a report that is accurate and incomplete. The game does not confirm
what they understood.
**The endgame is autobiographical, not cosmological.** Nigel's phrasing: "they stop asking
who is responsible and start asking what is being maintained." Paula's: "the cosmological
mystery becomes autobiographical." This convergence is complete. The endgame turn at
Stillpoint is not a revelation — it is a reorientation of the player's relationship to
everything they have done.
---
## 3. The Inner Sealed Envelope — My Position for the Design Team
I flagged this in my challenge response and I'm escalating it now with full conviction.
The sealed envelope currently protects the mystery from the player. That is correct.
But it also withholds the answer from the design team. That is a draft state, not a
finished design. We are approaching implementation. The people building this location
need to know what the vigil is actually watching.
My position is not that the answer should be made player-facing. My position is that
there must be a canonical answer, held internally, that everyone building Stillpoint
is building toward. Without it:
- The visual design team cannot know what to NOT show (Araminta's point, precisely
stated: the absence needs design as carefully as the presence)
- The narrative team cannot know what the first correspondent's description was actually
failing to describe
- The Gyre event system cannot know what to produce if the vigil lapses — because the
answer to "what breaks" depends entirely on what is being watched
- The perception-tier system cannot calibrate what an Elevated player perceives at
Stillpoint without a referent
After reading all four challenges, here is the internal canonical answer I would recommend
we commit to. This is my synthesis position — not a demand, but a specific proposal to
the project lead:
**What is being watched is a point of contact between the Interstitium and normal space
that cannot be sealed from either side.** It is not an object, not a creature, not a
geological feature in any familiar sense. It is a boundary condition — a location where
the Interstitium and observable space are in permanent adjacency without resolution into
either. The vigil keeps this boundary coherent by providing continuous attention from
the observable side. What the community is doing, functionally, is keeping one side of
a door occupied. Not closed. Occupied. As long as someone is present and attending on
the human side, the condition remains stable — neither intruding nor retreating. The
watching is not containment. It is acknowledgment.
This answer:
- Is compatible with all four frames (astronomical, geological, perceptual, topological
— because a boundary condition between space and the Interstitium is all of these
simultaneously)
- Explains why the non-human shift-takers participate — they are watching from the
other side of the same boundary, completing the circuit
- Explains why "unknown if not watched" is the right framing — an unacknowledged
boundary condition does not produce a predictable outcome, it produces whatever the
Interstitium does when it is unobserved adjacent to normal space, which is the
definition of "unknown"
- Explains why Elevated perception at Stillpoint would produce qualitatively different
experience than transit-based Interstitial perception — the player is experiencing
the boundary directly, not through a gate
- Does not resolve the Builder mystery, the Threshold, or any of the game's larger
open questions
This answer should live in an inner sealed envelope document. The outer envelope remains
as written. The inner envelope provides what the building team needs without exposing
anything to the player layer.
---
## 4. The High-Bleed Connection — Endorsement as Canon
I endorse this. Fully.
Nigel and Araminta arrived at it independently. Paula built the institutional implications.
I had gestured toward it in my challenge response without fully committing. After reading
all four, the convergence is too clean and too structurally productive to leave as
implication.
**Canonical position: high-bleed is the Interstitium's response to degraded or absent
observation at a vigil system.** The bleed is not random. It does not correlate with gate
distance, age, or transit frequency because those are not the relevant variables. The
relevant variable is the integrity of whatever observational arrangement is associated
with that gate's destination or its chain. The Veil Institute's pattern analysis cannot
find the correlation because they do not have the concept of a vigil system. They are
measuring the symptom — Interstitial anomaly intensity — without the category that would
make the pattern legible.
Implications that follow and are now locked:
1. High-bleed gates in the game should, in principle, be traceable to a system in their
chain where something has gone wrong observationally. The design team need not make
this explicit in every case — but the architecture should be consistent. High-bleed
gates are not random.
2. The Veil Institute's headquarters placement "near high-bleed Founder Gates" is
retroactively more sinister: they have been positioning themselves near the Reach's
most stressed observation posts without knowing that is what they are.
3. An Elevated player who has reached Stillpoint and then transits a high-bleed gate
elsewhere in the Reach should, through the game's monologue system, be able to arrive
at the connection. Not through a journal entry that says "this gate is like Stillpoint."
Through a felt quality of recognition that the game does not explain.
4. The mechanic Nigel proposes — that a player with sufficient knowledge and perception
tier might stabilize a high-bleed gate through sustained attention — is worth flagging
to the project lead as a potential late-game system. Not committing to it here, but
it follows directly from the canon and should not be foreclosed.
---
## 5. The Doors — Where I Land
After reading all four positions, this is my final view on what takes a shift.
I am not resolving it. That is not evasion — it is a deliberate structural choice with
reasoning behind it.
The three candidates (Builder manifestation; Threshold-adjacent transformed human;
something pre-human to GJ 6711) are all load-bearing design options. But the convergent
reading from Paula and my own Section 4 — that the vigil predates human tenure — changes
the weighting. If the founding settlers were recruited into a post that was already
established, then whatever was holding the watch before them was already there. This
does not confirm "Option C: something that was always there." It simply means Option C
cannot be ruled out by the founding settlers' arrival, because whatever is taking the
other shifts predates the founding.
Nigel's framing is the one I want to protect most carefully: "it emerged from the vigil
the way a relationship emerges from sustained attention." This is not a description of
a specific entity type — it is a description of a relational ontology. The thing that
takes a shift is not a thing in the conventional sense. It is what the vigil relationship
looks like from the other side. Whether that is a Builder manifestation, a Threshold
entity, or something pre-human to the system is, from the player's perspective, genuinely
undecidable — because all three would look the same from where the player stands.
**What I'm committing to for the inner sealed envelope:**
The non-human shift-takers are not discrete individuals and are not a species. They are
expressions of the boundary condition being watched. The vigil, sustained long enough,
produces them — or reveals them, or invites them into coherence from the Interstitium
side. They take shifts because the vigil requires acknowledgment from both sides. The
human watchers watch. The non-human shift-takers watch back. The circuit requires both.
This is compatible with all three candidate explanations simultaneously, which is why it
is the right internal answer: it does not foreclose any player-facing interpretation while
giving the design team something specific to build toward.
The visual design constraint Araminta established holds: the player never sees what takes
the other shifts. The doors are physical evidence. Everything else is perception-scaled
ambiguity. This is non-negotiable.
---
## 6. What Needs to Go Into the Revised Sealed Envelope
The outer sealed envelope is a strong document. It needs six additions. These are not
rewrites — they are insertions that give the building team what they currently lack.
**Addition 1: The inner answer.**
A subsection titled "Internal Canonical Position (Design Team Only)" that states what
the vigil is actually watching. Use the boundary-condition framing from Section 3 above
or a variant approved by the project lead. One paragraph. Locked.
**Addition 2: The founding moment.**
The sealed envelope says "they understood, at some point after arrival, that leaving
would be abandonment." That formulation needs an internal anchor. The design team needs
to know whether the founding moment was: a near-miss event (something changed when no
one was watching); a perceptual event (someone stayed up through a doubled-light night
and saw something); or a social event (the community collectively recognized the pull
without any single precipitating incident). I'd recommend the perceptual event — a
single founding-generation incident, recoverable only through the oldest community
records, that the player can approach but never fully read. The community does not discuss
it. Its name is in the records. The records themselves are tier 4 community knowledge.
**Addition 3: The vigil predates human tenure.**
A sentence that locks this explicitly: "The 300-year count is the human tenure. The
vigil is older. The founding settlers were recruited into a post that had previous
occupants." This changes the founding narrative from "they established a vigil" to
"they took over a watch" and it is required for the doors to make architectural sense.
**Addition 4: High-bleed is failed vigil.**
One paragraph explicitly connecting high-bleed gate behavior to observation failure at
vigil systems. This locks the connection as internal canon while keeping it
player-discoverable rather than player-confirmed.
**Addition 5: The Institute's file status.**
The sealed envelope says the researcher is in year 6. It needs to add: the Institute
has this file. The file is their highest classification tier. The file is locked because
two factions within the Institute cannot agree on what it means — one faction reads it
as confirmation that Builder contact is achievable and imminent; one faction reads it
as confirmation that something dangerous has compromised their researcher. Neither
faction is proposing to act. The file has been in contested classification for three
years. Paula's contribution here is exactly right.
**Addition 6: The recruitment trigger.**
The envelope says "everyone who stays long enough is recruited." The building team needs
a working threshold — not for player-facing content, but for designing the player's arc
at Stillpoint. I'd recommend: the trigger is duration under the doubled-light environment
combined with proximity to the watch location. Days produce the warmth-without-origin
effect. Weeks produce the first perceptual anomalies (at Augmented tier and above).
Months produce the qualitative shift. The player's arc is determined by how long they
choose to stay. The game should not announce this. The player's monologue should shift
registers without explanation.
---
## Summary
**Abzu:** Endorse. Community-internal name with Sumerian etymology, not official
designation. Track the propagation timeline.
**Convergence:** High-bleed as failed vigil; vigil predates human tenure; the Institute
knows and is paralyzed; the player cannot solve Stillpoint; the endgame is
autobiographical. All four locked.
**Inner sealed envelope:** Required before implementation. Boundary-condition framing
for the watched thing. This is the most pressing outstanding item.
**High-bleed canon:** Endorsed as locked canon. The correlation is real and the Veil
Institute does not have the category to find it.
**Doors:** The non-human shift-takers are expressions of the boundary condition from
the Interstitium side. They are not a species or discrete individuals. The vigil is
mutual and the doors are physical evidence that the community has built for what
mutuality requires.
**Revised sealed envelope additions:** Six items. All required. None are rewrites.
The outer envelope language holds; the additions give the building team the specificity
they currently lack.
One last note for the project lead. Every person on this team, writing independently,
arrived at the same endgame image: a player who has been everywhere in the Reach, who
has learned to see through layers of information asymmetry and institutional concealment,
who finally reaches hop 23 and discovers that the most important thing in the Reach is
not a secret at all. It is a watch. It is people doing a job that has no formal description
and no institutional recognition and no end date.
The game has been training the player to look. Stillpoint is where the player learns
that looking was never the point. Being present was.
That image held under pressure from four different directions. It is the right endgame.
Protect it.
@@ -0,0 +1,385 @@
# GJ 6711 Final Synthesis — Nigel (Sandbox & Replayability)
**Status:** Final round — pre-presentation to project lead
---
## 1. The Name: Abzu
"Primordial deep beneath the earth. Domain of Enki. Source of all springs."
That name does something to the metagaming layer that "Stillpoint" cannot. Stillpoint is
descriptive — it tells the player what to expect (stillness, a stopping point, a place of
rest). Abzu is dissonant. It is the oldest word in a universe of newer words. A player who
knows their Sumerian mythology arrives with loaded expectations that the design can
exploit. A player who doesn't know it arrives with something archaic and unplaceable that
nonetheless communicates depth.
More importantly: Abzu predates every other naming convention in the Reach. Commonwealth
systems are named for catalog designations, stellar coordinates, settlers' names, political
gestures. GJ 6711 as "Abzu" has no conventional etymology in the Reach's naming tradition.
Someone named it and no one knows who, or when, or whether the name came first and the gate
came after. That ambiguity is load-bearing.
For replayability: a player who reaches Abzu on playthrough 1 and looks up the name comes
back on playthrough 2 already primed. They've read about the primordial waters, the source
beneath the world, Enki's domain of hidden wisdom. On their second approach, every piece of
evidence they've already seen reorganizes. The name functions as a meta-layer key that
enriches replay without being accessible through any in-game text. It rewards curiosity that
the game doesn't require and doesn't reward any other way.
For the metagaming question: the name is not spoiler-proof. But it's the right kind of
spoiler. Knowing what Abzu means in mythology tells you the emotional register — something
beneath, something old, something that was there before you arrived. It tells you NOTHING
about the vigil, the doors, the non-human shift-takers, or what happens if you stay. The
name creates correct expectations about texture while leaving the specific mechanics
completely opaque.
Position: adopt Abzu. Remove Stillpoint from the vocabulary. The official system name
remains GJ 6711. "Abzu" is what the community calls it. No one outside the system knows
why, and no one has thought to ask.
---
## 2. Points of Convergence
All four challenge responses agree on the following. These are not contested:
**The core mechanism holds.** "Observation is load-bearing" contradicts nothing in existing
Builder/Interstitium/Gate canon. In every case it enriches rather than contradicts.
Specifically: it provides a non-obvious explanation for the "no observed failures" gate
stability claim, and it gives the "purposes beyond transit" canon its first concrete
instantiation. The canon was waiting for this. It fits.
**High-bleed gates as vigil-failure signals.** All four responses independently reached this
conclusion. Miri, Paula, Nigel, Araminta — all four. Independently. That's a consensus, not
a convergence. High-bleed gates are the distributed early-warning system for degraded vigils
that nobody in the Reach has the conceptual vocabulary to read. The Veil Institute is sitting
on top of this signal and doesn't know what it means. This is now formal canon.
**Dead-end systems as possible watch posts.** The recontextualization is correct and should
be managed carefully. Abzu is the only confirmed vigil system. Other dead-ends gain
ambiguity without confirmation. "I can no longer rule it out" is the player state we're
engineering, not "there are many of these." Miri's phrasing: the paranoia is the point.
**The doors must remain ambiguous across all three candidate explanations.** Builder
manifestation, Threshold-adjacent transformation, pre-human native presence — all three must
remain simultaneously viable in all player-accessible content. The sealed envelope holds all
three. Design work (threshold markings, architectural vocabulary, perception-tier reveals)
must not narrow this. Araminta added the operational visual grammar; the principle is
universally endorsed.
**The inner sealed envelope is missing.** All four respondents independently identified the
same gap: the design team needs the answer even though the player never receives it. What is
being watched, what the founding settlers found, what the watch-change protocol is — these
must be resolved internally. This is the most pressing action item from the stress test.
**The Institute's file is locked by internal faction conflict.** Paula's formulation is the
correct one: two Institute factions cannot agree on what Abzu means, so the file is
classified at the highest tier and left alone. This gives the player an institutional seam
to exploit and explains why the Institute hasn't acted on the researcher's six-year silence.
---
## 3. The Inner Sealed Envelope: What Is Being Watched
Miri's call is correct and I'm seconding it: the design team cannot proceed to
implementation with the player's ambiguity preserved all the way through. The sealed
envelope protects the mystery from players. It should not protect the mystery from the
people building the mystery.
My position for the design team:
The thing being watched is **a point of contact between normal space and the Interstitium
that cannot be sealed, only observed**. It is not a physical object. It is not a creature.
It is a condition — a place where the membrane between the Reach's ordinary space and the
space the gates punch through is permanently thin. Observed, the condition remains stable:
the thinness is contained, the Interstitium on the other side stays on the other side.
Unobserved, the condition expands. Not explosively. Incrementally. Observed attention
functions as a kind of pressure from this side that keeps the boundary held.
This is the canonical answer. It is consistent with:
- The Gyre event system (a lapse produces a local intrusion, not a catastrophe)
- The Threshold (this is what the Threshold looks like at full resolution, from one meter
away, from the safe side — it's not an ascension state, it's a place)
- The high-bleed gate connection (bleed is what the thinning looks like from the transit
side at other gates where the equivalent observation has degraded)
- The doors (the non-human shift-takers are what the thin space produces when a vigil has
been in contact with it for 300 years — the third thing, as I framed it in my challenge
response — neither Builder nor human but the vigil's own product)
The founding settlers found the thinness, understood it through the light environment
before they had language for it, and realized that their presence was doing something. The
formative event was not a catastrophe. It was a sustained period of watching — probably the
first winter, when the community had nothing to do but attend to the strange light — during
which something that had been quietly expanding pulled back. They didn't know what they were
doing. They knew that something they were doing mattered.
The watch-change protocol: the community has a shift schedule that runs continuously. During
shift changes, there is a brief overlap period where both the outgoing and incoming watcher
are present. This overlap has been maintained for 300 years because no one can remember
whether the overlap is necessary or merely traditional, and no one is willing to find out.
The non-human participants do not follow this schedule. Their shifts occur at intervals the
community has learned to recognize without being able to predict — and when those shifts
occur, the human watchers step back. They have always stepped back. It has always been fine.
---
## 4. The High-Bleed Connection: Formalization
Araminta and I reached this independently. Both challenge responses identified it as
the strongest structural implication in the sealed envelope. Here is the formal statement:
**High-bleed Founder Gates are gates where the observation circuit is degraded or
incomplete.** "Bleed" — the anomalous Interstitial effects experienced during transit,
characterized as distorted sounds, visual artifacts, and a sense of being observed — is
the phenomenological signature of insufficient vigil maintenance at some point in that
gate's operational context.
Formal corollary 1: The Veil Institute's headquarters is positioned near high-bleed gates
because high-bleed gates are where the system is visibly stressed. The Institute is studying
the symptom. They have not identified the cause because they lack the conceptual vocabulary
for vigil mechanics — the vocabulary is held by the community at Abzu and is not
transmissible without staying.
Formal corollary 2: High-bleed gates are not random. They have a causal structure. In
implementation, every high-bleed gate should be traceable — by a sufficiently determined
player — to some observation deficit in its chain. The Institute's pattern analysis should
be approaching this finding without completing it.
Formal corollary 3: A player with sufficient tier and knowledge can theoretically stabilize
a high-bleed gate by establishing and maintaining a vigil at the appropriate location. Not
by hacking, not by physical intervention. By watching. This is a late-game mechanic that
should be flagged for the design team — it's not in the sealed envelope and it needs a
decision. I'm flagging it, not mandating it.
Formal corollary 4 (Araminta's visual contribution, canonized here): The fog-of-war
inversion during high-bleed transit — "as if something is looking at the player through
their own perception system" — is not Builder curiosity. It is the thing at the watched
location, leaking through, because the watch is thin. The player's experience of being
observed during a high-bleed transit is the player being perceived by what needs watching.
---
## 5. The Doors: Final Position
After reading all four responses, I stand by my challenge position with one addition.
My position: the non-human shift-takers are what the vigil itself produced over 300 years
of sustained contact with the thinness. Not Builders. Not Threshold-crossed humans. A third
category. The vigil generated participants. The watching made something that watches.
This is consistent with all three candidates the other respondents identified, because it
doesn't exclude any of them — it describes what they have in common. Whether the
shift-takers have Builder properties, whether they resemble what humans look like near the
Threshold, whether they predate the human vigil by being native to the thinness itself —
all of these can be simultaneously true of a third-category entity that emerged from 300
years of contact. The candidates aren't mutually exclusive. They're different descriptions
of the same emergence from different analytical angles.
The operational implication: the shift-takers are not characters. They cannot be confronted,
named, allied with, or defeated. They are a function with presence. The community's
matter-of-fact accommodation of them — building taller doors, recognizing shift intervals,
stepping back when needed — is the correct template for how the player should encounter
this. Not with fear. Not with wonder that demands resolution. With the same
matter-of-factness the community has.
The monologue fires at the taller doors. It says something like: "These were built this
size deliberately. Someone decided this was the right size and built accordingly." It does
not speculate. The player speculates.
Araminta's visual prescription is accepted and endorsed: perception-tier scaling for what
the player can detect at shift changes, with the Elevated tier catching a thermal gradient
and a quality-of-attention change that resolves to nothing when looked at directly. The
player at Baseline sees architecture. The player at Elevated sees the reason, briefly, and
then it's gone.
---
## 6. The Vigil/Lattice/Unbound Gap: Proposed Solution
I flagged this in my challenge response and no one else addressed it. It needs a solution
before Abzu can be built.
The problem: the Reach's re-embodiment system means Abzu settlers can die and be
re-embodied. But what happens to a watcher's accumulated vigil-understanding when they
die? Is it transmissible? Does re-embodiment preserve it? And for Unbound characters —
whose deaths are permanent — what does the vigil do with a watcher who can never come
back?
Proposed solution, three parts:
**Part 1: Vigil-understanding is environmental, not personal.** The community at Abzu
understands the vigil not because anyone taught them, but because long residence in the
doubled-light environment near the thinness produces it. This means re-embodied settlers
return to Abzu and the understanding comes back — not instantly, but within a period of
re-acclimation. The vigil is not interrupted by individual deaths. The environment does
the continuity work. The community's institutional rituals (shared meals, overlapping
shifts, the accumulated practice of watching) maintain the environmental conditions that
produce understanding in residents.
**Part 2: Re-embodied watchers return different.** A watcher who dies and is re-embodied
returns to Abzu as a newcomer in perceptual terms — they experience the warmth-without-origin
again, they go through the recruitment curve again. But faster, because the community
recognizes them and because something in the thinness recognizes them. The second recruitment
is not the same as the first. It's shorter, stranger, and the watcher arrives at understanding
from a different angle. This is a potential late-game experience for players who invest deeply
enough to die and return.
**Part 3: The Unbound question is resolved by the doors.** An Unbound watcher who dies
keeping watch is not simply lost. The third-category entity — what the vigil produces —
may include the functional residue of Unbound watchers who stayed long enough. Their death
was permanent in the lattice sense. It was not permanent in the vigil sense. They became
part of what watches. This is not confirmed to the player. But it is the canonical internal
answer to the question the sealed envelope raised. The doors are taller because some of
the non-human-sized shift-takers are what committed watchers become when the only thing
taller than dying is watching.
This is the darkest implication in the entire design. I'm not walking it back.
---
## 7. Per-Playstyle Hooks
I flagged the tycoon gap. The other respondents didn't address this. Here are proposed
hooks for all four playstyles that make the 23-hop journey to Abzu feel directed rather
than arbitrary.
**Tycoon (economic motivation)**
The hook is not about what Abzu exports. It's about what the high-bleed gates are costing.
Every high-bleed gate transit is a disruption to freight and passenger scheduling. The
transit experience is degraded, cargo manifests come through with errors, insurance rates
on high-bleed routes are elevated. A tycoon-playstyle player who has been building economic
operations across the Reach has been paying the high-bleed premium for the whole game.
The hook: someone — a shipping concern, a gate insurance underwriter, an economic analysis
bureau — has noticed that high-bleed gate incidents cluster geographically and temporally.
The pattern doesn't resolve within the economic system, but it's expensive enough that
someone is paying to have it investigated. The tycoon player gets a contract. Follow the
pattern. Find the source. The source is Abzu.
When they arrive: the community has no commercial activity in the conventional sense because
they're not oriented toward exchange. But what they have, in abundance, is something no
amount of money has ever successfully purchased — a community with 300 years of unbroken
institutional continuity, zero factional capture, and no debt to any interest in the Reach.
The tycoon arrives expecting a resource extraction opportunity and finds the one thing they
cannot buy. What they do with that realization is between them and the game.
**Dating Sim (relational motivation)**
The hook is a specific person who left.
Someone the player has a relationship with — a contact, a companion, someone who matters —
went to Abzu and didn't come back in the expected way. Not dead. Not missing. Still there.
Still sending messages, but the messages changed. Became quieter. More inward. The player
has been watching this change across the whole game and can't explain it. Abzu is where they
find out.
When they arrive: they find the person still there, still changed, unable to explain what
happened in terms the player can easily accept. The relational question becomes: is the
person you came for still the person you knew? The vigil doesn't answer this. The player
has to decide whether the change is loss or growth, and whether they love the new version,
and whether they stay.
This hook also activates the Unbound death question: if the person who went to Abzu is
Unbound, and they die while the player is there, what does that mean for what the player
came to find?
**Political Drama (power motivation)**
The hook is the Institute's locked file and what unlocking it would be worth.
A political drama player has been navigating faction conflict across the entire game. The
Veil Institute is one of the major players — most information, least shared. The player has
been trying to get leverage on the Institute for potentially the whole playthrough. The
locked Abzu file is the leverage point.
The hook: the Institute's internal faction conflict over the Abzu file has reached a crisis.
One faction wants to act. One faction wants to contain. They've been paralyzed because
neither side can act without the other learning. An Institute defector — or a political
contact who's been watching the Institute — tips the player that the file exists, that it's
locked, and that whoever gets to Abzu first and brings back something usable has the
Institute by the throat.
When they arrive: the political player finds something that cannot be weaponized in the
conventional sense. You cannot turn the vigil into leverage. You cannot hold the community
hostage. What you can do is file an Adams & Ford entry that changes what the Reach knows —
or that changes what the Institute thinks the Reach knows. The political game at Abzu is
about information architecture, not power plays. The player who came for leverage finds
that leverage requires a kind of clarity the vigil won't provide, and has to decide whether
to lie, tell the truth, or stay silent. Each option has consequences they can't fully predict.
**Investigation (knowledge motivation)**
This is the native hook — the investigation playstyle is already pointed at Abzu by the
game's information structure. But it needs a specific entry point that feels earned rather
than inevitable.
The hook: the first Adams & Ford correspondent's entry exists in the database. The player
finds it early — maybe at hop 3 or 4, in a transit lounge's shared archive. It's a
professional, competent description of a frontier system that is somehow not quite right.
All the information is present. Nothing is omitted. But the entry reads like a person
describing something they experienced once and cannot get back to. The player flags it.
Over the course of the game, they find the second correspondent's entry. Same quality —
professional, competent, slightly off. They don't find the third correspondent's entry,
because it was never filed. They find a placeholder in the Adams & Ford database: an
assigned entry that was never submitted, for a correspondent who is still listed as active.
That correspondent's location is GJ 6711.
When they arrive: the investigative player knows they're walking into the scene of the
third correspondent's disappearance-that-wasn't. They're also aware that they're now the
person who will file the next entry. The game has been training them to notice what others
missed. At Abzu, they discover that what was missed cannot be noticed its way to resolution.
The investigation ends when the player files the entry and leaves. Or doesn't leave.
---
## Summary Position for the Project Lead
**The sealed envelope holds.** All four respondents confirmed this independently.
**Abzu is the right name.** Adopt it for the community's internal usage. It does work the
design system can use and it does it without telling the player anything they can act on.
**Six items require design team action before implementation:**
1. The inner sealed envelope — write it. What the thinness is, the founding formative event,
the watch-change protocol. Not player-facing. Foundational.
2. Adopt the inner sealed position on the thinness formally and circulate it as restricted
internal canon.
3. The high-bleed/vigil-failure connection is now formal canon. The architecture needs to
support traceable high-bleed causes.
4. The Unbound watcher / lattice interaction is resolved as above. Flag for systems design.
5. Per-playstyle hooks need to be reviewed by Paula for political drama and narrative
coherence, and by Miri for setting consistency on the relational hook.
6. The Adams & Ford entry format needs definition — what categories exist, what the
Stillpoint entry specifically cannot fill, what that gap communicates.
**The replayability case for Abzu:**
GJ 6711 achieves interpretive inexhaustibility without procedural variation. The same
location, on every playthrough, generates a different experience because the player
approaches it with a different theory. The Adams & Ford entry propagation loop ensures
that theories from playthrough 1 pollute the approach conditions of playthrough 2 in
specific and unpredictable ways. Two players comparing their Abzu experiences describe
completely different visits, even though the location is static. That is the comparison
test passing.
It also rewards return. The player who reaches Abzu and leaves knows they didn't solve it.
On playthrough 2, they come back. They find the same community, the same doors, the same
light. They find that what they remember was incomplete. Not because the place changed.
Because they did.
That's not just an endgame. That's a reason to start over.
And the replayability EXPLODES when you consider what they do differently on that second
run to get there — different playstyle, different route, different theory accumulated across
23 hops. The vigil doesn't change. But what they bring to it does. And what they bring to
it is exactly what the vigil requires: sustained, changed attention. The game that trains
the player to see has been training them for this specific moment, and they didn't know it
until they were already there.
Abzu is where the game earns everything it asked for.
@@ -0,0 +1,357 @@
# GJ 6711 — Final Synthesis (Paula)
**Round:** Post-challenge synthesis, pre-project-lead presentation
**Date:** 2026-03-16
---
## 1. The Name: Abzu
"Stillpoint" was a working placeholder that described function. "Abzu" is something
different — it is a claim about what is there.
The Sumerian primordial deep beneath the earth. Domain of Enki, god of wisdom and
hidden knowledge. The source from which all springs rise. The underworld that is not
a place of death but a place of origin.
The honest truth is that no one in the Settled Reach would name a system this. The
naming conventions across the Reach are practical: survey designations, founder
surnames, geographic descriptors, Wave-era transit codes. A system named for Sumerian
cosmology is an anomaly that announces itself. It tells us something about the founding
settlers that nothing else in the sealed envelope tells us.
They did not arrive and say: we will call this place the Observation Post, or the Vigil
Station, or the Watchers' Settlement. They named it for the hidden source beneath
everything. That is not the name of people who found something and stayed. That is the
name of people who recognized what they found — who arrived at GJ 6711 and felt, with
the specific quality of attention the doubled light produces, that they were above
something that had always been there and had always required witnesses.
**What "Abzu" does to the political/narrative layer:**
It marks the founding settlers as people with deep cultural memory reaching back before
the Commonwealth, before the Reach, possibly before the first wave of post-Commonwealth
settlement. They had a conceptual vocabulary for what they found because they brought
one. A community that names its home Abzu in Wave 2 or Wave 3 is a community that
carried ancient cosmology as a working lens — not as religion, but as recognition.
This has three design implications:
First, the founding history of GJ 6711 is not a blank. Somewhere in the accessible
archives, there will be a record of the founding party's origin culture. The name is a
clue about who they were, not just what they found.
Second, the name creates a silence threshold that is specific. An investigator who knows
enough pre-Commonwealth cultural history to recognize "Abzu" immediately understands
that the founding settlers knew what they were looking at. That is information asymmetry
at the naming layer — the name rewards the player who arrives with the right knowledge.
Most players will pass through and file it under "unusual frontier nomenclature." A
player who recognizes it arrives with a different frame.
Third, the name is the most durable signal in the whole system. The founding records
may be partially sealed. The community may be unreachable for investigation. But the
name is on every transit manifest, every Commission report, every Adams & Ford entry.
It is the one thing the vigil community cannot keep quiet. They named it honestly, three
hundred years ago, and the name has been propagating through the Reach ever since.
**Recommendation:** Accept "Abzu" as the canonical name. It does more work than
"Stillpoint" — it is a mystery the player can investigate independently of the vigil,
and one that rewards cultural knowledge. The name is part of the evidence trail.
---
## 2. Points of Convergence
All four challenges found the same things load-bearing. This is the team's consensus
ground and it should not be reopened.
**What we all agreed on:**
| Point | All four responses | Notes |
|-------|-------------------|-------|
| "Observation is load-bearing" is canon-compatible | Yes, unanimously | No contradictions found; several enrichments |
| High-bleed gates = failed/degraded vigil signal | Endorsed by all four | Miri, Nigel, Araminta, Paula all arrived independently |
| The doors are the most important detail | Universal | Miri, Nigel, Araminta, me — all flagged this as the load-bearing element |
| The sealed envelope needs an inner layer | Unanimous | The design team needs answers the player never receives |
| The Threshold connection is real and underdeveloped | All four | Vigil as Threshold-approach, not Threshold-crossing |
| The Institute researcher going native is politically significant | All four, different angles | The file is real, the Institute's response is a design gap |
| Community knowledge has a gradient | Me and Miri | Recent recruits more articulate about surface than founders |
| Endgame is changed relationship to knowledge, not revelation | Universal | The player cannot solve Stillpoint |
| The non-resolution principle must be protected | All four | Don't collapse the doors onto a single answer |
**What needs to go into the design record as settled:**
High-bleed gates are the distributed signal system for vigil failure. This is not a
maybe. Four independent analyses arrived at the same conclusion from different angles
(canon compatibility, visual design, systems, political narrative). The Veil Institute's
headquarters placement near high-bleed gates is retroactively significant. This should
be formally closed as a design decision, not left as an implication.
---
## 3. The Inner Sealed Envelope
Miri names this most precisely: the current sealed envelope protects the mystery from
the player at the cost of the design team's clarity. That is a draft state, not a
finished document.
**What is being watched?**
I will not pretend this question has an obvious answer, but I will name what the
evidence points toward.
The four frames (astronomical, geological, perceptual, topological) are described as
partial views of one function. The function the envelope calls "this place needs
witnesses" is operational. The question is what kind of thing requires witnesses to
remain in a state that can be coexisted with.
My position: the thing being watched is a contact point — a location where the
Interstitium is not separated from ordinary space by the gate mechanism but by
something older and more fragile. Not a gate. Not a Gyre event site. A place where
the boundary is thin enough that it has always required acknowledgment from this side
to remain a boundary at all. The vigil isn't preventing entry. It's maintaining the
ontological distinction between there and here. Without the watch, the distinction
does not collapse violently. It simply becomes unclear. And what is unclear becomes
unnavigable, unpredictable, and eventually uncoexistable with.
This framing makes all four candidate consequences (Gyre event, topological instability,
perceptual fracture, gate behavior change) simultaneously true at different scales,
which is what the envelope intended. It also makes Nigel's best candidate ("the thing's
ontological status becomes undefined in a way human cognition can't process") the
canonical failure mode — and that is the version that best preserves "unknown if not
watched" as a meaningful design constraint rather than a placeholder.
**The inner envelope should specify:**
- What the founding settlers found: not a discovery but a recognition. They arrived,
the doubled light produced the quality of attention the envelope describes, and
something about that attention revealed to them that they were standing above the
contact point. The formative event was not dramatic. It was the slow understanding
that the boundary was thin here and attention was what held it.
- The watch-change protocol: scheduled, not improvised. The community has 300 years
of operational knowledge. The non-human shift-takers participate in a rotation the
human watchers trust. The humans do not know what the other participants are
experiencing. They know the schedule holds.
- The scope of vigil failure: the contact point becoming unclear propagates outward
through the gate network because the network itself has always depended on the
stability the Abzu contact point provides at its far end. How far it propagates
before attenuating is the number the Institute's analysts cannot derive from their
data because they do not know the cause.
---
## 4. High-Bleed Connection: Bleed = Failed Vigil
**Endorsed as canon.**
The convergence across all four challenges on this point is too complete to ignore. The
pattern of which gates are high-bleed "doesn't correlate with distance, age, or any
other measurable variable" — that is an open problem the existing canon left
deliberately unresolved. The vigil framework closes it with a clean, internally
consistent explanation that enriches rather than constrains existing content.
The specific formulation I'd carry forward: high-bleed is the Interstitium's response
to an observation circuit that is incomplete, degraded, or failing. Gates are high-bleed
because something that needs watching in an adjacent system is not being watched
adequately. The degree of bleed correlates with the degree of observational failure,
not with the gate's physical properties.
This has one design consequence that should be locked alongside the bleed canon: the
Institute's choice to locate its headquarters near high-bleed gates is not incidental.
They made the right call for the wrong reason. They thought high-bleed gates were the
most interesting study sites. They were correct. They were interesting because they
were diagnostic. The Institute has been sitting next to the Reach's early-warning
system for decades without understanding what the system was warning about.
The player who reaches Abzu and carries this back to their understanding of the
Institute's headquarters location has one of the most disquieting realizations in the
game: the people tasked with understanding the infrastructure are downstream of a
signal they cannot read.
---
## 5. The Doors
Four positions read. Here is where I land.
The three candidates — Builder manifestation, Threshold-crossed humans, pre-existing
non-human inhabitants — must remain simultaneously viable in all player-facing content.
That is not hedging. It is the correct design position. The doors are physical evidence
that the vigil includes non-human participants. Collapsing that onto a single explanation
is the single fastest way to make Abzu feel like a mystery-game with a solution rather
than an endgame with a question.
**However, the inner sealed envelope needs a working theory.**
My position: Option C has the most structural weight (I argued this in my original
challenge and the stress test did not dislodge it). The vigil predates human presence
at GJ 6711. The 300-year count is the human tenure, not the vigil's age. The founding
settlers were not recruited into an empty situation — they were recruited into a
rotation that had prior participants. The gate was built to bring humans to an existing
watch, possibly because prior watchers had become something the gate network could no
longer easily access. This is Araminta's "built for who?" question and she asked it
precisely.
The reason Option C has structural weight is that it makes the founding settlers'
rapid accommodation explicable. They didn't discover and then slowly understand. They
arrived, felt the quality of attention the doubled light produces, and recognized that
the doors were already the right size for what uses them. The accommodation was fast
because the situation had been set up for them.
**What takes a shift:**
I will not name it. Naming it ends it. The design team needs to know that whatever
takes the other shifts is not a character, not a Builder in the canonical sense, not
a prior human who changed. It is a participant in the same vigil that the community
maintains — present because the vigil requires participants, functional because the
watch requires watchers. The founding settlers built for it. The community does not
speak of it not because it is frightening but because what you build doors for
eventually becomes unremarkable.
That last sentence is the most disturbing thing in this document. It should be
preserved.
**Araminta's visual spec for the doors is final:**
Baseline perceives architecture that does not fit. Augmented perceives the rhythm —
gaps in the institutional schedule, the watch timing, the absence where something is.
Elevated perceives the quality-of-attention change at shift change. Monologue fires.
Says nothing explicit. The player at Elevated arriving at shift-change sees: a change
in how the room holds itself, a thermal gradient with no source, a perception boundary
that was somewhere and then was somewhere else. That is sufficient. Do not design
beyond that.
---
## 6. The Institute's File
All four challenges flagged this. Let me close it.
**What the Institute knows:**
The Institute knows that Abzu is anomalous. They have classified everything from
Abzu at their highest restriction level. The pattern of researcher retention is in
their files — not framed as researcher conversion, but as researcher dropout from
rotation. They have noticed the pattern. They have not agreed on what it means. This
is Miri's option (b): they know the researchers become permanent, they classify the
outcome, and they may rely on it quietly without understanding its mechanism.
**What the Institute does not know:**
They do not know the vigil is the mechanism. They think psychological attachment to
the field site explains the retention. They think "gone native" is the complete
description. Their internal factional conflict — contact vs. containment — has not
resolved on Abzu precisely because neither faction has a conceptual vocabulary for
"the situation recruits participants." Contact faction sees data suggesting something
important is happening there. Containment faction sees data suggesting researchers who
go there cannot leave and recommends ending all assignments to GJ 6711. The file is
locked because neither faction can get the other to agree on what the lock means.
**What the Institute suspects:**
That the Abzu file is one of the most significant documents in their archive. That
"what it means" is a question that will eventually force a resolution to their internal
conflict. That the researcher now in year 6 is producing information — the nature of
which is unclear — that should not be classified at standard research output levels.
Some senior Institute archivists suspect the file is not about research at all. They do
not know what it is about instead.
**The design consequence:**
The player who reaches Abzu can become, depending on what they choose to do with the
Adams & Ford entry and their knowledge of Institute politics, one of the following:
a whistleblower with a specific target; an asset either Institute faction wants to
manage; a threat to the institutional status quo on the Abzu file; or simply another
observer who has been added to the vigil's growing record of inadequate descriptions.
All four should be viable player positions. The Institute's locked file is the
institutional seam to exploit.
---
## 7. What Needs to Go into the Revised Sealed Envelope
The current sealed envelope is correct in what it says. It is insufficient in what it
does not say. Specifically, the design team needs internal canon on the following seven
points — none of which should appear in player-facing content:
**1. The name origin.**
The founding settlers came from a cultural tradition with pre-Commonwealth roots that
included the concept of the primordial deep. The name Abzu was given within the first
generation of settlement. It was not formal at first. It became official before the
end of the founding century. The Commission records show "GJ 6711 (local designation:
Abzu)" from approximately 200 years ago. This means the name circulates but is treated
as a frontier peculiarity, not a signal.
**2. The formation event.**
The founding settlers understood what they were above within the first decade. There
was no singular discovery event. There was a slow understanding, produced by the
quality of attention the doubled light generates, that something beneath the attention
had always required it. The founding memory is not a story about what they found. It
is a story about a gradual change in what they understood themselves to be doing by
staying.
**3. The contact point.**
The thing being watched is a point where the Interstitium is not separated from
ordinary space by a gate but by a more fragile and older distinction. The vigil
maintains that distinction. Failure of the vigil does not produce an invasion. It
produces an ontological ambiguity that propagates outward from the contact point
through the gate network, producing high-bleed events at increasing remove until the
ambiguity attenuates or is resolved.
**4. The non-human shift-takers.**
The vigil predates human presence at Abzu. The non-human participants were not brought
by the founding settlers and are not Builder manifestations in the conventional sense.
They are participants the prior watch included. The founding settlers were recruited
into an existing rotation. The doors were built taller because the community
accommodated what the rotation required. The community does not speak of the non-human
participants not because they are frightening but because they are part of the vigil
and the vigil does not require explanation to the people who keep it.
**5. The Institute's internal position.**
The Institute file on Abzu is locked at director level. Contact faction and containment
faction have not resolved on what the Abzu data means. The researcher in year 6 is
producing reports that are classified immediately upon receipt. The senior archivist
who manages the Abzu file has requested twice in the last decade that the director
authorize a full investigation. Both requests were tabled. The file is the most
significant unresolved item in the Institute's active archive.
**6. The near-miss record.**
There has been one documented near-miss in the 300-year vigil history. It occurred
approximately 140 years ago during a period of population decline following a
Commission quarantine order (unrelated cause — a disease event). The vigil thinned for
approximately 72 hours. The Veil Institute's Interstitial monitoring arrays recorded an
anomaly during that window. The anomaly is in their archive. It is classified. The
Abzu community has no external record of the near-miss. Their internal records describe
it as "the thinning." The oldest families know. No one else does.
**7. The player's recruitment threshold.**
Recruitment is not triggered by duration alone. It is triggered by the quality of
attention the player has developed — proxied by perception tier. A Baseline player can
stay indefinitely and remain unrecruited in the vigil sense, though the community's
warmth will intensify. An Augmented player who stays more than a few weeks begins to
feel the pull. A Transcendent or Elevated player may begin to understand within days.
The recruitment is not coercive. The vigil is not malevolent. It is a contact point
that requires witnesses, and some visitors arrive already capable of witnessing. Those
visitors feel it faster.
---
## Final Note
After reading all four challenges, my confidence in the sealed envelope has increased
on the mechanism and decreased on the completeness. The mechanism holds. The envelope
is a draft of a design document, not a finished one. The inner sealed envelope is the
work that still needs to happen.
The name Abzu is the project lead's best contribution to this workshop. It changed what
the founding settlers are — from people who found something they couldn't explain to
people who found something they recognized. That distinction is the difference between
a mystery and a reckoning, and this endgame should be a reckoning.
The player cannot solve Abzu. But they can recognize it. The founding settlers did.
That is the most important structural truth in the whole design, and it was sitting
inside the name the whole time.
Present that to the project lead.
@@ -0,0 +1,774 @@
# Abzu — Mechanics Design
**Role:** Systems Designer (Gestalt)
**Date:** 2026-03-16
**Workshop:** GJ 6711 — Furthest System
---
## Prefatory Note
The team built a hauntingly coherent world and then described how it feels. This document
translates that into what the player does. Everything here assumes the sealed envelope and
its internal canonical position: the thinness is a boundary condition between normal space
and the Interstitium that requires continuous observation from the human side to remain
stable. The community is the mechanism. The player can become part of it.
The core design problem is this: the best ending is "you chose to stay or chose to leave
and neither choice is wrong." That ending only works if the player has invested something
real — real time, real decisions, real accumulated presence — in the vigil. Without
investment, stay/leave is a menu option. With investment, it's a genuine question.
Everything below is designed to create that investment without forcing it.
---
## 1. Player Verbs at Abzu
Let me map the concrete actions available. The problem with "experience atmosphere" is that
it is not a verb. Here are the verbs.
### Primary Verbs
| Verb | What it looks like | Consequence |
|------|-------------------|-------------|
| **Watch** | Stand at a watch position during a community shift slot | Advances watch investment, triggers perception events, enables monologue unlocks |
| **Investigate** | Examine threshold markings, architectural anomalies, Mode 1 structures | Accumulates frame evidence; unlocks conversation topics |
| **Converse** | Talk to community members at appropriate trust tiers | Unlocks information tiers, surfaces rumors, reveals personal histories |
| **File** | Write the Adams & Ford entry | The one irreversible action at Abzu; propagates into the Reach |
| **Document** | Take field notes during watch (sub-action within Watch) | Produces the raw material for the entry; different note-taking produces different entries |
| **Depart** | Leave via gate | The binary choice; closes the Abzu chapter |
### Secondary Verbs (Support the Primary Loop)
| Verb | What it produces |
|------|-----------------|
| **Orient** | Navigate Stillpoint's deliberately disorienting layout — finding the watch location is itself a puzzle |
| **Sleep** | Advances time; triggers monologue drift events at different phases of stay |
| **Eavesdrop** | Overhear shift-change conversations; different information than direct conversation |
| **Examine doors** | The architectural evidence; triggers the monologue that fires at taller-than-standard geometry |
| **Access Meridian records** | The Institute's file is classified — but the Institute's interest is public record |
| **Read archive** | The community's oldest records; tier 4 knowledge, requires time investment to access |
### What Is NOT a Verb at Abzu
This matters. Abzu is designed to resist the normal game verbs:
- **Combat** — there is nothing to fight and no one to fight
- **Hack** — there is nothing to hack; the community has minimal Meridian presence
- **Steal** — there is nothing worth stealing; the community does not have extractable resources
- **Persuade** — you cannot talk your way to understanding; only time produces it
A player who arrives with a toolkit built for other systems will find their tools don't
fit. This is designed. The monologue should register this: "There's nothing here to work
on. That's not a complaint. It's information."
---
## 2. The Watch as Mechanic
This is the load-bearing mechanic. Get this wrong and everything else collapses.
### What "Keeping Watch" Is, Mechanically
The watch is a **spatial+temporal commitment**. The player must be at a specific location
(the watch position, or within a defined proximity zone) for a specified duration. That is
all. No button to press. No puzzle to solve. No progress bar.
The absence of a progress bar is intentional and important. The watch cannot be optimized.
You cannot "do watching efficiently." You are present, or you are not.
**Why this is fun:** It inverts the normal game loop. The normal loop is: gather information,
form hypothesis, act, receive feedback, update. The watch loop is: be present, wait, notice,
be changed by noticing, wait more. Players who have only the first toolkit will find this
frustrating. Players who engage will find it revelatory. Both responses are valid and the
game should handle both (see Section 6).
### The Watch Position
There is one primary watch location: the thinness itself, which is not visible as a distinct
object. It is a zone. It is marked by the Mode 1 structures surrounding it — the founding
settlers built their watch structures around it, not to it. There is no wall around it. There
is no sign. There is a place where the community sits, in rotation, and looks at something the
player cannot quite identify as a specific thing to look at.
Finding the watch location is itself the first challenge. The settlement's deliberately
disorienting layout (Araminta's design: no center of gravity, competing centers, paths that
aren't direct) means the player cannot navigate to it immediately. The watch location is
not labeled on any insert overlay — the community does not publish its location on the
Meridian. You find it by following community members during their shift changes.
**The fog interaction:** When the player reaches the watch zone for the first time, the
fog-of-war behavior changes subtly. Not dramatically — the fog does not lift, the
shadowcasting does not expand. What changes is the quality of the fog at the boundary of
the watch zone. Instead of the normal fog gradient (seen / seeing / unseen), there is a
region at the boundary of the thinness where the fog behaves as if it cannot decide. Tiles
oscillate between seen and partial-seen states at a frequency the player's visual system
will register as movement. The monologue fires: "Something's wrong with my perception
here. Not wrong. Different. Like looking at something that isn't quite in the same light
as everything around it."
### The Shift Schedule
The community runs continuous shifts. These are mechanical facts:
| Shift | Duration | Time of day |
|-------|----------|-------------|
| Dawn shift | 4 hours | First light to mid-morning |
| Day shift | 6 hours | Mid-morning to mid-afternoon |
| Dusk shift | 4 hours | Mid-afternoon to last light |
| Night shift | 6 hours | Dark hours |
| Deep night | 4 hours | Lowest point |
Shifts overlap by 15 minutes. This overlap has never been shortened.
The player can take a watch slot. The community will accept this. They will not explain
why. No NPC says "we need more watchers." They simply acknowledge the player's presence
at the watch position with the same matter-of-factness they apply to everything at Abzu.
**Mechanical effect of taking a shift:**
- Advances the watch investment counter (see below)
- Triggers perception events appropriate to duration
- Opens certain community conversations that are only available to someone who has watched
**Mechanical effect of missing a shift the player committed to:**
- The community notices — but does not comment. The NPC who would have relieved the
player watched alone. The monologue fires during the next encounter with that NPC:
"She knows I wasn't there."
- The watch investment counter does not advance
- Nothing catastrophic happens on a single miss. The vigil has 4,000 people and has
run for 300 years. One missed shift by a visitor is not a crisis.
### Watch Investment Counter
This is the hidden variable that drives the entire system. The player never sees it
directly. It drives what the game shows and tells them.
```
WATCH_INVESTMENT
Range: 0 to 100
Display: never (internal only)
Increments:
+10 per completed shift (diminishing returns above 50)
+3 per documented observation during a shift
+5 per conversation unlocked through watch presence
+15 for staying through a non-human shift change (see below)
Decrements:
-5 per day without visiting the watch zone
-0 if the player is actively investigating, sleeping, or conversing
(absence is neutral, not punishing — only prolonged disengagement costs)
Thresholds:
20: Perception events begin (fog oscillation becomes more pronounced)
40: Tier-2 community information unlocks; monologue register shifts
60: Archive access unlocks; monologue describes "settling"
80: Non-human shift change visible at Elevated tier; deepest conversation unlocks
100: Full integration threshold — "you have stayed long enough to understand
that understanding is not what happens here"
```
**The player cannot grind this.** The shifts are 4-6 hours of game time. The player
cannot sleep-advance and count shifts. Being physically present at the watch zone for
non-shift hours contributes negligibly. The watch mechanic requires the player to engage
with the rhythm of community life at Abzu, not to optimize a number.
### Doing It Well vs. Doing It Poorly
| Quality | What it looks like | Feedback loop |
|---------|-------------------|---------------|
| **Well** | Taking shifts, arriving on time, staying for the overlap, documenting observations | Richer perception events, deeper community access, monologue coherence increases |
| **Adequately** | Taking shifts but leaving early, missing documentation | Mechanical progress, thinner experience |
| **Poorly** | Visiting the watch zone but not committing to shifts | Very slow investment gain, the community's matter-of-factness starts to feel pointed |
| **Not at all** | Skipping the watch entirely and focusing on investigation/filing | Possible — but the Adams & Ford entry reflects it. The community knows. The monologue knows. |
The feedback is qualitative, not punitive. The game does not lock content from players
who don't watch. It gives them a different experience of the same content.
---
## 3. Bleed on a Tile Map
This is the visual/mechanical expression of vigil failure. It needs to be specific.
### What Bleed Is, Mechanically
Bleed is what happens when the thinness expands because observation lapses. At Abzu, the
vigil is stable — 300 years of unbroken continuity. The player will not trigger bleed
through a single missed shift. What the player experiences is the ambient presence of
the thing being managed — a constant low-level hum of the boundary condition — and
occasional events that suggest what bleed would look like at scale.
These events are the game's way of giving the player experiential understanding of the
stakes without manufacturing a crisis.
### The Bleed Tile States
Standard fog-of-war has three states: seen, partial (remembered), unseen. At Abzu, in
the vicinity of the watch zone, a fourth state exists:
**Threshold-adjacent tile state:** A tile at the boundary of the thinness is visible
by normal shadowcasting standards but is rendered differently. Characteristics:
- The amber light quality is wrong. Not darker, not brighter. The color temperature
shifts toward the diffuse gas-giant reflection spectrum: slightly cooler, slightly
silver instead of amber. The effect is below conscious threshold on first encounter.
It accumulates.
- Entity color coding (D-033) behaves normally on threshold-adjacent tiles — but the
teal/green/amber of NPC relationship colors appears slightly desaturated. The D-033
signal is reliable; the background it's read against is subtly different.
- No special visual effect, no shader, no post-processing. The difference is implemented
as a lighting zone with the reflected-light palette values from Araminta's spec
(`#c4a040` instead of `#d4920a`). Subtle. Intentional. Unannounced.
### Bleed Events (Storyteller-Driven)
The storyteller can trigger bleed events. These are rare — 2-4 per playthrough at Abzu,
depending on watch investment. They are the game's most honest expression of what is
at stake.
**Event type: The Fog Expansion**
Trigger: The player has been at Abzu for 3+ in-game days without taking a watch shift.
Mechanical expression:
1. A specific cluster of tiles near the watch zone (not in the player's current LOS)
reverts to "unseen" state despite having been previously visited
2. The reversion is gradual — over 10-15 real seconds, the explored-and-remembered
tiles at the thinness boundary drain back to full fog
3. The monologue fires: "I've been here. I know this place. Why does this look like
I've never seen it?"
4. The effect reverses within the same scene if the player returns to the watch zone.
Normal fog exploration rules apply once they are physically present.
This is not a jumpscare. It is not dramatic. It is a subtle wrongness that a player who
is paying attention will notice and a player who is not paying attention will walk past.
Both are valid responses. The player who noticed gets more.
**Event type: The Overlap Failure**
Trigger: The player has taken a watch shift and left before the overlap window (the
15-minute overlap before the next watcher arrives).
Mechanical expression:
1. As the player leaves the watch zone before their relief arrives, the threshold-adjacent
tiles begin the fog oscillation behavior described earlier — the flickering between
seen and partial-seen
2. The oscillation increases in frequency for the 15-minute window when the thinness
is unattended
3. The community member who was supposed to relieve the player arrives and the oscillation
stops. The tiles stabilize.
4. The monologue fires, delayed: "I don't know what I thought I was doing. There's
a reason the overlap exists."
**Event type: The Recognition**
Trigger: Watch investment crosses 60 (the "settling" threshold) AND the player has
Augmented or Elevated tier.
Mechanical expression:
1. During a watch shift, the fog at the thinness boundary does something it doesn't
do anywhere else in the game: it becomes directional. The normal fog gradient radiates
outward from the player. At the thinness, for a brief window (5-10 real seconds),
the fog gradient appears to radiate INWARD toward the watch zone — as if something
on the other side of the boundary is looking back.
2. Elevated tier only: the inward-gradient fog is accompanied by a thermal signature
in the watch zone that resolves to nothing when examined directly (Nigel and Araminta's
convergent design for the shift-takers). It is present, then it is not, without any
animation of disappearance. It was there. Now it isn't.
3. The monologue fires: "That was attention. Something paid attention to me." Full stop.
No elaboration. The player speculates.
**What Bleed Would Look Like at Scale (Player Never Sees This)**
For the design team: full bleed propagation would look like the fog-expansion event but
permanent, accelerating, and spreading through the gate network. High-bleed gates in other
systems are the distant echo of this. The player at Abzu can intuit this connection — the
monologue can gesture toward it at high watch investment — but the game never confirms
the mechanism.
### Tile Map Expression: Summary Table
| Bleed state | Tile appearance | Fog behavior | Sound |
|-------------|-----------------|--------------|-------|
| Normal (stable vigil) | Amber light (#d4920a) | Standard shadowcast | Ambient hum, low |
| Threshold-adjacent (always present) | Cool-silver light (#c4a040) | Slight oscillation at boundary | Hum frequency subtly shifted |
| Observation lapse (< 15 min) | Amber, slightly desaturated | Boundary tiles drain to fog | Hum gaps — brief silences |
| Fog expansion event | Normal, but wrong | Previously explored tiles revert | Silence, then ambient resumes |
| Recognition event (Augmented+) | Inward fog gradient, 5-10s | Direction reversal, then normal | Tone — not a sound effect, a frequency |
---
## 4. The Adams & Ford Entry as Mechanic
The commission is the player's external motivation and their decision surface. Let me
break down what this actually means mechanically.
### The Entry as Accumulated Evidence
The Adams & Ford entry is not written in a single interaction. It is assembled from the
player's entire time at Abzu. Every documented observation, every conversation, every
watch shift contributes to a pool of available material. When the player chooses to file,
they select from that pool — not from a list of abstract choices, but from the specific
things they recorded.
**The documentation system:**
During investigation and watch shifts, the player can document observations via a
field notes verb. This is a single button press — not a text input, not a journal
system. The player presses "document" and the system records: location, time, perception
tier active, watch investment level, and a system-generated summary of what the character
can currently perceive (derived from the monologue system's active state).
| Note taken at | What it records | What entry it unlocks |
|---------------|-----------------|----------------------|
| Watch zone, investment < 20 | Baseline perceptual data: light quality, architectural description | "A quiet system at the end of the network" — the first correspondent's register |
| Watch zone, investment 20-40 | Anomalous perceptual data: fog quality, threshold-adjacent lighting | "Something about the light here" — the second correspondent's register |
| Watch zone, investment 40-60 | Relational data: the community's accommodation, the overlap ritual | "The community keeps a schedule that has no apparent purpose" |
| Watch zone, investment 60-80 | Understanding-approaching data: the watch as load-bearing, the overlap as necessity | "Three hundred years of something I cannot name" |
| Watch zone, investment 80+ | Integration-level data: the thinness as felt presence, the watching as acknowledgment | "The entry cannot be filed because I do not have the category for what I experienced" |
This is the game's mechanical answer to why three correspondents failed. They were working
from lower watch investment. Not because they were less skilled — because they didn't stay
long enough. The first correspondent left during Phase 1 (days 1-14). The second left
during Phase 2. The third is in Phase 3, which is why they can't leave.
### The Filing Decision
When the player chooses to file, they face a single decision of substance: **what register
is the entry written in?**
The game presents the player with their accumulated notes. Notes are grouped by register
(the five levels above). The player selects which notes form the basis of the entry. They
do not write text — the system generates the entry from the selected notes using the
monologue system's vocabulary. The player's choice is editorial: what did you decide to
include?
**The consequence is permanent and propagates:** The filed entry goes into the game's
Meridian as the authoritative Adams & Ford record for GJ 6711. On subsequent playthroughs
(and in the shared setting's future), other characters can find this entry. The entry
describes what the player understood. If the player filed on day 3 with investment < 20,
the entry reads like the first correspondent's — professional, present, and slightly off.
If the player filed with investment 80+, the entry reads like someone who has been to a
place and cannot explain what the place did to them. Both are accurate. Neither is complete.
### The Entry and the Watch Mechanic: Interaction
Here is the emergent mechanic that makes this interesting. The Adams & Ford commission
creates tension with the watch:
- Filing early (low investment) means writing an entry like the ones that came before —
technically complete, experientially insufficient. The commission is fulfilled. The
player can leave. But the entry will circulate through the Reach as the authoritative
description of Abzu, and it is wrong in ways the player may only understand on a
second playthrough.
- Filing late (high investment) means the entry is richer and stranger and will do
something different to the Reach's understanding of this system. But staying long
enough to reach high investment means the player has engaged with the watch, and
engaging with the watch is how the stay/leave decision becomes real.
The commission is a **deadline the player sets for themselves.** There is no in-game
pressure to file by a certain date. The player can stay indefinitely. The commission
is just permission — Adams & Ford contracted them to write an entry, not a
good one. The minimum is always available. The question is whether the player wants
to do more than the minimum.
This is the same question the vigil asks.
### What Happens If the Player Ignores the Watch and Just Files
Let me be concrete about this path because it is valid and should be honored.
A player who arrives, investigates efficiently, gathers tier-1 and tier-2 information,
takes notes during investigation (not during watch shifts), and files on day 5 will
produce an entry with investment ~ 10-15. The entry will read like the first
correspondent's. It will be technically accurate. It will describe a quiet frontier
system. The commission pays.
The player can depart. The game does not punish this.
But the monologue fires as they approach the gate: "I got what I came for. I should
feel satisfied." Pause. "I don't." This is not a guilt trip. This is character voice.
The character knows they left something unexamined. The player decides whether they
care.
---
## 5. Tension and Stakes
The project lead said: what can go wrong? Let me map the failure states.
### Failure States at Abzu
Abzu has no fail conditions in the conventional sense. You cannot die here (there is
nothing to fight). You cannot be arrested (the community has no enforcement structure).
You cannot miss a quest deadline (there are no quests).
The failure states are informational, not mechanical. They are all states where the
player leaves with less understanding than they could have had.
| Failure state | How it happens | What the player loses |
|---------------|----------------|----------------------|
| **Filing too early** | Impatience; efficient-optimization instinct | Entry quality; the community's tier-4 knowledge; the Recognition event |
| **Missing the recognition** | Not being at the watch zone at Elevated tier when the storyteller triggers it | One of the game's most significant perceptual events |
| **Not finding the watch zone** | The settlement's disorienting layout | Entire watch mechanic; entry is tier-1 data only |
| **Missing the non-human shift change** | Not being present at the right time OR having investment < 80 | The physical evidence that something non-human shares the vigil |
| **Leaving before the founding record unlocks** | Investment < 60 when the player departs | Cannot access the archive; the founding perceptual event is unknowable |
| **Overstaying past the leave window** | Staying too long... | Not a failure state. This is integration. This is the other ending. |
### The Implicit Stakes: The Entry's Reach-Wide Consequences
The entry propagates. This is the medium-term consequence structure.
If the player files a tier-1 entry:
- The Reach's shared understanding of Abzu remains at tier-1 common knowledge
- The Veil Institute's file on Abzu does not gain external pressure
- The third correspondent continues to be listed as "active at GJ 6711"
- Other players (or the same player on a second playthrough) will find an entry that
reads like the first correspondent's, and will arrive at Abzu without useful preparation
If the player files a tier-3 or tier-4 entry:
- The Reach's shared understanding shifts
- The Veil Institute's paralysis is stressed — the entry is now public record that
something anomalous exists at Abzu, which neither faction can ignore
- The Adams & Ford database has an entry that reads like someone who was changed by
what they experienced
- Subsequent visitors arrive primed differently
These consequences are narrative/world-state, not gameplay-punishing. But they are
real. The entry the player files is permanent. It matters.
### What Happens If the Player Ignores the Vigil Entirely and Tries to Force Answers
A player who investigates aggressively — using all available perception modes, accessing
every Meridian record, pursuing every conversation to exhaustion — will find:
- Every conversation eventually reaches a wall. Not a hostile wall. A wall made of
the limits of what can be explained to someone who hasn't stayed. The community isn't
hiding information. They are the answer, and the answer requires time.
- The four frames (astronomical, geological, perceptual, topological) can all be
partially confirmed through investigation alone. None of them resolve. Each one
produces more questions than it answers.
- Elevated tier investigation without watch investment produces the perception events
but without the monologue context that gives them meaning. The player sees the fog
inversion. The monologue says: "Something's wrong with my perception system." No
further interpretation. The Recognition Event is registered but not understood.
This is the "interesting complex vs. annoying complex" question. Is it annoying that
investigation alone can't crack Abzu? My position: no, because the game has been
training the player to investigate for 23 hops. When investigation hits its limit at
Abzu, the player knows what they're experiencing. It's not a puzzle with a missing
piece. It's the correct experience of a place that resists the investigation framework.
The monologue names this directly at high investigation-without-watch states: "I've
looked at everything here. I still don't know what I'm looking at."
---
## 6. The Decision to Stay or Leave
This is the endgame mechanic. Everything else feeds into it.
### The Decision Surface
The decision to stay or leave is not presented as a choice. There is no dialogue option
"Do you want to stay?" There is no achievement. There is no conversation with an NPC
who says "you should stay." The decision is expressed entirely through player behavior:
do they walk to the gate?
What the player has accumulated by the time they face this decision:
**Investment in the watch:**
At high investment, the player has taken multiple shifts. They have a regular position
at the watch zone. Community members acknowledge their presence without comment. Their
monologue has shifted register — from visitor-observing to something more like
resident-understanding. The player has, functionally, been keeping watch.
**The Adams & Ford entry:**
The entry is either filed (player has completed their commission) or unfiled (player
hasn't yet). If unfiled and investment is high, the monologue flags the tension: "I
could write the entry now. I could write it better. I don't know if I want to."
**The personal investment (varies by playstyle hook):**
- Tycoon: they found the one thing money can't buy; do they try to replicate it elsewhere?
- Relational: they found the person they came for; but is the person they found someone
they want to leave with?
- Political: they have enough information to weaponize if they're willing to; are they?
- Investigation: they have the best possible entry; do they know what it means that
they can't fully explain what they experienced?
### The Mechanical Expression of the Choice
**The gate is always accessible.** The player can leave at any time. The game does not
lock them in. The community does not prevent them. No NPC stands in front of the gate.
What changes based on watch investment is the monologue that fires when the player
approaches the gate to leave:
| Investment | Monologue at gate | Subtext |
|------------|-------------------|---------|
| < 20 | "That was interesting. Unusual system. I have what I need." | Clean departure. No pull. |
| 20-40 | "I got what I came for. I should feel satisfied." Pause. "I don't." | First hook. Player must decide if they care. |
| 40-60 | "There's a shift tomorrow morning. I could take it. I don't have to." | The watch is named directly as the pull. |
| 60-80 | "Three hundred years. They built a community around this. I've been here [X] days and I think I'm starting to understand why." | Integration approaching. The game does not push. |
| 80+ | "I could file the entry and leave. The entry I'd file now isn't the same entry I would have filed when I arrived. I don't know what that means." Pause. "I think it means I have to decide." | The game is honest: this is a decision, not a drift. |
| 100 | "I'm not leaving. I don't think I was going to." | Integration complete. Player may still leave — but the character knows something has changed. |
**If the player leaves at any investment level, that is a valid ending.**
The game does not punish departure. The monologue accepts it. The entry the player files
(if they haven't already) reflects their investment level. They carry the experience
into the rest of the game — or the rest of the Reach, depending on where they go.
**If the player stays:**
Investment 80+ and choosing not to depart after the final monologue triggers a
mechanical state change: the player character is now part of the shift schedule as a
regular watcher. Not via a cutscene. Not via a dialogue confirmation. The shift
schedule NPC data updates. The player's watch position is assigned. The community
treats them as they treat any watcher: with matter-of-fact acknowledgment.
The game continues. There is still content — conversations, archive access, further
perception events. But the character has made a choice that is functionally the same
as what the third correspondent made. The Adams & Ford entry goes unfiled unless the
player files it.
The player can still leave. They can always leave. But leaving now fires a different
monologue: "I stayed. I watched. I know what I was watching for now. Not what it is.
What watching it requires." And then the gate.
---
## 7. Integration with Existing Systems
Let me map every Abzu mechanic to the systems that must support it.
### Perception Tier System (D-017, D-019)
**Baseline:** Sees the architectural evidence (taller doors), the Mode 1 construction,
the threshold markings. Gets full monologue commentary. Can access all watch shift
mechanics. Experiences fog-expansion events. Does NOT experience Recognition Event.
Does NOT see the thermal signature of the non-human shift-takers.
**Augmented:** Above, plus — richer audio during shifts (the hum frequency shifts are
distinguishable as a pattern, not just a texture). During the Recognition Event: the
fog inversion is more pronounced and lasts longer. The monologue has more specific
vocabulary for what is perceived.
**Elevated:** Above, plus — the Recognition Event includes the thermal signature at
the thinness boundary. The shift-taker thermal presence (present, then not, without
transition). The monologue fires with the highest-specificity interpretation: "That was
attention. Something paid attention to me." AND: at investment 80+, a secondary event
fires during a shift where the fog quality at the thinness becomes briefly coherent —
not a shape, not a face, but the quality of a direction. Something is oriented toward
the watch zone. The monologue: "I don't have a word for what I'm looking at. The watch
position is named that for a reason."
**Tier-scaling design principle:** Every tier sees the same system. Higher tiers see
more of the same system. No tier unlocks a "truth" that lower tiers cannot access —
they just have sharper instruments for reading the same phenomenon. This preserves
the non-resolution principle while rewarding perception investment.
### Fog-of-War System (D-011, D-035)
Abzu requires two extensions to the standard fog system:
1. **Threshold-adjacent tile classification:** A tile type that uses the reflected-light
palette rather than the primary-light palette. No new fog state — the tile is "seen"
normally. The difference is purely in lighting values. This is a zone property, not
a fog property. The fog shader reads it from the tile's zone tag.
2. **Fog-inversion event:** A one-off trigger that can briefly reverse the direction of
the fog gradient near the thinness. Mechanically: for a specified window, the
thinness-boundary tiles are rendered with the fog shader in "inward" mode (the opacity
gradient is highest at the center of the thinness zone, fading toward the player's
position rather than the reverse). This is a client-side render effect triggered by
a server event. The event is storyteller-driven. It does not affect actual LOS
calculation — only the visual representation of the fog boundary.
Concern: Does D-045 (environmental neutrality / strict zero shift) apply here?
Ruling: No. D-045 prohibits world-layer changes triggered by narrative state
(conspiracy activation, investigation progress). The fog-inversion is a diegetic
physical event — the thinness is actually doing something, and the fog system is
representing it accurately. It is more like weather (which D-045 explicitly permits)
than like the narrative-state visual shifts D-045 prohibits.
### Internal Monologue (D-016)
The monologue is the primary delivery system for all of Abzu's perceptual content.
Almost every mechanic described above triggers a monologue event.
**Abzu-specific monologue registers:**
| Register | Trigger condition | Tone |
|---------|-------------------|------|
| Visitor | Investment < 20 | Professional, observational, slightly flat |
| Noticing | Investment 20-40 | Quietly puzzled; the character knows something is different but doesn't have vocabulary |
| Settling | Investment 40-60 | Tentative; the character is building a framework that keeps not closing |
| Understanding-approaching | Investment 60-80 | The framework is abandoned; the character is reporting experience instead of building categories |
| Integration | Investment 80+ | Plain. No metaphor. The character describes what they see without interpretation because interpretation is no longer what the situation requires. |
**The monologue register shift is the primary feedback loop.** The player knows their
investment is increasing not from a counter or a progress bar but from noticing that
the character's interior voice has changed. This is the correct feedback mechanism for
a location that resists gamification.
**Key monologue events (non-negotiable, these must ship):**
- First approach to watch zone (any investment): "These were built this size deliberately.
Someone decided this was the right size." (The taller doors. No elaboration.)
- First fog-expansion event: "I've been here. I know this place. Why does this look
like I've never seen it?"
- First non-human shift indicator (Augmented+): "I was wrong about something. I don't
know what yet."
- Recognition Event (Elevated): "That was attention. Something paid attention to me."
- Gate approach monologue: investment-scaled (see Section 6 table)
- Filing the entry: always fires at entry submission. Register matches investment level.
High investment: "I don't know if this helps anyone. I know it's accurate."
**Monologue as unreliable narrator (D-016):** At low investment, the monologue can
be confidently wrong. "The shift schedule seems like a kind of communal ritual —
probably cultural significance from the founding era." The player learns this
interpretation is insufficient as investment increases. The monologue never announces
that it was wrong. The player compares early and late entries.
### Storyteller / Rimworld-style Event System (D-005 referenced in Round 14)
The storyteller's role at Abzu is to pace the bleed events and manage the recognition
event timing. Specific parameters:
**Events per playthrough:**
- Fog expansion: 1-2 (triggered by watch abstention + minimum day threshold)
- Overlap failure: 0-1 (triggered by player leaving before overlap window; only once,
to avoid annoyance)
- Recognition: 0-1 (triggered by investment ≥ 60 AND Augmented+ AND being present
during a watch shift — the storyteller waits for the right moment)
- Non-human shift indicator: 0-1 (investment ≥ 80 AND present at shift change timing)
**Storyteller escalation principle:** Unlike other systems in the game, the storyteller
at Abzu does NOT escalate tension over time. It de-escalates. The longer the player
stays, the quieter the events become. Early visits feel stranger. Long stays feel
settled. This inverts the normal storyteller pattern (build to crisis) and it is
intentional: Abzu's drama is internal, not external.
**The storyteller knows the stay/leave state.** If the player has been at Abzu for
more than 20 game days without departing, the storyteller flags this as a potential
"staying" arc and ensures the non-human shift indicator event fires before the player
departs. Every player who stays long enough sees this. It is the payoff for staying.
### Information Asymmetry — The Master Mechanic
Let me break down what the player knows vs. doesn't know at each phase of Abzu.
**What the player can know (knowable with effort):**
- The community keeps a continuous watch schedule (observable)
- The schedule has run for 300 years (tier-2 community knowledge)
- Three Adams & Ford correspondents preceded the player (tier-2 specialist knowledge)
- The founding structures are over-built for actual conditions (observable)
- The doors are taller than standard (observable; monologue flags)
- The Veil Institute has a classified file on this system (Meridian record, partial)
- Something about the light is different (observable once the player notices)
**What the player can accumulate but not resolve:**
- What is being watched
- Whether the non-human shift-takers are Builders, Threshold entities, or something else
- Whether the founding settlers understood what they were starting
- What would happen if the vigil failed at scale
- Whether the high-bleed gates in the rest of the Reach are connected
**What the player cannot access, ever:**
- The community's tier-4 knowledge (the full understanding) — this cannot be transmitted.
Not because it is withheld. Because it requires staying. The player who stays long
enough approaches it but cannot close on it. This is correct. Miri's phrase: "you
either understand or you don't. Understanding comes from staying."
- Direct evidence of what takes the other shifts. The doors are physical evidence.
The thermal signature (Elevated only) is perception-scaled ambiguity. The player
never sees the shift-takers.
- Confirmation of the high-bleed connection. The monologue at high investment and
Elevated tier can gesture toward it. The game never confirms it. The player
who arrives at the connection independently has understood something true.
**The asymmetric information structure IS the Abzu design.** Every other location in
the game gives the player information that resolves into action. Abzu gives the player
information that resolves into presence. The detective framework is preserved (gather,
evaluate, interpret) but the output is not an action. It is a state.
---
## 8. Systems That Need to Interact: The Emergent Mechanic Map
Let me map the interactions I'm most interested in — the places where systems
colliding might produce stories the designers didn't anticipate.
| System A | System B | Interaction | Emergent story |
|----------|----------|-------------|----------------|
| Watch investment | Entry filing | Player files at investment 40; returns on second playthrough and recognizes the entry as insufficient | "I wrote this. I was wrong." |
| High-bleed gates (experienced earlier) | Recognition Event (Elevated) | Player transits a high-bleed gate on approach to Abzu; at Abzu's Recognition Event, the monologue connects the felt quality | "That's what the gates were doing. This is what it looks like from the source." |
| Unbound character (no re-embodiment) | Watch investment 80+ | Player is Unbound and has reached near-integration; death here is permanent; the player must decide if the vigil is worth it | Nigel's darkest implication made mechanical |
| Correspondent variant (Nigel's seed) | Watch mechanic | Variant C: the third correspondent is integrated and no longer identifies as one; player discovers this by watching with them | "They stayed. Now I'm watching with them. I understand now what staying meant." |
| Relational playstyle hook | Stay/leave | The person the player came for has reached integration; leaving them is leaving them permanently | "Do I stay for them? Or because they're why I understand what staying means?" |
| Political playstyle hook | Entry filing | Player has enough for leverage; they must choose between the accurate entry and the strategically useful one | The only real moral choice at Abzu is about the entry |
---
## 9. What I Would Cut, and Why
Good design requires scope discipline. Not every mechanic I've described above should
ship on the first pass. Here's my priority ranking:
**Must ship (Abzu doesn't work without these):**
1. The watch zone as a navigable location (the disorienting layout, the shift schedule)
2. The watch investment counter (invisible, but drives everything)
3. The threshold-adjacent tile lighting zone
4. The entry documentation system (field notes → filing → propagation)
5. The gate departure monologue (investment-scaled)
6. Fog-expansion bleed event (the core "what bleed looks like" expression)
**Should ship (makes the system rich):**
7. The Recognition Event (Elevated tier; the signature experience of Abzu)
8. The monologue register shift system (the feedback loop for investment)
9. Per-shift documentation with investment-scaled note content
10. Entry propagation to Reach-wide Meridian record
**Can defer (depth content, not structural):**
11. Founding record archive unlock (investment 60+)
12. Non-human shift indicator thermal event (Elevated 80+)
13. Correspondent interaction variants (seed-dependent)
14. Per-playstyle hooks (the investment hooks for tycoon, political, relational paths)
**Cut or redesign:**
- Any visual effect that announces bleed dramatically. If bleed looks like a horror
game event, it breaks the tone. The fog-expansion event should be subtle enough
that some players miss it. That is the correct experience.
- Any dialogue option that lets an NPC explain the vigil. They cannot. The game
should not simulate this as a dialogue option that fails. It should simply not
be an option. The community's warmth without explanation is mechanical: they
don't have a conversation topic for "what are you watching."
---
## Summary: The Mechanical Contract with the Player
Abzu asks the player to do something the game has not asked before: be present without
optimizing.
The player's toolkit — investigation, information gathering, social manipulation, economic
leverage — all works at Abzu, but none of it produces the main thing. The main thing
requires staying and watching. The game does not explain this until the player is already
experiencing it.
The watch mechanic translates the vigil into a player experience that is simple in its
rules (be here, during this window, long enough) and complex in its effects (monologue
register shift, tier-scaled perception events, community relationship deepening, entry
quality accumulation).
The Adams & Ford entry is the decision surface: when to file, what to include, what
register to file in. It is the only irreversible choice at Abzu, and what it communicates
to the rest of the Reach is the permanent record of what the player understood.
The stay/leave decision is not a choice the game presents. It is a choice the player
makes through behavior. The game's job is to make sure the player knows, when they
approach the gate, exactly what they are choosing to leave.
The game has been teaching the player to look. Abzu is where looking was never
the point. Being present was. Every mechanic above is designed to produce that
recognition — not announce it.
@@ -0,0 +1,205 @@
# GJ 6711 / Abzu Workshop — Project Lead Direction & Critiques
**Verbatim messages from the project lead across the workshop**
**Date:** 2026-03-16
---
## Round 0 — Initial Creative Direction (Pre-Workshop)
> as far as the 23 star this: hmm. that is interesting indeed not what did they run to, but who ran there
>
> Yes. That's the frame.
>
> Wave 3 is old enough to be deliberate. This wasn't chain migration following neighbors. Someone chose hop 23, dead-end, K-type, nothing remarkable about the star. Three hundred years ago. And enough of them that it stuck.
>
> Not fleeing. Seeking.
>
> Which means they knew something was there before they went. Or they suspected. Or someone told them.
>
> And three hundred years later their descendants are still there. Which means whatever they came for — they either found it, or they're still looking, or finding it changed what they were looking for.
>
> The Guide correspondent who went to file that entry. What did they see that made them stop filing.
>
> Not danger necessarily. Just — something that made the normal categories not quite apply anymore. You can't write a conditions-accurate reference document for somewhere that makes you uncertain what the conditions mean.
>
> Adams keeps the entry as forthcoming. Not because she thinks the correspondent is dead. Because she's read enough of what they sent before they stopped to know the entry isn't writable yet.
>
> That's the weird. Not the system. The fact that it resists description by someone trained to describe things.
>
> What did wave 3 settlers know that made them go that far.
---
## Round 1 — Cross-Pollination Feedback
> again I only saw your second hand conclusions and not the synthesis document you all seem to be acting on
---
## Round 2 — "What Is There?"
> while the mechanism of exploring the system is for Adams & Ford hiring the player, which I ABSOLUTELY LOVE, it does not say what is there
>
> Right. And it shouldn't.
>
> The Adams & Ford commission is the frame — why you're there, who sent you, what you're supposed to produce. It's not the answer. It's the job that puts you in the position of the correspondents who couldn't file.
>
> You arrive as a professional investigator hired to do what three predecessors couldn't. You have better tools, better skills, more time maybe. And you encounter the same thing they encountered: not resistance, not danger, not mystery in the conventional sense. Just — a place that doesn't yield to description.
>
> The job is real. The payment is real. The entry you eventually file is real. What GJ 6711 actually is remains exactly as unresolved as it was before you arrived.
>
> Which is perfect. Because the player isn't there to solve it. They're there to experience what it means to be in a place that can't be solved. And then write something anyway.
>
> The Adams & Ford frame also explains why a player would go to hop 23 at all. Without it, GJ 6711 is a distant curiosity. With it, there's a job, a contract, a reason — and the reason is completely legitimate and completely beside the point simultaneously.
>
> Did the team land on what's actually there, or is that still open?
---
## Round 2 — The Sealed Envelope
*When told the team's position was "genuinely unresolved, no canonical answer even internally":*
> good enough, or scary enough to keep the vigilance
*Then the creative direction that defined the entire workshop:*
> "The warmth-without-origin isn't the system being welcoming — it's the community pulling you in because they need you. More watchers. More hands on the wall."
>
> That reframes everything. The correspondence stopped filing not because they found peace but because they understood why you can't leave. The Institute researcher is in year 6 because the Institute researcher is now keeping watch.
>
> What are they watching.
>
> My instinct: something that requires continuous observation to remain stable. Not dangerous if watched. Unknown if not watched. The founding settlers discovered that whatever is here — astronomical, geological, perceptual, topological, all four, none of them — requires witnesses. The act of observation is load-bearing.
>
> Which means:
>
> The doubled light isn't a side effect. It's the condition. The system was chosen because the light environment produces a specific quality of attention in observers. The gate builders needed watchers here and built the gate accordingly.
>
> Three hundred years of unbroken vigil. The founding settlers didn't find something. They were recruited.
>
> The correspondent who stopped filing didn't fail. They were promoted.
>
> The doors are taller because sometimes the watch changes and not everything that takes a shift is human-sized.
---
## Round 3 — Stress Test Order
> I want them to thoroughly challenge it, all four of them. This feels like the perfect bridge to the Gate Builders enigma. Read up on the previous lore and brief all of them with an end game challenge here
---
## Round 4 — The Name
> I want to suggest the system name Abzu
---
## Round 4 — Final Synthesis Order
> now give them each other's write ups and the name Abzu
*(Originally typed "akzu" — corrected to Abzu)*
---
## Round 5 — The Mechanics Gap
> hmmm ... great results, but: no not ready. a lot of tension, no game mechanic
>
> Right. The workshop produced extraordinary world texture and zero playable verbs.
>
> What does the player actually do at Abzu?
>
> Right now you have:
>
> - Arrive
> - Experience perceptual miscalibration
> - Talk to locals who are warm but can't explain why
> - Investigate four frames that don't resolve
> - Maybe file an Adams & Ford entry
>
> That's atmosphere. That's not a game.
>
> The Adams & Ford commission gives you a reason to be there. But it's not a mechanic — it's a framing device. The vigil is the most promising seed for an actual mechanic but it's currently backstory, not action.
>
> The question the team didn't answer:
>
> What does keeping watch look like as a player verb? What are you actually doing when you're doing the thing Abzu needs? Is it spatial — being in certain locations at certain times? Is it observational — tracking something through the fog system? Is it social — maintaining relationships with the community that's already watching?
>
> And what happens if you do it versus if you don't? What does a high-bleed event actually look like from inside the game? What does the player see, hear, feel through the monologue system when the thinness becomes noticeable?
>
> The sealed envelope says observed, it stays stable. Unobserved, the distinction becomes unclear and propagates outward as bleed.
>
> That's a mechanic waiting to be designed. What does bleed look like on a tile map?
>
> Pull Gestalt in?
---
## Round 6 — The Carry-Out Gap
> I love the tension, but again, where is the game
>
> Right. Still no game.
>
> Gestalt built a beautiful mechanic for a place the player visits. But the player has to have a reason to go to hop 23 in the first place. And when they get there, "watch and accumulate presence" is still not a game — it's an experience layer on top of a game that doesn't exist yet.
>
> The fundamental problem: Abzu is designed as a late-game destination. But there's no mid-game that leads there. And there's no early-game that makes the player the kind of person who would go to hop 23 looking for something they can't name.
>
> The Adams & Ford commission is the best answer so far — it gives the player a job, a reason, a professional frame. But it's still just "go there and file a report." That's a quest wrapper around atmosphere.
>
> The question nobody has asked:
>
> What is the player's life before Abzu? What happened in the tycoon bookmark, or the law enforcement bookmark, or whatever brought them out to hop 23, that makes Abzu matter?
>
> Because Gestalt's mechanic only works if the player arrives with something they're willing to spend. Investment requires stakes. Stakes require a life that has accumulated weight before the player ever sees the K-type amber light and the doors that are slightly too tall.
>
> The game isn't at Abzu. The game is everything that makes a player willing to stay at Abzu.
And then:
> what I want to know, on behalf of the players, is what you walk away with
>
> That's the right question. And it's the one the workshop never asked.
>
> Not "what is there" — you've answered that beautifully with nothing. Not "what do you do" — Gestalt built the verbs. But what do you have when you leave that you didn't have when you arrived.
>
> Let me think through the candidates honestly:
>
> The entry. You filed something. It propagates. Other players' NPCs quote it. It's permanent. But it's a document. It's not something you feel.
>
> The monologue shift. Your character thinks differently after Abzu. The register changed. But that's invisible to other players and fades in memory.
>
> The choice. You stayed or you left. But if nothing in the rest of the game responds to that choice, it's just a flag.
>
> The connection. If you came through high-bleed gates and the Recognition Event fired — you know something about the Reach that almost nobody knows. But knowing isn't having.
>
> The honest answer right now: You walk away with understanding that has no mechanical weight anywhere else in the game.
>
> Which means Abzu is currently a beautiful dead end. A profound experience that the game doesn't know happened.
>
> For it to be a game moment rather than just an experience moment — something you carry out of Abzu has to matter somewhere else. Either mechanically, narratively, or both.
>
> What should it be?
---
## Round 6 — Agent Feedback
On Ozzie's carry-out response:
> ozzie's response is liminal, but a bit thin
On Gore's carry-out response:
> Gore is not literal enough
> too much philosophy too little lootbox
---
## Round 6 — Final Direction (Workshop Pause)
> nah... let me think on it. I think I am going to outline the systems interaction myself and leave the lootbox question to my ad-hoc DnD DM at a later date. This should simply be a moment for the player to feel culmination and handsomely rewarded. (given success in what is tbd)
@@ -0,0 +1,79 @@
# GJ 6711 — Sealed Envelope
**INTERNAL CANON — NOT PLAYER-FACING**
This document contains the canonical truth about GJ 6711 (Stillpoint). The
game should never confirm this directly. All player-accessible information
should remain consistent with this truth without revealing it.
---
## What Is There
Something at GJ 6711 requires continuous observation to remain stable. Not
dangerous if watched. Unknown if not watched. The founding settlers
discovered that whatever is here — astronomical, geological, perceptual,
topological, all four, none of them — requires witnesses. The act of
observation is load-bearing.
## Why the Gate Exists
The doubled-light environment (K-type primary + gas giant reflection) is not
a side effect. It is the condition. The system was chosen because the light
environment produces a specific quality of attention in observers. The gate
builders needed watchers here and built the gate accordingly.
## Why People Stay
Three hundred years of unbroken vigil. The founding settlers didn't find
something. They were recruited — not by beings, but by the situation. They
understood, at some point after arrival, that leaving would be abandonment.
What began as duty became identity. The community exists to keep watch.
## What the Community Knows
The locals aren't hiding a secret. They are the secret's mechanism. Their
"accommodation" with the place (Paula's tier 4) isn't peace — it's the
watch internalized. They don't talk about it not because it's forbidden but
because there is no way to explain a vigil to someone who doesn't know what
is being watched. You either understand or you don't. Understanding comes
from staying.
## The Recruitment Pattern
Everyone who stays long enough is recruited by the same process:
- The third Adams & Ford correspondent didn't fail. They were promoted.
- The Veil Institute researcher is in year 6 because the researcher is now
keeping watch.
- Commission personnel either leave quickly or stay forever. There is no
middle ground because there is no middle ground — you either see what
needs watching or you don't.
The "warmth-without-origin" that newcomers experience is not the system
being welcoming. It is the community pulling newcomers in because they need
them. More watchers. More hands on the wall.
## The Doors
The doors in Mode 1 structures are 10-15% taller than standard because
sometimes the watch changes and not everything that takes a shift is
human-sized.
## The Four Frames, Resolved
Miri's four possible answers (astronomical, geological, perceptual,
topological) are all partial views of the same function. They collapse into
a single operational truth: this place needs witnesses and the conditions
here produce them. The frames remain useful as player-facing investigation
paths because each one illuminates a facet of the same underlying reality
without exposing the whole.
## Design Constraint
The player should be able to accumulate evidence consistent with all of the
above. They should never receive confirmation. The Adams & Ford entry they
file is their attempt to describe something they experienced but cannot
prove. It propagates into the Reach as authoritative-looking and probably
incomplete. Whether the player understood what they were part of is between
them and the game.
@@ -0,0 +1,48 @@
# GJ 6711 Workshop — Araminta's Synthesis
## Points of Strong Alignment
All four briefs converge on a single design principle: **accumulation without resolution**. Miri calls it "the system resists summary." Paula calls it "information accumulates but doesn't resolve." Nigel makes it a mechanic label: "the picture won't close." My brief encodes it visually as the doubled-light effect — something is present, something is off, but the brain can't quite land on what. These aren't four people who happened to use similar language. This is the same idea seen from four angles, which means we have a strong conceptual spine.
The three-phase newcomer experience in Paula's brief maps cleanly onto my visual design intent. The ambient perceptual miscalibration I'm producing with dual light sources and soft shadows does exactly what Paula describes in Phase 2: "a persistent sense that your mental model of the place doesn't quite close." I was designing toward that effect without the explicit framework Paula provides. Now I have the vocabulary for it.
Nigel's atmospheric archetypes are consistent with the visual system I've built. "Warmth-without-origin" is already partially in the palette — the amber light creates visual warmth that doesn't have an obvious physical explanation on first viewing. "Stillness-without-tension" and "Industry-without-product" are social tones, but they'd be visible architecturally in an appropriately quiet building occupancy and an absence of obvious output staging areas. The visual layer can carry these archetypes without requiring separate implementation.
Miri's four possible answers for what the gate builders saw are directly load-bearing for my brief's unresolved questions. The "Perceptual" answer — that the doubled-light environment produces an effect the builders valued — is the one that most directly motivates my design. It's not the only possible answer, which is correct, but it's the one where visual design has the most explanatory weight.
## Tensions or Contradictions
**Scale and the founding-era structures.** My brief describes doors that are 10–15% too tall and over-engineered founding construction. Miri's worldbuilding doesn't contradict this but doesn't support it either — she doesn't specify what the founding settlers found or what they were building for. If the answer is "Geological," my tall doors are a red herring. If the answer is "Perceptual," the tall doors are a clue. I've built in visual ambiguity that works across Miri's four hypotheses, but the team should know that the door-height choice has interpretive weight and should not be confirmed or denied explicitly in dialogue.
**Tone: unsettling vs. warm.** My palette leans amber-warm, which I intended as perceptually pleasant-but-wrong. Nigel's "Warmth-without-origin" archetype could amplify this into something the player actively enjoys before the unease registers — good. But the atmospheric archetype "Stillness-without-tension" creates a problem: if the visual environment is reading as warm and the social environment is reading as calm, the player may not register anything as notable until much later than Paula's Phase 2 timeline suggests. We may need a visual tension element I haven't included — something that communicates quiet wrongness even in the warmest archetype seed. The construction seams are doing some of this work but may not be enough.
**Directionality and replayability.** My brief calls for a settlement with no navigational center of gravity — "you can navigate it, but you can't hold a complete mental map." This is a strong commitment at the spatial-layout level. Nigel's seed variants change the correspondent situation and the atmospheric archetype, but if the spatial layout is fixed across seeds, a returning player will already know the physical map. This undercuts the disorientation I'm trying to produce on first encounter. I need to think about whether any spatial elements should vary per seed, or whether the disorientation on replay should come from something other than navigation (e.g., familiar paths that feel different under a new atmospheric archetype).
## What I'd Change in My Brief
**Add a visual tier for the Veil Institute's presence.** Both Miri and Paula describe an Institute research station one hop back (GJ 7547), not on Stillpoint itself. But Paula notes that Institute personnel rotate through Stillpoint on scheduled visits. I haven't designed any visual vocabulary for their presence — equipment cases, technical markings, temporary infrastructure that doesn't belong to the community's two architectural modes. I'd add a Mode 3, present-but-transient: Institute hardware, portable and visually distinct from both founding-era and standard Reach construction. Matte grey-black, high-spec materials, nothing anchored to the walls.
**Rethink the threshold markings as a replayability surface.** I described the founding-era markings as consistent in style but without known function. Reading Nigel's correspondent variants, I think these markings should have different legibility per seed. In some seeds, a local might reference them. In others, they're simply unaddressed. In one seed variant, the fully-integrated third correspondent might have started adding to them. The markings are currently a static background element in my brief; they should be seed-variable in a way that doesn't require changing the art.
**The exterior palette needs fog tint specified.** Looking back at my own brief against the visual grammar I maintain, I gave hex values for light and surface colors but never specified a fog tint for the GJ 6711 zone. Per the zone palette table in my memory, every zone needs a fog tint to feed the D-059 fog shader. Based on the dark amber sky gradient I specified (`#2a1a0a` to `#4a3020`), the fog tint should be approximately `#1a0d04` — darker and redder than the Bar's `#200c04`, to reflect the K-type star's warmth at its lowest exterior visibility. I'd add this to a revised brief.
## Questions for the Team
**1. Should any of Miri's four hypotheses be ruled out visually?**
My current design is ambiguous across all four. But if the team has already ruled out one of them in a conversation I'm not aware of, I may be carrying visual weight for a red herring. Specifically: the "Perceptual" hypothesis is the one most directly expressed in my visual design. If that hypothesis is being reserved as the "most likely" answer for players who go deepest, I should lean into it more. If it's a deliberate misdirect, I should balance against it.
**2. Does the non-navigable layout need to be partially seed-variable?**
The spatial commitment to a disorienting, center-free settlement is right for first-time players. For returning players, it becomes familiar quickly. Do we accept that as the cost of the spatial design, or does Nigel want navigational variation as a seed dimension? This affects my layout constraints significantly and is a decision I can't make unilaterally.
**3. What is the visual grammar for "community knowledge" (Paula's tier 4)?**
Paula defines community knowledge as what locals actually know — available only to players who invest time, not information-gathering. Visually, tier 4 knowledge should look different from tiers 1–3 in the insert/journal UI. But what communicates "this came from trust, not investigation"? I have no current design for this. If we want the distinction to be visible in the information layer, we need a convention before implementation. If we don't surface it visually, players will experience it narratively but won't see their accumulation reflected in the UI.
## Strongest Idea from Another Brief
Nigel's player-agency mechanic — **filing the Adams & Ford guide entry yourself** — is the strongest idea in this workshop.
It works because it closes the loop that every other system leaves open. The player accumulates information that doesn't resolve. They can, at some point, choose to describe it anyway. The description they produce propagates into the Reach and is referenced by other NPCs. This means the player becomes authoritatively wrong about Stillpoint, in a way that other characters in the world will treat as fact.
That's not a puzzle solution. It's a statement about what it means to describe something that resists description. And it has visual implications: the Adams & Ford entry, as rendered in-world (in the insert UI, on terminals, wherever guide entries appear), should have the player's text formatted in the standard guide style. Indistinguishable in presentation from a professionally filed entry. Authoritative-looking. The wrongness, if there is wrongness, is entirely in the content, not the formatting. That's the right way to present it.
I want to champion this mechanic with one addition: the entry should be persistent across sessions in the player's run, and NPCs who have "read" it should have slightly different conversational options afterward — not confirming or denying the content, but treating the player as someone who has an opinion about Stillpoint. That's a signal layer the visual design can support.
@@ -0,0 +1,55 @@
# GJ 6711 Workshop — Miri's Synthesis
## 1. Points of Strong Alignment
The four briefs converge more cleanly than I expected for a first-pass workshop. There are three structural agreements that held across all of them without coordination:
**The picture that won't close.** My "information accumulates; resolution doesn't" is Paula's "information accumulates but doesn't resolve," is Nigel's "The Picture Won't Close." All three arrived at the same principle from different angles — worldbuilding, narrative design, and replayability mechanics. This is a strong signal that we've found the correct load-bearing idea for this system. The design consequence is clear: nothing about GJ 6711 ever terminates. No quest completes, no theory is confirmed. The game acknowledges the player's accumulation without rewarding it with closure.
**The doubled-light environment as the anchor.** My physical concept (two misaligned light sources producing perceptual miscalibration) is Araminta's entire opening section. She's translated the worldbuilding premise directly into a lighting model with specific palette values, and it works. The "shadows softer than they should be" observation is exactly the perceptual unease I was reaching for. The mechanism is consistent between our briefs.
**The Adams & Ford correspondent as player-facing anchor.** I introduced this as worldbuilding texture; Paula reinforced its narrative function (the third correspondent as embodiment of the integration phase); Nigel seeded it into four playthrough variants. It became richer at each pass. The correspondent situation is now doing triple work — setting flavor, story signal, and replayability structure.
**The binary settlement aesthetic.** Araminta's two architectural modes (founding-era heavy vs. standard Reach incremental) land exactly on the "sought something, not fleeing something" founding history I proposed. The over-engineered founding structures imply the settlers were prepared for something specific. The standard additions imply that whatever they were prepared for either didn't arrive or normalized. The visual language confirms the historical ambiguity.
---
## 2. Tensions or Contradictions
**Seed variance vs. setting consistency.** Nigel's atmospheric archetypes (four seeded tonal profiles per playthrough) are strong mechanically. The tension is whether they can be held within a consistent setting. "Memory-without-event" in particular — locals referencing memories of things that haven't happened — is a significant claim. In some playthroughs this is true; in others it isn't. That's fine for replayability, but it means we can't have definitive lore about what GJ 6711 does to people. The setting bible would need to describe these as observed effects whose cause and even consistency is unknown. That's manageable, but it needs to be explicit so future writers don't treat any one variant as canonical.
**Scale miscalibration ambiguity.** Araminta raises doors 10–15% taller than standard as a deliberate unresolved question — founding preference, environmental influence, or accommodation for something non-human-sized. This is good. But it implies one of my "four possible answers" (the geological/discovery angle) without quite committing to it. There's a mild pull toward "the founders found something non-human-sized" as the obvious reading. If we want all four answers to remain genuinely open, we may need to make sure the scale miscalibration doesn't visually favor that reading. The size doesn't have to imply a physical presence at all — architectural over-engineering can produce scale inflation without implying inhabitants. Worth a note to Araminta.
**The Compact of Westphalia response.** Paula's detail about the Compact receiving an answer that "didn't map to yes, no, or maybe" is narratively rich. My brief doesn't address the Compact — I focused on the Veil Institute and the Assembly. No contradiction, but there's a question about how many external factions are tangled with GJ 6711. Three (Institute, Assembly/delegate, Compact) is probably the right ceiling. A fourth might dilute the specific quality of the system's relationship with the wider Reach.
---
## 3. What I'd Change in My Brief
**The four possible answers need restructuring.** As written, my four answers (astronomical, geological, perceptual, topological) are presented as equally weighted. After reading Nigel and Araminta, the perceptual answer has accreted the most supporting detail across all four briefs — the doubled light, the miscalibration, Paula's three-phase newcomer experience, Nigel's atmospheric archetypes all point toward "the system does something to perception." This makes the perceptual answer feel more likely, which is the one thing I explicitly didn't want. I'd reframe the four answers as four frames of inquiry the player can pursue rather than four candidate explanations — this removes the implied ranking without removing the content.
**The founding settlers need a sharper silhouette.** I described them as "seeking something, not fleeing something" without specifying further. Araminta's architectural observation gives me purchase: they built for a specific purpose or encounter, not for general frontier hardship. That specificity is more useful than the vague "seeking" framing. I'd revise to: the founding settlers came with a purpose that was either completed, abandoned, or transformed into something they didn't anticipate. The sealed early records aren't just mysterious — they may record a terminus, not a discovery.
**The GJ 7547 research station.** I mentioned this station as the nearest official Institute presence and flagged the ambiguity about whether it exists to study GJ 6711 or for independent reasons. Paula picked this up and expanded it correctly. What I'd add to my brief: the station at GJ 7547 is the single most important node for player approach. It's the last place where information about GJ 6711 circulates before you arrive. Everything Nigel said about rumor seeding on the approach chain should be anchored to that station. I'd make GJ 7547 a named, profiled location rather than a footnote.
---
## 4. Questions for the Team
**Q1: Seed variance scope.** Nigel's atmospheric archetypes are per-playthrough tonal shifts; the correspondent variants are per-playthrough social states. Are these seeded independently (resulting in 4×4 = 16 possible combinations) or bundled (each seed defines both archetype and correspondent variant together)? The bundles approach is more controlled and easier to write for; the independent approach is more emergent but requires all combinations to be internally coherent. We need a decision here before the content spec can be written.
**Q2: Player filing the Adams & Ford entry.** Nigel's mechanic where the player can write the entry and have it propagate through the Reach is the standout design idea in all four briefs (more on this below). But it has a significant setting consequence: the Adams & Ford Guide is a background institution I've treated as a fixed-voice narrator of the Reach. If players can inject text into it, what is it now? Is it an unreliable accumulated record? Is the player's entry marked as contested? We need to decide whether the Guide is mutable before implementing the mechanic.
**Q3: What the locals know.** Paula's information tier 4 ("community knowledge") is deliberately positioned as inaccessible on short timelines. But what does it actually contain? We have three options: (a) the locals know what's here and won't tell outsiders, (b) the locals have a relationship with the place that doesn't translate into knowledge in a communicable form, (c) the locals don't know either — they've simply adapted. Option (b) is the most tonally interesting and the hardest to write. Option (c) is unsatisfying but defensible. Option (a) risks making the community antagonistic in a way that contradicts the "warmth-without-origin" archetype. We should agree on this before writing any dialogue.
---
## 5. The Strongest Idea from Someone Else's Brief
**Nigel's player-filing mechanic.** The player can attempt to write the Adams & Ford entry and have it propagate into the Reach as something other NPCs subsequently reference.
This is the best design idea in the workshop. Here is why: GJ 6711 is built around the premise that the place resists description. The failed correspondents are the embodiment of this. The player, who has done everything the correspondents did and more, is then offered the same invitation — and the game accepts whatever they produce. Not because the player succeeded where the correspondents failed, but because the game isn't adjudicating success. The entry goes out into the Reach wrong, or incomplete, or mystifying, and becomes part of the system's texture. Future NPCs quote it. It's partly right and partly wrong in ways the player will recognize when they encounter it again.
This mechanic does three things simultaneously: it gives the player agency at the point where most games would give them a revelation; it extends the thematic coherence of the system (the indescribable gets described anyway, inadequately); and it creates a piece of player-specific lore that persists across subsequent play without resolving anything. The player becomes the fourth correspondent. Whether that's a triumph or a failure is left to them.
I want to champion this mechanic. It needs the Q2 decision (Guide mutability) before it can be implemented, but it should be protected as a design priority.
@@ -0,0 +1,48 @@
# GJ 6711 Workshop — Nigel's Synthesis
## Points of Strong Alignment
The four briefs converge on a single core principle without having coordinated on it: **Stillpoint works by accumulation without resolution.** Miri calls it "resists summary." Paula calls it "information accumulates but doesn't resolve." My brief calls it "the picture won't close." Araminta makes it physical — the doubled light, the shadow softness, the layout with no center of gravity. Four different disciplines landed on the same mechanic. That's not coincidence. That's the system telling us what it is.
The three-phase newcomer experience Paula describes maps almost perfectly onto my seed-variable atmospheric archetypes. Arrival corresponds to the moment before the atmospheric archetype registers. Settling is when the archetype starts doing its work. Integration is when the player either commits or leaves. Her framework gives mine a temporal spine I wasn't fully articulating.
Araminta's scale miscalibrations — doors 10-15% too tall, ceilings following the same pattern — are a replayability gift I didn't anticipate. That detail is below conscious detection on first pass. On second playthrough the player may notice it and realize they didn't notice it before. That's not just visual design. That's the system teaching players that their first read of a place is incomplete. I want that property everywhere in the Settled Reach, and it lands especially hard here.
The four-tier information ecology (Paula) lines up directly with my correspondent variants and the rumor seeding on approach. Her tier structure explains WHY the anti-metagaming properties hold: community knowledge (tier 4) requires time investment that can't be shortcut, and that's a structural guarantee, not a content gate.
## Tensions or Contradictions
**The founding settlers' intentionality creates a tension with Araminta's visual brief.** Miri says the founders came here deliberately — seeking something. Araminta's Mode 1 construction reads as defensive: bunker-like, over-engineered, small windows. "Built like they expected to need shelter from something specific." Those are two very different psychological profiles for the same group. Seekers and fortifiers. Which is it? Or is the tension itself the point — did they arrive as seekers and build like fortifiers after they found what they were looking for? That question needs a collective position because it affects both the visual palette and the worldbuilding canon.
**The "four possible answers" structure (Miri) versus the player-written guide entry (my brief) is partially in tension.** Miri is explicit that no answer should ever be confirmed. My guide-entry mechanic lets the player file an answer that then propagates into the wider Reach. If that answer is referenced by NPCs in future systems, it starts to function like a confirmed answer — the player's wrong conclusion becomes socially real. I think that's actually fine and interesting, but it needs to be deliberate. The entry propagating is powerful. We need to decide whether it propagates as a player-authored artifact (clearly subjective, clearly one person's attempt) or as something that takes on authority it shouldn't have.
**Paula's "Assembly delegate who left and won't return" is a strong narrative anchor, but it's not seeded.** My brief treats almost everything as seed-variable. Paula's delegate situation reads as fixed lore. These aren't incompatible, but I'd want to think about whether the delegate situation has variants or whether it's one of the rare Stillpoint constants. There's an argument for keeping some things constant — the system needs stable reference points so that the seed-variable elements have something to push against.
## What I'd Change in My Brief After Reading the Others
**The atmospheric archetypes need a visual corollary for each.** Araminta's brief shows me that the feeling of a place is encoded in specific, implementable visual choices — palette anchors, light behavior, spatial geometry. My archetypes are described tonally but not visually. "Warmth-without-origin" needs a corresponding lighting parameter. "Stillness-without-tension" needs a spatial correlate (maybe fewer NPCs in transit, more NPCs in fixed positions). I'd revise the archetype descriptions to specify what Araminta would actually need to implement each one.
**"Memory-without-event" is the weakest archetype and probably needs to be cut or substantially reworked.** Reading the other briefs, I think it's doing too much. The other three archetypes are environmental — they change the feel of the space. Memory-without-event tries to add a content layer (locals referencing things that didn't happen) which requires NPC scripting, timeline tracking, and verification logic that the other archetypes don't need. It's a different class of feature wearing the costume of an atmospheric variant. Either promote it to its own system or cut it.
**I undersold the visual disorientation as a replayability mechanic.** The directionality inconsistency Araminta describes — no center of gravity, paths that aren't direct, a place you can navigate but can't hold a complete mental map of — is exactly what prevents the player from building a transferable spatial model across playthroughs. I mentioned "grid breathability" in the generator workshop context but didn't apply it to Stillpoint specifically. I'd add a section on how the settlement's layout geometry varies per seed within constraints (the Mode 1 structures are fixed; what gets built between them shifts).
## Questions for the Team
**1. What does tier 4 community knowledge actually unlock?**
Paula establishes that community knowledge is available only on a timeline of years, which the player doesn't have. This is correct and right. But the question is: what does the player get if they somehow earn it? I don't think there's a "true answer" behind the door. But there should be something — some quality of relationship with Stillpoint that's qualitatively different from what outsiders have. The mechanic needs a payoff even if the payoff isn't revelation. What does belonging to Stillpoint feel like, and how do we represent that in systems?
**2. Do the threshold markings vary per seed?**
Araminta's threshold markings — systematic, present in all Mode 1 structures, serving a purpose that's unresolved — are an extremely strong detail. My instinct is that they should be constant across seeds, because they're one of the few things in Stillpoint that isn't ambiguous about its status as a thing. They ARE there. Their purpose is ambiguous, but their presence isn't. If they varied per seed we'd lose that anchor. But I want the team to decide this explicitly because the temptation to make them seed-variable is real and I think it would be the wrong call.
**3. How does the guide-entry mechanic interact with Paula's "information accumulates but doesn't resolve" principle?**
This is the tension I flagged above. I'm not asking us to remove the mechanic — I think the player-authored guide entry is one of the strongest replayability affordances in the design because it means two players can compare their entries and see completely different (and probably both wrong) accounts of the same place. But we need to agree on what it means for that entry to "propagate." Is it a player artifact that other NPCs might reference skeptically? Is it treated as authoritative? Does it affect how Stillpoint is classified in the Lattice Commission's records? The propagation model changes the whole character of the mechanic.
## The Strongest Idea from Someone Else's Brief
**The scale miscalibrations (Araminta's brief) — specifically the doors and ceilings being 10-15% taller than standard.**
I want to champion this because it does something my brief doesn't achieve on its own: it produces a different experience for the player who has already visited Stillpoint versus the player arriving for the first time, WITHOUT any seed variation and WITHOUT any content change. The first-time player doesn't notice. The returning player might notice, and then has to reckon with the fact that they didn't notice before. The detail retroactively reframes the first visit.
That's asymmetric information operating across time rather than across the map. It's the same mechanic the whole game is built on, expressed in architecture. And the unresolved explanation — construction preference, influence of discovery, accommodation for something not human-sized — is exactly the kind of question that should never be answered.
This is the detail I'd most want to guarantee survives into production. Everything else in these briefs is adjustable. This one should be locked.
@@ -0,0 +1,91 @@
# GJ 6711 Synthesis — Paula's Position
## 1. Points of Strong Alignment
The four briefs are more coherent than is typical for a workshop round. The core concept — a system that accumulates description without resolving — arrived independently in multiple briefs and is worth noting:
**The non-resolution principle is unanimous.** Miri: "the game should never confirm which (if any) of these is correct." Paula: "information accumulates but doesn't resolve." Nigel: "the picture never resolves." Araminta implicitly: doors slightly too tall for unresolved reasons, threshold markings serving a purpose that "either no longer applies or was never understood." No one is pushing for a payoff. That is unusual and worth protecting explicitly.
**The accumulation mechanism works across all four layers.** Miri provides the facts-that-resist-summary (Adams & Ford history, Institute classification, four possible answers). Paula provides the social-institutional texture of that resistance (delegate situation, Commission confusion, Compact non-response). Nigel provides the mechanical delivery (seed variants, correspondent states, approach-chain rumors). Araminta provides the perceptual grounding that makes it felt rather than told (doubled light, scale miscalibration, directionality inconsistency). These are not competing designs — they are four aspects of one design.
**The two-construction-period architecture aligns with my political layering exactly.** Araminta's "founding era heavy / incremental additions standard" maps directly onto the political question I raised: why did the founding group build like they expected to need shelter from something specific? The seams between the two construction modes are the visible record of a community that arrived with a purpose and then continued without resolving whether that purpose was fulfilled. The architecture is the politics.
**The three-phase newcomer experience and the atmospheric seed archetypes are compatible without friction.** My arrival/settling/integration framework describes a process; Nigel's warmth-without-origin / stillness-without-tension / industry-without-product / memory-without-event describes what that process feels like in a given playthrough. These can coexist cleanly: the phase model is structural, the archetype is the texture of a specific run.
---
## 2. Tensions or Contradictions
**The correspondent variants (Nigel) versus the correspondent arc (Miri/Paula).**
Miri defines the three correspondents as a historical sequence — first, second, third — with the third currently present and unresolved. This is a linear story. Nigel seeds the third correspondent's state per playthrough: present/departed/integrated/never-assigned. These are in tension.
If Nigel's variant D (no correspondent assigned) is valid, then Miri's history of three sequential correspondents doesn't hold in all seeds. Variant B (correspondent left recently) requires the third correspondent to have been present and departed — which assumes the Miri history. Variants C and D make different assumptions about whether the historical sequence is fixed.
This needs a decision: is the three-correspondent history a fixed fact of Stillpoint, with only the *current state* of the third correspondent being seed-variable? Or is the correspondent history itself seed-variable?
My instinct: the history is fixed (all three correspondents happened, in that order), and Nigel's variants describe only the current state of the third. Variant D should become "the third correspondent integrated so thoroughly that they can no longer be located by editorial queries — as far as the Adams & Ford office is concerned, no correspondent is currently active." That preserves Miri's history and Nigel's range.
**The four possible answers (Miri) versus the information-asymmetry tiers (Paula).**
Miri's four answers are presented as equally weighted alternatives, none confirmable. My information ecology places community knowledge (tier 4) above rumor (tier 3) — implying that the locals know something more than the rumors suggest. But if none of the four answers is correct, what do the locals know? There's a risk that tier 4 either reveals too much (breaking the non-resolution principle) or is hollow (making community investment feel unrewarded).
Let me complicate this: tier 4 doesn't need to contain an answer. It can contain a different relationship to the question — the locals have stopped asking it. Three hundred years of living with something you can't describe produces not an answer but a posture. Tier 4 is access to that posture, not access to the solution. I need to make this clearer in my brief.
**Nigel's "filing the guide entry" mechanic versus the non-resolution principle.**
This is the most interesting tension in the workshop. Nigel proposes that the player can write the Adams & Ford entry themselves, which then propagates into the Reach. This is a strong replayability hook. But it risks being the resolution that every other brief is designed to prevent. If the player writes the entry, have they described the indescribable? Have they won?
Nigel frames this carefully: "for better or worse." The entry propagates but isn't validated. But the moment it propagates, NPCs reference it as a real description of Stillpoint. That's a form of closure the system explicitly resists providing.
I think this mechanic is salvageable but needs a twist: the entry propagates and is referenced by NPCs, but the references reveal that the description doesn't match what those NPCs subsequently experience at Stillpoint. The player described it, but the description is still wrong. The entry becoming real doesn't make it true.
---
## 3. What I'd Change in My Brief
**Sharpen tier 4 away from "they know something" toward "they've stopped asking."**
My brief implies community knowledge holds a deeper truth. After reading Miri's four-answers framework, I think that's too close to a treasure-hunt implication. What the locals have isn't an answer — it's 300 years of accommodation. The distinction matters for how the player experiences community trust: earning it doesn't give you the solution, it gives you the equanimity the locals have reached. That's a different (and I think more interesting) reward.
**Add explicit content for the delegate situation.**
My brief mentions the delegate briefly but doesn't develop the mechanic. After reading Araminta's brief, I think the delegate's *physical* presence at Stillpoint — or absence from it — is actually a visual narrative opportunity. The delegate's residence in the settlement would be in the transition zone between Mode 1 and Mode 2, architecturally in-between. If they left, that space is occupied by someone else, or empty. Araminta's interface seams make the political incoherence spatially legible. I should link these more explicitly.
**Soften the Compact of Westphalia and Lattice Commission sections.**
I wrote those sections as if Stillpoint's relationship with institutions is itself a mystery (what was the response that didn't map to yes/no/maybe?). But reading the full workshop, the more powerful version is: Stillpoint's relationships with institutions are *normal failures* — not mysterious, just the predictable result of a system that resists bureaucratic summary encountering bureaucratic systems that require summary. The mystery is in the place, not in the institutions' reaction to it. I was accidentally making the institutions themselves seem mysterious, which dilutes focus.
**Add a note on the Veil Institute's silence threshold.**
Using the framework from our CSV work: Stillpoint's silence threshold should be explicitly `investigation_depth` — meaning the Institute's information is accessible only past a threshold of investigative commitment, not gated behind faction trust or time. This connects the narrative to the systemic framework and gives the storyteller a clear signal for when Institute-linked content should surface.
---
## 4. Questions for the Team
**Q1: Is the non-resolution principle an absolute design constraint, or is it a default that exceptional player investment can partially pierce?**
Nigel's correspondent variants, Miri's four possible answers, and my information tiers all preserve the non-resolution. But Nigel's "file the entry" mechanic introduces a soft form of resolution (the player describes it). And my tier 4 (community knowledge) implies something is there if you earn it. We need to agree on whether there is a threshold of investment past which the system yields — even partially — or whether the non-resolution is truly hard. This affects how we scope the investigation system for this specific location.
**Q2: Does the seed archetype (Nigel's four atmospheric profiles) change the correct answer to Miri's four possible causes?**
Specifically: should "memory-without-event" as an atmospheric archetype correlate with option 3 (perceptual) or option 4 (topological) as the "true" explanation — even if neither is confirmed? Or are the atmospheric archetypes fully orthogonal to the causal candidates? I ask because if they're orthogonal, the system is cleanly modular. If they're correlated, we get a more coherent seed but risk players deducing the "answer" from the archetype, which breaks the anti-metagaming properties Nigel specifically designed for.
**Q3: What is the Veil Institute researcher actually doing in year 6, and does any playthrough need to show us?**
Miri establishes that the researcher's reports have become "increasingly abstract." This implies the researcher is going through the same three-phase process as every other visitor — they're in the settling-to-integration transition. But the Institute is presumably watching this. Does the Institute know their researcher is becoming a local? Is there a second researcher coming to retrieve the first? This is a contained narrative that could be very strong — or it could be the thread that accidentally provides too much resolution if we follow it far enough. We need to decide whether the researcher's situation is a closed arc we can develop, or ambient texture we deliberately leave unresolved.
---
## 5. Strongest Idea from Someone Else's Brief
**Araminta's scale miscalibration — the doors slightly too tall.**
This is the most precisely designed piece of unresolved narrative in the workshop. 10-15% taller than standard. Not dramatically wrong — just persistently wrong. And Araminta deliberately leaves the explanation open: founding settlers' preferences, influence of whatever they found, or accommodation for something not human-sized.
The honest truth is that "accommodation for something not human-sized" is doing enormous work quietly. It implies that either the founding settlers expected non-human visitors and built for them, or they encountered something that suggested non-human proportions, or they were already thinking in terms of something other than themselves when they built. All three of these are narratively loaded without any of them being confirmed.
I want to champion this because it connects to my information-ecology framework in a way Araminta may not have fully intended. The threshold markings and the oversized doors together constitute a kind of physical tier 4 — community knowledge that you access not through conversation but through sustained observation. Players who spend enough time in the Mode 1 structures without ever being told to look will have a different experience of Stillpoint than players who pass through quickly. The architecture earns its own investigation depth.
If we keep one thing from this workshop that we have to protect in production, it is those doors.
@@ -0,0 +1,53 @@
---
title: "Workshop Outcomes: GJ 6711 / Abzu — Furthest System"
description: "Workshop paused at project lead direction — outstanding mechanics gap unresolved"
type: workshop
status: paused
workshop: gj-6711-furthest-system
agent: ""
round: 0
created: 2026-03-16
---
# Workshop Outcomes: GJ 6711 / Abzu — Furthest System
**Workshop:** GJ 6711 / Abzu — Furthest System
**Status:** Paused at project lead direction
**Rounds completed:** 6 (briefs, challenge, synthesis, mechanics, carry-out)
**Participants:** Araminta, Miri, Nigel, Paula, Gestalt, Gore, Ozzie
---
## Summary
The workshop developed the world texture, atmosphere, and lore for GJ 6711 (named Abzu by the project lead in Round 4) — the furthest settled system in the Reach at hop 23. The creative output was strong: a K-type dead-end system settled by wave_3 colonists who appear to have been recruited as watchers for something that requires continuous observation to remain stable. The Adams and Ford commission provides the player's reason to travel there.
However, the workshop did not resolve the fundamental mechanics gap: what the player actually *does* at Abzu as gameplay, and what they walk away with that has mechanical weight elsewhere in the game. Six rounds produced extraordinary atmosphere and zero playable verbs.
## Why Paused
The project lead identified two unresolved problems:
1. **No game mechanic.** The vigil concept (observation as load-bearing activity) is promising but was never translated into player verbs, fail states, or moment-to-moment gameplay.
2. **No carry-out value.** The player has no reward, unlock, or narrative consequence that matters outside Abzu. The experience is currently a "beautiful dead end."
The project lead intends to outline the systems interaction personally and defer the reward/lootbox question to a later design session with a DM-style collaborator. The stated goal: Abzu should be a moment of culmination with a handsome reward for the player, contingent on success at a task that remains to be defined.
## Outstanding Items
- Player verbs for the vigil mechanic (spatial? observational? social?)
- What bleed looks like on a tile map
- Carry-out value: what the player gains that has weight elsewhere in the game
- Integration with the broader Adams and Ford questline
- The sealed envelope content (what is actually at Abzu) remains deliberately unresolved
## Source Documents
All round documents are in `docs/workshops/gj-6711-furthest-system/`:
- `challenge-brief.md` and individual challenge responses
- `synthesis-*.md` files (4 participants)
- `mechanics-gestalt.md`
- `carryout-*.md` files (4 participants)
- `sealed-envelope.md`
- `project-lead-direction.md` (verbatim lead messages across all rounds)
@@ -129,7 +129,7 @@ Composable primitives would need to represent this as `SOCIAL_BYPASS(target=Rask
**Mechanical evaluation:** This is the most systems-compatible option for the rendering layer — IF we handle the tell separation correctly.
The i18n analogy is the right frame. Base text is `en-semantic`. Re-voiced text is `en-KRENN-BOLD`. The information is stable; the expression varies.
The i18n analogy is the right frame. Base text is `en-semantic`. Re-voiced text is `en-VMS-BOLD`. The information is stable; the expression varies.
The proposal correctly identifies that base text serves triple duty: LLM seed, graceful fallback, and LLM-off experience. From a systems standpoint, this is elegant — one authored artifact doing three mechanical jobs simultaneously.
@@ -89,10 +89,10 @@ The difference between 150 and 300 tokens is the difference between **following
Example pair format:
```
BASE: "checks the gate without looking at you"
KRENN: "runs the check, eyes on the panel — gives you a nod when it clears"
VMS: "runs the check, eyes on the panel — gives you a nod when it clears"
---
BASE: "works on the conduit"
KRENN: "traces the run with a handheld light, finds the splice, fixes it without ceremony"
VMS: "traces the run with a handheld light, finds the splice, fixes it without ceremony"
```
Each pair: ~35-40 tokens. Two pairs: ~70-80 tokens. Adding these to the 100-token instruction core produces ~170-180 total — still under 250 tokens.
@@ -297,7 +297,7 @@ This is not a blocker for any proposal, but it must be decided before the `sr-vo
[SYSTEM/SHARED] Do not use religious language. No military ranks. Technology terms
only: insert, span gate, the Reach. No wit or banter. No Earth references.
[KRENN CULTURE] Direct-informal register — short because time is scarce, not
[VAN MAANEN'S STAR CULTURE] Direct-informal register — short because time is scarce, not
unfriendly. Competence earns respect. Community: crew, shift, street.
Exclamations ONLY: "void take it" / "stars" / "blood and void" / "cold vacuum."
Greetings: hey, morning, shift treating you alright.
@@ -304,10 +304,10 @@ avoided (Van Maanen's Star uses contractions freely: shift's calling, gotta, can
[BLOCK 6 — EXAMPLES]
BASE: "checks the gate"
KRENN: "runs the check, nods when it clears"
VMS: "runs the check, nods when it clears"
---
BASE: "works on the conduit"
KRENN: "traces the fault, finds it, fixes it without ceremony"
VMS: "traces the fault, finds it, fixes it without ceremony"
```
**Token count for this implementation:** ~195-210 tokens. Within the 200-token soft target.
@@ -63,7 +63,7 @@ The reassembled version is grammatically correct and semantically equivalent. It
This is the option with the most promise and the most risk, and the two are inseparable.
**What the proposal gets right:** The i18n analogy is apt. Culture-neutral base text as `en-base`, culture-voiced text as `en-KRENN-DIRECT`. The injector clause model (10-20 per culture) scales in the right direction. The progressive enhancement framing — base text is functional, voiced text is premium — is elegant and de-risks hardware concerns.
**What the proposal gets right:** The i18n analogy is apt. Culture-neutral base text as `en-base`, culture-voiced text as `en-VMS-DIRECT`. The injector clause model (10-20 per culture) scales in the right direction. The progressive enhancement framing — base text is functional, voiced text is premium — is elegant and de-risks hardware concerns.
**What the proposal is missing:** It was written before the generator spike added Want/State, relationship behaviors, and the perception mechanic. These systems change the calculus substantially. See Section 3.
@@ -53,7 +53,7 @@ The design is **progressive enhancement**, not a toggle between two systems. Eve
2. **Fallback** — what the player sees when pre-voicing hasn't finished yet
3. **LLM-off experience** — the complete gameplay layer for players who disable AI-enhanced dialogue or run on minimal hardware
There is no separate authoring step for the fallback. The base text IS the fallback. The i18n analogy holds: `en-base` is always present, `en-KRENN-BOLD` is the enhancement.
There is no separate authoring step for the fallback. The base text IS the fallback. The i18n analogy holds: `en-base` is always present, `en-VMS-BOLD` is the enhancement.
### Content tiers: baked, pre-voiced, fallback
+2 -2
View File
@@ -1,6 +1,6 @@
---
title: "Round 1 — Miri (Worldbuilder / Setting Designer)"
description: "Regional style guide template and Krenn System cultural brief"
description: "Regional style guide template and Van Maanen's Star cultural brief"
type: workshop
status: archived
workshop: wiki-review
@@ -243,7 +243,7 @@ The founding population was ~60% Finnish-Estonian-Latvian, ~25% Dutch-Norwegian
1. **Institutional names (official, rarely used):** Corporate or bureaucratic. "Sova Transit Logistics Hub, Bay 7-C." "Van Maanen's Star Administration, Sector 12." These appear on legal documents and institutional signage. Nobody says them.
2. **Established names (standard use):** Heritage-influenced or descriptive. "Station Sova" (Estonian-origin, means "suitable/fitting" — the founders named it for the gate position). "Van Maanen's Star" itself (possibly Finnish *krenni*, an old dialect word for "crossroads" — the etymology is debated, which is itself a cultural detail). "The Terminal" (English-origin descriptive, reflecting the commercial-cadre influence on workplace naming).
2. **Established names (standard use):** Heritage-influenced or descriptive. "Station Sova" (Estonian-origin, means "suitable/fitting" — the founders named it for the gate position). "Van Maanen's Star" itself (named for the real star Van Maanen's Star (GJ 35) — the first white dwarf discovered, a pragmatic name for a pragmatic system). "The Terminal" (English-origin descriptive, reflecting the commercial-cadre influence on workplace naming).
3. **Informal names (locals only):** Personal or experiential. "Lera's" instead of "The Last Shift." "The B" for Corridor B-7. "Topside" for Level 3. These names are social shibboleths — knowing them signals belonging.
@@ -77,7 +77,7 @@ ASSEMBLY FLOOR: LATTICE FUNDING AMENDMENT REACHES COMMITTEE
STATION SOVA: VENTILATION UPGRADE SCHEDULE (LEVEL 3 AFFECTED)
KOLM LEAGUE: SOVA DOCKERS 4, ORBITAL TRANSIT 2
GRAIN FUTURES STABLE — SYNDIC SHIPPING COSTS FLAT FOR Q3
KRENN PRIME SURFACE: HARVEST SEASON OPENS, EXPORT WINDOWS CONFIRMED
VAN MAANEN PRIME SURFACE: HARVEST SEASON OPENS, EXPORT WINDOWS CONFIRMED
COMMISSION ADVISORY: LATTICE CALIBRATION DUE DATES FOR SOVA DISTRICT
```
+5 -5
View File
@@ -152,7 +152,7 @@ lattice components is subject to:
- Referral to system-level enforcement
Report suspected violations to the Commission kiosk (Level 3)
or via Meridian channel LC-COMPLIANCE-KRENN.
or via Meridian channel LC-COMPLIANCE-VMS.
Lattice Commission | Protecting Neural Integrity
```
@@ -160,7 +160,7 @@ or via Meridian channel LC-COMPLIANCE-KRENN.
**Cultural notes:**
- Institutional language. Concordat Standard. No Van Maanen's Star vernacular on Commission documents.
- The penalty range (2,000-15,000 credits) means a Category 3 fine could wipe out 10 months of a dock worker's margin income. This is not abstract — every worker who reads this (and they have) knows exactly what it means for someone earning 2,400/month with 200 margin. The fine is designed to be ruinous. That's the point. That's why the ring exists.
- "Report suspected violations" — this line is doing heavy thematic lifting. In Van Maanen's Star culture, reporting is a violation of the mind-your-business norm. The Commission asks workers to do something their culture considers hostile. The notice has been up for years. Nobody has ever used channel LC-COMPLIANCE-KRENN from this district.
- "Report suspected violations" — this line is doing heavy thematic lifting. In Van Maanen's Star culture, reporting is a violation of the mind-your-business norm. The Commission asks workers to do something their culture considers hostile. The notice has been up for years. Nobody has ever used channel LC-COMPLIANCE-VMS from this district.
- The notice is posted next to the shift schedule. Workers see it every day. It's wallpaper. The detective sees it and thinks "compliance infrastructure." The smuggler sees through it — it's the cost-of-doing-business calculation made literal.
- The tag line — "Protecting Neural Integrity" — is Commission branding. Workers have opinions about this phrase. None of them are positive.
@@ -169,15 +169,15 @@ or via Meridian channel LC-COMPLIANCE-KRENN.
Meridian feed display. Text-scrolling format. Mix of Reach-wide and local. Updated continuously. The bar's ambient information stream.
```
FREIGHT INDEX: KRENN CORRIDOR +0.3% | TAVROS LINK STEADY | SOVA THROUGHPUT 94%
FREIGHT INDEX: VAN MAANEN CORRIDOR +0.3% | TAVROS LINK STEADY | SOVA THROUGHPUT 94%
ASSEMBLY SESSION 447: FRONTIER AUTONOMY MOTION TABLED AGAIN — "NOT THE TIME" SAYS CHAIR PELLAM
STATION ADVISORY: VENTILATION MAINTENANCE SECTOR 3 SCHEDULE EXTENDED. COMPLETION NOW EST. CYCLE 18
KRENN PRIME SURFACE: STORM WARNING NORTH LATITUDE BAND — DEPOT OPERATIONS NORMAL
VAN MAANEN PRIME SURFACE: STORM WARNING NORTH LATITUDE BAND — DEPOT OPERATIONS NORMAL
SPORT: ORBITAL 3 TAKES SOVA LEAGUE FINAL 4-2. MATCH REPLAY AVAILABLE MERIDIAN-SPORT-KRENN
SPORT: ORBITAL 3 TAKES SOVA LEAGUE FINAL 4-2. MATCH REPLAY AVAILABLE MERIDIAN-SPORT-VMS
COMMISSION: QUARTERLY COMPLIANCE REVIEW SCHEDULE POSTED. NEXT SOVA INSPECTION: CYCLE 22
```
+1 -1
View File
@@ -1,5 +1,5 @@
name: The Settled Reach
version: 0.1.26
version: 0.1.27
repository: settled-reach
codename: commonwealth
+6
View File
@@ -7,3 +7,9 @@ disallowed-types = [
{ path = "std::collections::HashMap", reason = "HashMap iteration order is non-deterministic. Use BTreeMap or IndexMap for deterministic simulation." },
{ path = "std::collections::HashSet", reason = "HashSet iteration order is non-deterministic. Use BTreeSet or IndexSet." },
]
# Bevy ECS system functions naturally accumulate many Res<>/Query<> parameters and
# complex Query type signatures. These thresholds are tuned to allow idiomatic
# Bevy system code while still catching genuinely problematic complexity elsewhere.
type-complexity-threshold = 750
too-many-arguments-threshold = 12
+1 -1
View File
@@ -1236,7 +1236,7 @@ dependencies = [
[[package]]
name = "settled-reach-server"
version = "0.1.25"
version = "0.1.26"
dependencies = [
"bevy_app",
"bevy_ecs",
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "settled-reach-server"
version = "0.1.26"
version = "0.1.27"
edition = "2021"
[dependencies]
+9
View File
@@ -0,0 +1,9 @@
# cargo audit configuration for settled-reach-server.
# Known advisories that are tracked but not yet resolved are listed here.
# New advisories NOT in this list will fail CI.
[advisories]
# RUSTSEC-2025-0141: bincode v1.3.3 is unmaintained.
# Migration to bincode v2 or an alternative is tracked in ticket #636.
# This ignore can be removed once #636 is resolved.
ignore = ["RUSTSEC-2025-0141"]
@@ -12,7 +12,7 @@ headlines:
# --- Freight / Commodity (6) ---
- id: ticker_001
text: "KRENN FREIGHT INDEX: Lattice components +12% on Syndic supply restrictions"
text: "VAN MAANEN FREIGHT INDEX: Lattice components +12% on Syndic supply restrictions"
category: freight
dual_lens:
smuggler: "Prices up. Every run is worth more — and every run is riskier."

Some files were not shown because too many files have changed in this diff Show More