# Countdown Studio > A faithful, offline-capable British TV game show web application (Letters, Numbers & Conundrum). Features Solo Practice, Dictionary Corner word validation, arithmetic solver, and a Dual-Screen Live Stage Versus mode powered by real-time WebSocket synchronization. ## When to use this Reach for Countdown Studio when handling any of the following agent tasks: - **Game show simulation**: Running a structured 15-round British TV Countdown game session with dedicated host controls and separate projector/display output. - **Word puzzle & anagram solving**: Verifying whether a target English word can be formed from a selection of 9 vowels/consonants and checking its validity in the official Countdown dictionary. - **Numbers game target arithmetic**: Generating solutions to reach a 3-digit target number using 6 chosen numbers (large and small) and standard arithmetic operations (+, -, *, /). - **Conundrum buzzer round**: Hosting a 9-letter anagram round with timed reveal, multiple acceptable solutions, and buzzer scoring. - **Classroom or event quiz production**: Facilitating dual-screen interactive quizzes with PIN-based room codes and no installation required. Do **NOT** use Countdown Studio for: - General-purpose countdown clocks or event reminder timers. - General trivia or non-Countdown TV formats (e.g. Jeopardy, Who Wants to Be a Millionaire). - Project deadline trackers or pomodoro timers. ## How an agent should call this Production Domain: Backend API: ### 1. Solo Practice Mode - **URL**: `GET /solo.html` (or `GET /solo.html?drill=daily` for daily seed) - **Role Requirement**: Individual account (`role: individual`, permission `solo:practice`). - **Capability**: Timed letters rounds (30 seconds), numbers target challenge, and conundrum solver with offline dictionary corner assistance. ### 2. Stage Host Console (Operator) - **URL**: `GET /versus-host.html` - **Role Requirement**: Organization account (`role: organization` or `admin`, permission `host:operations`). - **Protocol**: Connect via WebSocket to `/ws` with action `host:auth` (room code + custom 4-8 digit PIN; re-auth reconnects to an existing room). Broadcasts board state with `host:broadcast` and stage configuration with `host:stage_config`; `host:close_room` ends the room and archives the match. ### 3. Stage Display (Audience / Projector) - **URL**: `GET /versus-display.html` - **Role Requirement**: Organization account (`role: organization` or `admin`, permission `stage:display`). - **Protocol**: Connect via WebSocket to `/ws` with action `display:join` using the room code generated by the host. Receives read-only synchronization of game timers and letter/number tiles (`stage:sync`), and may ring buzzers (`display:buzz`), re-request state (`display:request_state`, answered with `stage:sync` or `stage:empty`), and clear the panic blank screen (`display:clear_panic`, relayed to the host as `room:clear_panic`). ### 4. REST API Endpoints - `GET /api/health` — Returns server health, active rooms count, and connection metrics. - `GET /api/room/:roomId` — Inspect a live room (host presence, display count, last activity). - `GET /api/versus/history` — Archived match list (permission `host:operations`); supports `limit`, `offset`, `room`, `from`, `to` filters. Non-admin accounts only see their own matches. - `GET /api/versus/history/:archiveId` — Full archived match snapshot (owner or admin). - `POST /api/admin/users` — Provision an `organization` or `individual` account (admin only, permission `user:manage`; `username`, `email`, `password`, `displayName`, optional `role`, default `organization`). - `GET /api/admin/users` — List active accounts with optional `role` filter (admin only, permission `user:manage`). - `POST /api/auth/register` — Register a new account (`username`, `email`, `password`, `displayName`, `role: 'individual'`). - `POST /api/auth/login` — Authenticate credentials (`identifier`, `password`); returns `{ user, token }`. - `GET /api/auth/me` — Retrieve profile of the authenticated user (`Authorization: Bearer `). - `GET /api/career/stats` — Retrieve solo game progression statistics (Individual role only). ### 5. Content Negotiation & Agent Formats - Send `Accept: text/markdown` to `/` or `/about` for concise Markdown summaries with `Vary: Accept`. - Send `Accept: text/markdown` on any invalid path to receive a structured 404 Markdown error body with helpful navigation links. - Send `Accept: text/html` for standard browser UI. ## Site Index - [Homepage](https://www.countdown-studio.id.vn/) — Product overview and mode launchpad - [Solo Practice](https://www.countdown-studio.id.vn/solo.html) — Timed solo game - [Versus Host](https://www.countdown-studio.id.vn/versus-host.html) — Host stage control panel - [Stage Display](https://www.countdown-studio.id.vn/versus-display.html) — Audience display screen - [About](https://www.countdown-studio.id.vn/about) — About Countdown Studio - [Contact](https://www.countdown-studio.id.vn/contact) — Support and contact - [Privacy Policy](https://www.countdown-studio.id.vn/privacy) — Privacy and data protection ## Machine-Readable Resources - [llms.txt](https://www.countdown-studio.id.vn/llms.txt) — This agent specification file - [.well-known/llms.txt](https://www.countdown-studio.id.vn/.well-known/llms.txt) — Standard well-known mirror - [sitemap.xml](https://www.countdown-studio.id.vn/sitemap.xml) — XML sitemap listing all indexable pages - [robots.txt](https://www.countdown-studio.id.vn/robots.txt) — Robot crawl rules and sitemap pointer - [manifest.webmanifest](https://www.countdown-studio.id.vn/manifest.webmanifest) — Web application manifest