adventure/README.md
nholtware 0ae3f6109b
All checks were successful
/ checks (push) Successful in 36s
/ deploy (push) Successful in 7s
feat: bundle Hansel and Gretel (public domain Grimm retelling)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-05 13:16:54 -06:00

1.3 KiB

adventure

Backend for the choose-your-adventure builder/player (Express 5 + Postgres), scaffolded by platform/new-service adventure --kind backend --with postgres. Frontend: adventure-web.

A story is one JSONB doc: { start, nodes: { key: { title, text, ending?, choices: [{label, to}] } } }. Validation (src/lib/story.ts): errors block publishing (missing start/targets, dead ends, no reachable ending); warnings are advisory (unreachable scenes, choices on endings).

Method Path
GET /stories published stories (?mine=1 includes drafts)
GET /stories/:id story + issues
POST / PUT /stories, /stories/:id create / replace; 400 on bad shape
POST /stories/:id/publish 422 + issues if errors
POST /stories/:id/unpublish
DELETE /stories/:id 204

No auth (homelab). Without DATABASE_URL an in-memory store is used (tests).