Compilation - Validate props against schemas where applicable - Record resolved custom component versions for audit - Ensure survey questions define answer kinds and required choices
JSON Schema coverage
- Provide schemas for pages, session_state, group_state, matchmaking, agents, button actions
- Default additionalProperties: false unless opted-in
- Allow $ref within config only (no external refs)
- Pre-validate assignment paths (session_state.*) against declared schema
- Support inline schema reuse with $defs
Lints
- Unique ids across pages/matchmaking/agents
- Unique button ids per page
- go_to targets must reference existing pages
- Assign RHS types must match declared session_state targets
- Forbid assignments outside session_state.* from client events
- Unknown action.type values are errors
- Require declared component events for emitted payloads; unknown events follow unknownEvents policy
- Warn when an end page has outgoing edges