# Board demo scope

The active demo starts directly on a mutable OSINT board. Campaign navigation,
cutscenes, dialogue, NPC presentation, and story-graph progression are not part of
this slice. Their existing code and migrations remain isolated for possible later
work, but the board does not invoke them.

## Included gameplay

- A level loads its currently available normalized exhibits, board arrangement,
  folders, threads, parties, events, and timeline.
- A document may require one or more boolean level flags. Play-mode responses omit
  an unavailable document and every relation or thread touching it. Author mode
  exposes the requirements in the document metadata editor.
- The first time an available document is delivered to a level, it receives a
  short **NEW EVIDENCE** arrival animation. The acknowledgement is persisted so a
  normal reload does not replay it.
- Administrators can inspect, award, and revoke demo flags from **Admin → Level
  Flags**. This is a test/authoring control; future gameplay systems may award the
  same flags without changing the document-gating model.
- Any player may add evidence by choosing a file, dragging a file onto the board,
  or pasting an image from the clipboard. A pasted macOS or Windows screenshot is
  uploaded to object storage and created as a normalized image Document near the
  center of the current viewport.
- Uploaded images are OCRed and uploaded text files are read directly. Extracted
  text becomes searchable Document content and is compared with board-owned fuzzy
  passage rules. Matching enough distinctive anchors awards the rule's flag; an
  OCR error never rejects or removes the player's source.

## Gate semantics

Flags are lowercase keys such as `lead.auction_catalogue`. A document with no
requirements is visible at level load. A document with several requirements is
visible only after **all** of them have been earned. Flags belong to the mutable
level; requirements belong to the board and therefore clone with template
versions. The server is the visibility authority.

Evidence recognition rules also belong to the board and clone with template
versions. Each rule names a flag, contains one or more reference passages, gives
each passage a similarity threshold, and states how many passages must match.
Evaluation rows and their per-anchor scores belong to the mutable level, providing
an audit trail for automatic victories and reveals.

The bundled Glass Harbor manifest gates the auction catalogue behind
`lead.auction_catalogue`, providing one small reveal for the demo.
