Narration policy
Turn committed broadcast facts into provider-neutral cues while the host owns voices, synthesis, playback, and failure recovery.
Narration runs after commit and consumes bounded broadcast facts. It proposes what might be said, not how a provider synthesizes or plays it.
Public interface
Prop
Type
Wrap policy with defineNarrationDirector and the standard narration worker adapter.
A cue may specify
- bounded text and optional caption;
- semantic speaker or voice role;
- priority;
- expiry;
- whether it may interrupt another cue;
- cancellation keys when later truth supersedes it.
Intentional silence is a valid plan. The director should suppress repetitive, stale, low-value, or unsafe narration instead of filling every second.
Host responsibilities
The host owns listener modes, voice selection, provider credentials, synthesis, caching, rate limits, queues, cancellation, playback, captions, observability, and recovery. A provider outage never changes the Attempt or match outcome.
Policy scenarios
- routine progress stays quiet;
- personal best receives a short high-value cue;
- a correction cancels an invalidated callout;
- a higher-priority match outcome interrupts a routine cue;
- expired facts produce silence;
- repeated facts are deduplicated;
- locale and listener mode constrain output without leaking provider details.
Coordination and multiplayer
Add deterministic match, race, roster, round, and input-arbitration policy without creating a privileged multiplayer activity fork.
Domain Kits
Reuse pure vertical rules, schemas, fixtures, UI, and presentation at build time without creating runtime privilege or member configuration.