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

19 lines
1.3 KiB
Markdown

# 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).