# Live Control Specification ## Source of Truth Admin cursor state is the single source of truth for active project context during live stages. ## Core Controls - start session - next/previous - jump to project - reorder queue - open/close cohort windows - pause/resume session ## Runtime Requirements 1. cursor updates are versioned 2. race conditions return `CONFLICT` and require refresh/retry 3. real-time propagation to jury and audience clients 4. reconnect path converges to current cursor/window state ## Vote Acceptance Rules - stage and cohort windows must be open - dedupe key policy enforced (`session/cohort/project/voter/window`) - closed windows reject submissions deterministically ## Event Contract - `live.cursor.updated` - `cohort.window.changed` - `live.session.state.changed`