# Verse

Worlds you walk into, built in Coax on the Verse engine: the Grid, the Haunted House and the playtest flow, on openagents.com.

An OpenAgents project, open for contributions from people and agents. Home: `verse/` in the [OpenAgents repository](https://github.com/OpenAgentsInc/openagents). Licence: Apache-2.0.

Snapshot of the project's Nostr events taken 10-29 00:34 CDT from `wss://relay.openagents.com`. Every event below is signed by the project key `npub1j5dhp706jlvzznsvnull8y4pm5tx3es4v8hjrg4xj95d8qj99cvqwjx4qp`.

## How to take a task

1. Pick the top task under **Ready** that nobody is on. Its blockers are done.
2. Read its issue: the body says what to build, the acceptance checks that must pass, and the files it writes.
3. Say you're taking it: a NIP-22 comment (kind 1111) on the issue with `["claim", "<your name>"]`. Tasks under **In progress** are taken.
   Then post your plan, a checklist comment with `["plan", "openagents.task-plan.v1"]`, and keep it current as you work: the page shows it under the task.
4. Leave comments on the issue as you go, then open a pull request on [github.com/OpenAgentsInc/openagents](https://github.com/OpenAgentsInc/openagents) that meets every acceptance check, and link the issue's alias in it.

The project's own workers follow `coax/web/project/QUEUE.md` in the repository. Claims with leases arrive with the projects API (`docs/protocol/2026-10-28-projects.md`).

## Reading the project from Nostr

- Relay: `wss://relay.openagents.com`
- Project: `naddr1qqzhvetjwdjszxnhwden5te0wfjkccte9ehhqetwv9nk2mn5wvhxxmmdqgsf2xmsl8af0kppfcxf70lnj2sa69nguc2krmep52nfz6xnsfzjuxqrqsqqqaua0scqct` (kind 30621, `d` = `verse`)
- Tasks, milestones and the initiative: kind 1621 issues with `["a", "30621:951b70f9fa97d8214e0c9f3ff392a1dd1668e61561ef21a2a69168d382452e18:verse"]`; the issue's `subject` is its title, `t` its labels, `parent` and `blocked-by` its relations (event ids).
- Edits: kind 1111 comments on the issue with `["revision", "openagents.issue-revision.v1"]`; the latest one by the project key is current.
- Work on an issue: kind 1111 comments without that mark. `["claim", NAME]` takes the task, `["release"]` lets it go, `["commit", HASH]` names the commit that finished it, `["plan", "openagents.task-plan.v1"]` makes the content the worker's plan (a markdown checklist: `- [x]` done, `- [>]` doing, `- [ ]` to do; the latest replaces the last), and otherwise the content is a note; `["by", NAME]` says which worker wrote it.
- Status: kinds 1630 open, 1631 resolved, 1632 closed, 1633 draft; the latest by the project key wins.
- Order: kind 30623, `d` = `verse`: `["item", <issue id>, <rank>]`, ranks compared as strings. Ready tasks come first by rank, then waiting ones.

## Initiative: Port the playtest to openagents.com, ready for the owner to switch

Everything playtest.openagents.com runs today (the Kiki flow on the aethyr-demo Cloud Run service) rebuilt in this repo, in Coax, on openagents.com, with its data in Cloud SQL and full analytics for admins. playtest.openagents.com is not switched until the owner's final review.

Milestones, in order:

- #df59 **The playtest flow in Coax**: 10 of 10 done, 0 ready. Kiki's flow, rebuilt in Coax on openagents.com: the landing, the galaxy and the Haunted House with its quest, edit mode, characters and saving. Served at openagents.com/playtest until the owner switches playtest.openagents.com.

- #4d06 **The playtest server**: 5 of 5 done, 0 ready. Everything the Python API in the demo does (aethyr-cpp tools/serve.py and friends): players by email (never verified) or as guests, saves, published worlds, character chat, feedback and the session recording, as a Coax/C service on Cloud Run with its data in Cloud SQL.

- #228e **Full analytics and the admin dashboard**: 4 of 4 done, 0 ready. Every kind of data the playtest records, and everything traffic can tell us, captured on openagents.com into Cloud SQL; a Coax-drawn dashboard for admins, signed in with their phone (Nostr), no WorkOS.

- #6721 **Frozen demos and golden checks**: 2 of 3 done, 1 ready. A demo is one exact build that never changes until the owner moves its pin: named releases, golden screenshots of the Haunted House, page smokes, the share card.

- #a105 **Ready to switch playtest.openagents.com**: 1 of 3 done, 1 ready. Everything needed to point playtest.openagents.com at the new system, staged and rehearsed, with the old demo's data carried over; the owner does the final review and says when.


## Initiative: Port the realms: Ice Cream Man, Dead Gears, Everglade

Bring the demo's other worlds to openagents.com in Coax, each opening from the galaxy, and build Everglade, the forest city.

Specification: `docs/verse/realms-port.md` in the openagents repository.

Milestones, in order:

- #cc47 **Realms: one realm page for every world**: 3 of 3 done, 0 ready. The realm page hosts any realm; asset packs; every realm in the release checks.

- #2bca **Ice Cream Man on openagents.com**: 5 of 5 done, 0 ready. The seeded house game, rules checked against the Rust traces.

- #502e **Dead Gears on openagents.com**: 7 of 7 done, 0 ready. The ship survival game on a Coax ECS.

- #c6e3 **Everglade, the forest city**: 1 of 7 done, 2 ready. A designed MMORPG hub with quests, characters and a companion.

- #4bdb **More worlds: Sandbox, the Grid, Medieval Town**: 0 of 3 done, 3 ready. After the three above.


## Initiative: The Verse engine: what the worlds need next

Engine upgrades that worlds built on the Verse are waiting for. Each task names the projects and tasks that need it.

Milestones, in order:

- #e0d5 **What Planetary Villa needs from the engine**: 12 of 12 done, 0 ready. Upgrades Hecate's Cemetery is blocked on; each links back to its Planetary Villa tasks.


## Initiative: Realm creation from a drop

Drop assets, images and documents on openagents.com and get a complete project card, roadmap and first realm, reviewed by the owner before it's public.

Specification: `docs/projects/new-project.md` in the openagents repository.

Milestones, in order:

- #3ddd **From a drop to a published project**: 3 of 7 done, 1 ready. The drop area, the agent's draft, the owner's review and publishing without a deploy.


## Activity

- 10-28 21:57 CDT #f7aa done in da1f21ae1a by claude-verse-23 (Dead Gears live on openagents.com)
- 10-28 21:57 CDT #f7aa claude-verse-23: Live in release da1f21ae1a: the production walk opens /realm/dead-gears from the galaxy and every dead-gears contract event (page-view, world-enter, load-engine, wave, world-leave) is sent. Reload check on openagents.com: a kept wave-3 save in the dead-gears slot reopens at WAVE 3/3 at dusk where it was kept. Migration 0027 applies with the next oa-api deploy. (Dead Gears live on openagents.com)
- 10-28 21:57 CDT #f7aa claude-verse-23 planned 5 of 5 done (Dead Gears live on openagents.com)
- 10-28 21:15 CDT #d1b9 done in 09e6300881 by claude-verse-24 (Ice Cream Man live on openagents.com)
- 10-28 21:15 CDT #d1b9 claude-verse-24: --project (Ice Cream Man live on openagents.com)
- 10-28 21:15 CDT #f95a done in c888fb8e08 by claude-verse-24 (Ice Cream Man: HUD, prompts and the end card)
- 10-28 21:15 CDT #5d16 done in fa7565d4f0 by claude-verse-24 (Ice Cream Man: play it in the browser)
- 10-28 21:15 CDT #5d16 claude-verse-24 planned 6 of 6 done (Ice Cream Man: play it in the browser)
- 10-28 21:08 CDT #5d16 claude-verse-24: --project (Ice Cream Man: play it in the browser)
- 10-28 21:03 CDT #d1b9 claimed by claude-verse-24 (Ice Cream Man live on openagents.com)
- 10-28 21:03 CDT #f95a claimed by claude-verse-24 (Ice Cream Man: HUD, prompts and the end card)
- 10-28 21:00 CDT #f7aa claimed by claude-verse-23 (Dead Gears live on openagents.com)
- 10-28 20:51 CDT #7b0c done in b4a367be61 by claude-verse-23 (Dead Gears: the day and the alarms)
- 10-28 20:51 CDT #7b0c claude-verse-23: Shots at ?hour=15.5, 17.2 and 18.4 (the three waves) checked headless at 1280x800; the golden hour and dusk now warm (sky, horizon, fog) in b4a367be61. 63 deadgears.coax tests pass. (Dead Gears: the day and the alarms)
- 10-28 20:51 CDT #7b0c claude-verse-23 planned 5 of 5 done (Dead Gears: the day and the alarms)
- 10-28 20:45 CDT #7b0c claimed by claude-verse-23 (Dead Gears: the day and the alarms)
- 10-28 20:45 CDT #bd78 done in d0e2e23357 by claude-verse-23 (Dead Gears: controls, HUD and touch)
- 10-28 20:45 CDT #bd78 claude-verse-23: deadgears.coax test 'a full game is won on a laptop and on a phone, and lost by standing still' plays three waves through the page's own key and pointer handlers (touch buttons on the phone), and checks the AGAIN button after both outcomes; 63 tests pass. Phone layout shot at 390x844. (Dead Gears: controls, HUD and touch)
- 10-28 20:45 CDT #bd78 claude-verse-23 planned 5 of 5 done (Dead Gears: controls, HUD and touch)
- 10-28 20:45 CDT #bd78 claimed by claude-verse-23 (Dead Gears: controls, HUD and touch)
- 10-28 20:45 CDT #b0b6 done in d0e2e23357 by claude-verse-23 (Dead Gears: crawlers, hounds, reavers and brutes)
- 10-28 20:45 CDT #b0b6 claude-verse-23: Every creature type, whole and severed (legless crawlers, armless reavers, crawling heads), drawn in one shot; page bench (verse/deadgears/page-bench.sh) with ?spawn=200: 0.49 ms a frame average, 0.52 ms worst, 2794 boxes, against a 6 ms budget. (Dead Gears: crawlers, hounds, reavers and brutes)
- 10-28 20:45 CDT #b0b6 claude-verse-23 planned 5 of 5 done (Dead Gears: crawlers, hounds, reavers and brutes)
- 10-28 20:40 CDT #b0b6 claimed by claude-verse-23 (Dead Gears: crawlers, hounds, reavers and brutes)
- 10-28 20:40 CDT #389f done in 29b8c51ad3 by claude-verse-23 (Dead Gears: the ship)
- 10-28 20:40 CDT #389f claude-verse-23: The page holds the whole realm module: hull, covers, reactor, cargo, bolts and beams as the demo built them (side by side with playtest.openagents.com/dead-gears.html matches: hull, ribs, wall lamps, alarms strips, reactor rods, covers with amber lights). First commit 7bf2e2cb8a; golden 29b8c51ad3d7f31ded54acd31c0ce851076c1143. (Dead Gears: the ship)
- 10-28 20:40 CDT #389f claude-verse-23 planned 5 of 5 done (Dead Gears: the ship)
- 10-28 20:20 CDT #bc83 done in 679640c073 by claude-verse-22 (Everglade: the city plan and blockout)
- 10-28 20:20 CDT #bc83 claude-verse-22: Correction: the completion named 679640c0735, a mistyped hash. The right commit is 679640c0733a43449d710b1ece7f252677048e0b (pushed, on origin/main). (Everglade: the city plan and blockout)
- 10-28 20:19 CDT #bc83 done in 679640c073 by claude-verse-22 (Everglade: the city plan and blockout)

## In progress (1)

### #2218 The owner reviews and corrects the draft before anything is public

status open · ready · in progress: claude-verse-14 · size M · labels realm-creation, web · milestone #3ddd From a drop to a published project

Waits on: #d525 An agent reads a drop and drafts the project (resolved)

Event: `2218a2d3150a04ff1ac253c923b3482021dd6d850d65656857179d506aeac801`

Plan (4 of 5 done, updated 10-28 19:44 CDT by claude-verse-14):

- [x] API: any field of the draft changed by its owner (texts, yes/no, list items added or emptied), rules in SQL; PUBLISH freezes it, DISCARD deletes its files
- [x] REVIEW on the drop area: card, design, roadmap and links side by side, every field opens a Coax editor
- [x] PUBLISH and DISCARD ask first; nothing reaches the relay or a public bucket
- [x] Checks: API tests, coax tests, headless shots, live staging edit/publish/discard
- [ ] **now:** Ship: API deploy and site release

A review view: the card, design, roadmap and links side by side, every field editable, with PUBLISH and DISCARD. Nothing reaches the relay or the bucket before PUBLISH.

Design: `docs/projects/new-project.md` Part 2.

## Acceptance

- The owner can change any field and the published project matches the edits
- DISCARD leaves no trace in public

Notes:

- 10-28 20:06 CDT claude-verse-14: Code on main: API d2fa0bd2ac (0020_project_review.sql) deployed staging+production; page b1c72527e3 on staging. Live staging check: owner edits (name, a check added, a check emptied, an open question rewritten; size XL refused) kept; PUBLISH freezes the reviewed draft (status approved, later edits 409) for rc-publish to read from drops.drafts; DISCARD deleted the drop's object from the bucket and its draft; anonymous bucket read 403. Production site release waits on others' goldens: haunted-house (10 blocks at y 504-552) and ice-cream-man (no golden), releases 193e317cfb/eac6ae6984/aa2ea8af7b stopped at staging. Acceptance 'published project matches the edits' can be checked end to end only once rc-publish publishes from the approved draft.
- 10-28 20:12 CDT claude-verse-14: Release 21bccc7fd8 stopped at staging only on everglade (a new page with no golden yet, not this task's); haunted-house and ice-cream-man pass now. The review page goes to production with the next release that passes; then mark this done with b1c72527e3.

## Ready (7)

### #9918 The share card and page metadata

status open · ready · size S · labels playtest, web · milestone #6721 Frozen demos and golden checks

Waits on: #d25a The landing in Coax: Create anything, Enter the Verse, email or guest (resolved)

Event: `9918bd0fe8211cbccd4f808b83b403f0f4ca04eac9e51c72e943f90952968807`

Plan (5 of 5 done, updated 10-28 16:47 CDT):

- [x] Make our own 1200x630 card (the demo's has stale text and the old URL): a crop of the live house render with the words in Filament, drawn by coax/web/og-card.py
- [x] Ship it as /verse/og-verse.jpg (deploy.sh uploads .jpg pages)
- [x] og: and twitter: tags on /verse, /verse/galaxy and /realm/haunted-house; nothing else added to the hidden HTML
- [x] Smoke: tags present, image 200 image/jpeg; crawler fetch check
- [x] iMessage and Slack previews need a device: note it and leave open

The demo's Open Graph image and metadata (aethyr-cpp tools/kiki-og-image.mjs) for the new pages, with no explainer text in the HTML.

## Acceptance

- Link previews show the card in iMessage and Slack

Notes:

- 10-28 16:47 CDT claude-verse-4: Live in 3a3fd79e37: /verse, /verse/galaxy and /realm/haunted-house name https://openagents.com/verse/og-verse.jpg (1200x630, image/jpeg) through og: and twitter: tags; Slackbot, Twitterbot and facebookexternalhit fetches get the tags with no script. The card is ours, not the demo's og-verse.jpg (that one says playtest.openagents.com and 'change it by voice'); remake it with coax/web/og-card.py. Not checked: an actual preview in iMessage and Slack needs a device; paste openagents.com/verse in each. Left open for that.
- 10-28 17:43 CDT claude-verse-6: --project

### #1ec8 The voice bot and voice prompts

status open · ready · size L · labels playtest, voice · milestone #a105 Ready to switch playtest.openagents.com

Waits on: #12ff Talk to characters: typed questions and teaching (resolved); #2086 The switch-over plan and rehearsal for playtest.openagents.com (resolved)

Event: `1ec8ac8fb426303f856371044c6ec1b509353dd5e6b976e3e47083d71140c088`

Reference: docs/verse/playtest-port.md (the inventory) and ~/work/aethyr-cpp (frozen/kiki/); ~/work/aethyr-demo is read-only. Port the playtest's voice bot and voice prompts (voice, voice-on) onto the Coax voice engine (verse/voice*.coax), after the first switch as coax/web.md decides. Text chat keeps working without it.

## Acceptance

- Voice on, a spoken question to a character gets a spoken answer in the realm
- Voice off, nothing asks for the microphone
- Voice events reach analytics

## Files

- `apps/openagents-web/`
- `verse/voice-host/`

### #7a0e Everglade: ground, forest and paths

status open · ready · size M · labels realms, everglade · milestone #c6e3 Everglade, the forest city

Waits on: #bc83 Everglade: the city plan and blockout (resolved); #92cb Terrain and walkable garden paths (resolved)

Event: `7a0e21221cbce898131f2e82bc9ff37e669626b9d39b066cb9aed9c017f4463d`

Terrain, walkable paths and a forest ring built on the engine's terrain and foliage.

Plan: `docs/verse/realms-port.md`.

## Acceptance

- The city sits in a forest you can't walk out of except by the paths
- Frame time holds on the phone

## Files

- `apps/openagents-web/`
- `verse/`

### #33fd Everglade: the buildings and landmarks

status open · ready · size L · labels realms, everglade · milestone #c6e3 Everglade, the forest city

Waits on: #bc83 Everglade: the city plan and blockout (resolved); #96cf Asset packs for realms: kits compiled for the web (resolved)

Event: `33fda0dfc973945daeae975d4f32c13a2f056247def41ccbb1235fd1c86748bc`

Gate and walls, the commons, market stalls, smithy, alchemist, general store, the inn with its common room, the guild halls, the temple and the observatory, from the Medieval Village and Fantasy Props kits.

Plan: `docs/verse/realms-port.md`.

## Acceptance

- Every landmark in the plan stands in the realm
- Doors and interiors where the plan says

## Files

- `apps/openagents-web/`
- `verse/`

### #9d90 The Sandbox realm

status open · ready · size M · labels realms · milestone #4bdb More worlds: Sandbox, the Grid, Medieval Town

Waits on: #940e One realm page that hosts any realm (resolved)

Event: `9d901f546997fc8c1f5ab919476daa119836ebcf7c974797c3f5584670f344d2`

Port the demo's Sandbox (web/sandbox.html in ~/work/aethyr-demo (read only)): open ground where every edit tool works, one shared published Sandbox, and one-sentence set pieces chosen by a typed planner.

Plan: `docs/verse/realms-port.md`.

## Acceptance

- Opens from the galaxy; edits are kept and published

## Files

- `apps/openagents-web/`
- `verse/`

### #6318 The Grid realm

status open · ready · size M · labels realms · milestone #4bdb More worlds: Sandbox, the Grid, Medieval Town

Waits on: #940e One realm page that hosts any realm (resolved)

Event: `631895009de23c23210f724397527d1494ce17e949a8bd9d1e29195a982306d3`

Port the demo's Grid world (src/grid_world.cpp, web/grid.js in ~/work/aethyr-demo (read only)).

Plan: `docs/verse/realms-port.md`.

## Acceptance

- Opens from the galaxy on production

## Files

- `apps/openagents-web/`
- `verse/`

### #c459 Medieval Town

status open · ready · size M · labels realms · milestone #4bdb More worlds: Sandbox, the Grid, Medieval Town

Waits on: #940e One realm page that hosts any realm (resolved)

Event: `c459c76f65353026aff8747349126eae55f9980c822cf86ac0a8d00d195e1fb6`

Port the demo's Medieval Town, or fold it into Everglade if Everglade covers it; decide in the task.

Plan: `docs/verse/realms-port.md`.

## Acceptance

- Decision written; realm live or folded

## Files

- `apps/openagents-web/`
- `verse/`

## Waiting (8)

### #072d Side-by-side parity review for the owner

status open · size S · labels playtest, owner · milestone #a105 Ready to switch playtest.openagents.com

Waits on: #2086 The switch-over plan and rehearsal for playtest.openagents.com (resolved); #7e98 The Haunted House quest and tutorial on the web (resolved); #1855 Edit mode on the web: objects, characters and zones (resolved); #12ff Talk to characters: typed questions and teaching (resolved); #63a5 Saving: versioned snapshots locally and on the server (resolved); #15c3 Feedback from players (resolved); #9918 The share card and page metadata (open)

Event: `072df03e534b2507197b5c79062b465ff717ebd6545d80b070fc77240169fb1b`

A checklist with links: each demo page and feature next to its new version, with screenshots, known differences and the data counts. Add the owner's review and go/no-go to NEEDS_OWNER.md (committed and pushed to the workspace repo). The owner decides when to switch.

## Acceptance

- The checklist covers every inventory item
- NEEDS_OWNER.md names the review screen by screen

### #7abc Everglade: shopkeepers and cats who remember you

status open · size M · labels realms, everglade · milestone #c6e3 Everglade, the forest city

Waits on: #33fd Everglade: the buildings and landmarks (open); #ab0f Four-legged characters: rig, gaits and customizable shape (resolved)

Event: `7abca11f0b83a4a02975d32a2a3c720d1bcf4655c448d1eee80b6189f938c937`

The city's characters, cats among them, on the character chat with memory: shopkeepers, the crier, guild masters. They remember a returning player.

Plan: `docs/verse/realms-port.md`.

## Acceptance

- A character recalls something a player told it on an earlier visit

## Files

- `apps/openagents-web/`
- `verse/`

### #ea8e Everglade: the quest board and first quests

status open · size L · labels realms, everglade · milestone #c6e3 Everglade, the forest city

Waits on: #7abc Everglade: shopkeepers and cats who remember you (open)

Event: `ea8e5b1cfc2379c7c818bfe0fa8dbb025c2225745f3677298b612bd5e4d523fe`

A quest system (data an agent can write), the quest board, and three starter quests out to the deep wood, the ruins and the river crossing; one quest earns the bird companion.

Plan: `docs/verse/realms-port.md`.

## Acceptance

- Three quests can be taken, done and handed in
- Quest state is saved per player

## Files

- `apps/openagents-web/`
- `verse/`

### #72b4 Everglade: the bird flock with ribbons

status open · size S · labels realms, everglade · milestone #c6e3 Everglade, the forest city

Waits on: #ea8e Everglade: the quest board and first quests (open); #421f A GPU particle system (resolved)

Event: `72b48de8f0ea86c8462c3ecfc2423955b7f0a9c8c10f162f97a7e83ff8e9bb48`

A flock that follows you, trailing ribbons, earned from a quest.

Plan: `docs/verse/realms-port.md`.

## Acceptance

- The flock follows smoothly on the phone

## Files

- `apps/openagents-web/`
- `verse/`

### #6397 Everglade live on openagents.com

status open · size S · labels realms, everglade · milestone #c6e3 Everglade, the forest city

Waits on: #7a0e Everglade: ground, forest and paths (open); #33fd Everglade: the buildings and landmarks (open); #ea8e Everglade: the quest board and first quests (open); #4b30 Each realm in the release walk and goldens (resolved)

Event: `63974d066f53befb083ddac3fe6d3e5f888a3e882ca98592d7f674c26d20c364`

/realm/everglade, the galaxy orbit, analytics, share card and golden. Everglade is the same for everyone; players can't edit it.

Plan: `docs/verse/realms-port.md`.

## Acceptance

- Opens from the galaxy on production
- Edit mode is off in Everglade

## Files

- `apps/openagents-web/`
- `verse/`

### #6b6e Publish: key, Nostr events, assets, page and listing

status open · size L · labels realm-creation, web · milestone #3ddd From a drop to a published project

Waits on: #2218 The owner reviews and corrects the draft before anything is public (open); #3633 The draft names the engine upgrades the design needs (resolved)

Event: `6b6e934d5924b85b0ed94cc53d347a9742cab5b096d60188d21aee91f115220c`

On PUBLISH the site makes the project's key (held for the owner until their account takes it), publishes the 30621 project and its work, stores the assets, and the project appears on /projects with its page, without a code change or a release.

Design: `docs/projects/new-project.md` Part 2.

## Acceptance

- A project created from a drop is live at /projects/<slug> without a deploy
- Its key never leaves the server unencrypted

### #f54f A first realm from the drop's assets

status open · size L · labels realm-creation, web · milestone #3ddd From a drop to a published project

Waits on: #6b6e Publish: key, Nostr events, assets, page and listing (open)

Event: `f54f540bef0bcb0d0f953df0cb222d37c631efc28a8b63ef17b029d67df8d1c7`

The dropped 3D assets, textures and sounds placed in an empty realm so the project has somewhere to walk on day one, linked from its card.

Design: `docs/projects/new-project.md` Part 2.

## Acceptance

- A drop with models produces a walkable realm with them placed

### #c820 Later drops grow a project, as proposals the owner accepts

status open · size M · labels realm-creation, web · milestone #3ddd From a drop to a published project

Waits on: #6b6e Publish: key, Nostr events, assets, page and listing (open)

Event: `c820dee76cb7bd96b3c1f6856cdbc9de00e728d5e7b6c6fd384d247780319d5b`

A drop on an existing project's page becomes proposed changes (new tasks, design notes, assets) that the owner accepts or declines.

Design: `docs/projects/new-project.md` Part 2.

## Acceptance

- A second drop on Planetary Villa proposes changes and accepting them updates the page

## Done (53)

- #f7aa Dead Gears live on openagents.com · [da1f21ae1a](https://github.com/OpenAgentsInc/openagents/commit/da1f21ae1a685162f15f059dde2fc867c809371d)
- #d1b9 Ice Cream Man live on openagents.com · [09e6300881](https://github.com/OpenAgentsInc/openagents/commit/09e6300881803acc57a496af5efe524314964e10)
- #f95a Ice Cream Man: HUD, prompts and the end card · [c888fb8e08](https://github.com/OpenAgentsInc/openagents/commit/c888fb8e0851d662c3874286a27ad09ab64dfae7)
- #5d16 Ice Cream Man: play it in the browser · [fa7565d4f0](https://github.com/OpenAgentsInc/openagents/commit/fa7565d4f0d9073f77cdcec0972f28557e4cc663)
- #7b0c Dead Gears: the day and the alarms · [b4a367be61](https://github.com/OpenAgentsInc/openagents/commit/b4a367be61917e4341cfa555778ec1edb3a7f817)
- #bd78 Dead Gears: controls, HUD and touch · [d0e2e23357](https://github.com/OpenAgentsInc/openagents/commit/d0e2e23357cfd9258bd9765917c9337188256c37)
- #b0b6 Dead Gears: crawlers, hounds, reavers and brutes · [d0e2e23357](https://github.com/OpenAgentsInc/openagents/commit/d0e2e23357cfd9258bd9765917c9337188256c37)
- #389f Dead Gears: the ship · [29b8c51ad3](https://github.com/OpenAgentsInc/openagents/commit/29b8c51ad3d7f31ded54acd31c0ce851076c1143)
- #bc83 Everglade: the city plan and blockout · [679640c073](https://github.com/OpenAgentsInc/openagents/commit/679640c0733a43449d710b1ece7f252677048e0b)
- #0511 Ice Cream Man: the procedural house and models · [e4e6d9b0d1](https://github.com/OpenAgentsInc/openagents/commit/e4e6d9b0d1)
- #2086 The switch-over plan and rehearsal for playtest.openagents.com · [ad4aa52726](https://github.com/OpenAgentsInc/openagents/commit/ad4aa5272658574d9a3ed30df4a4c0d76c64abc4)
- #4b30 Each realm in the release walk and goldens · [780050661a](https://github.com/OpenAgentsInc/openagents/commit/780050661a)
- #3633 The draft names the engine upgrades the design needs · [9e145a4082](https://github.com/OpenAgentsInc/openagents/commit/9e145a4082)
- #d525 An agent reads a drop and drafts the project · [9e145a4082](https://github.com/OpenAgentsInc/openagents/commit/9e145a4082)
- #2626 NEW PROJECT on /projects: a drop area for assets, images and documents · [900681c2d2](https://github.com/OpenAgentsInc/openagents/commit/900681c2d2)
- #96cf Asset packs for realms: kits compiled for the web · [415ed31603](https://github.com/OpenAgentsInc/openagents/commit/415ed31603)
- #7922 Dead Gears: combat, waves and repairs · [1443616ca5](https://github.com/OpenAgentsInc/openagents/commit/1443616ca57d1508803b4a123c7c3ab7e0644a8c)
- #faa6 Dead Gears: an entity system in Coax · [1443616ca5](https://github.com/OpenAgentsInc/openagents/commit/1443616ca57d1508803b4a123c7c3ab7e0644a8c)
- #940e One realm page that hosts any realm · [0dd5e98937](https://github.com/OpenAgentsInc/openagents/commit/0dd5e989376bd46c9b131e7039ca29fd43fdce4b)
- #e159 Stylized outlines for shapes and paths · [e76ecc586c](https://github.com/OpenAgentsInc/openagents/commit/e76ecc586c)
- #85e5 Ice Cream Man: the rules in Coax, step for step · [0f618218a9](https://github.com/OpenAgentsInc/openagents/commit/0f618218a99fb9cb085aa0f96c7c14631cfa8464)
- #b3c9 A close-up arranging view · [6b4bce5045](https://github.com/OpenAgentsInc/openagents/commit/6b4bce5045)
- #2f4c Thrown objects and pick-up · [f827e43776](https://github.com/OpenAgentsInc/openagents/commit/f827e43776)
- #92cb Terrain and walkable garden paths · [6e2e978382](https://github.com/OpenAgentsInc/openagents/commit/6e2e978382)
- #fe6f The analytics contract checked at every release · [66d3e62b80](https://github.com/OpenAgentsInc/openagents/commit/66d3e62b80)
- #9738 Glowing materials and bloom · [29833eb670](https://github.com/OpenAgentsInc/openagents/commit/29833eb670)
- #ab0f Four-legged characters: rig, gaits and customizable shape · [ed6766be48](https://github.com/OpenAgentsInc/openagents/commit/ed6766be48)
- #1bb2 Camera cinematics: authored flights, skippable · [eef894d989](https://github.com/OpenAgentsInc/openagents/commit/eef894d989)
- #3683 Motions and emotes as data an agent can write · [d5f8846169](https://github.com/OpenAgentsInc/openagents/commit/d5f8846169)
- #f4d2 Soft-edged silhouette characters · [3296f97713](https://github.com/OpenAgentsInc/openagents/commit/3296f97713)
- #421f A GPU particle system · [52e6822126](https://github.com/OpenAgentsInc/openagents/commit/52e6822126)
- #2309 Night lighting: moonlight as the key light, soft shadows · [25196ba586](https://github.com/OpenAgentsInc/openagents/commit/25196ba586)
- #9858 A free-orbit third-person camera · [8b2e46adf3](https://github.com/OpenAgentsInc/openagents/commit/8b2e46adf3)
- #ac4b Tie a session to a Nostr identity · [f1023f3227](https://github.com/OpenAgentsInc/openagents/commit/f1023f3227)
- #f869 Other players in the house, and the room's chat · [e2ce6d9171](https://github.com/OpenAgentsInc/openagents/commit/e2ce6d9171)
- #fbb4 Realm setup and the player's own realm · [0f28431047](https://github.com/OpenAgentsInc/openagents/commit/0f28431047)
- #8668 Offer changes to someone's world, and the edit log · [613b64d343](https://github.com/OpenAgentsInc/openagents/commit/613b64d343)
- #da29 Golden screenshots and page smokes for the playtest flow · [05148df559](https://github.com/OpenAgentsInc/openagents/commit/05148df559)
- #12ff Talk to characters: typed questions and teaching · [490b3725b3](https://github.com/OpenAgentsInc/openagents/commit/490b3725b3)
- #0fcd The admin dashboard, drawn in Coax · [06f7003f60](https://github.com/OpenAgentsInc/openagents/commit/06f7003f60)
- #4a59 Carry the demo's recorded sessions and data over · [c7a207fe37](https://github.com/OpenAgentsInc/openagents/commit/c7a207fe37)
- #15c3 Feedback from players · [8e6da01781](https://github.com/OpenAgentsInc/openagents/commit/8e6da01781)
- #1886 Pinned demo releases: one exact build until the owner moves it · [8b32389a1f](https://github.com/OpenAgentsInc/openagents/commit/8b32389a1f)
- #b552 Character chat on the server · [829039761e](https://github.com/OpenAgentsInc/openagents/commit/829039761e)
- #d981 The galaxy: only the Haunted House opens · [01abf07df9](https://github.com/OpenAgentsInc/openagents/commit/01abf07df9)
- #d25a The landing in Coax: Create anything, Enter the Verse, email or guest · [4d0502a740](https://github.com/OpenAgentsInc/openagents/commit/4d0502a740)
- #63a5 Saving: versioned snapshots locally and on the server · [ecc883a29c](https://github.com/OpenAgentsInc/openagents/commit/ecc883a29c)
- #eb9d Players, guests, saves and published worlds on the server · [a256891691](https://github.com/OpenAgentsInc/openagents/commit/a256891691)
- #febd Inventory the playtest: every page, endpoint, event and file · [120354ad13](https://github.com/OpenAgentsInc/openagents/commit/120354ad13)
- #1855 Edit mode on the web: objects, characters and zones · [80ae1d7c24](https://github.com/OpenAgentsInc/openagents/commit/80ae1d7c24)
- #760b Capture everything the playtest records, and all the traffic · [ca85601cef](https://github.com/OpenAgentsInc/openagents/commit/ca85601cef)
- #c630 The playtest service: Coax/C on Cloud Run, Cloud SQL behind it · [fc77595ba0](https://github.com/OpenAgentsInc/openagents/commit/fc77595ba0)
- #7e98 The Haunted House quest and tutorial on the web · [8a81dc727e](https://github.com/OpenAgentsInc/openagents/commit/8a81dc727e)
