Add authorable per-level briefing checklist

The case briefing showed a wall of body text. Add a checklist of short,
player-tickable steps authored per level: a new `checklist` on the level brief
(table osint.level_brief_checklist_items), read/written with the board, cloned
on template freeze/instantiate, and carried through the mystery importer and the
mystery:pull exporter. Player tick state is guidance-only, persisted locally per
level rather than on the shared board. Convert the Barricelli inventor-proof
brief from prose into a short intro plus a six-step checklist.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-08-23 22:50:50 +02:00
co-authored by Claude Opus 4.8
parent 95b17e945c
commit e37dc651f3
9 changed files with 53 additions and 12 deletions
+10
View File
@@ -0,0 +1,10 @@
-- Case-briefing checklist: an ordered list of short, player-tickable steps authored per
-- level, sitting alongside the brief body and concepts. Tick state is client-side only,
-- so the server just stores the authored item text and its order.
CREATE TABLE osint.level_brief_checklist_items (
id UUID PRIMARY KEY,
board_id UUID NOT NULL REFERENCES osint.boards(id) ON DELETE CASCADE,
sort_order INTEGER NOT NULL DEFAULT 0 CHECK (sort_order >= 0),
text TEXT NOT NULL
);
CREATE INDEX level_brief_checklist_items_board_order ON osint.level_brief_checklist_items (board_id, sort_order);