# Phase 6: Класс-лидерборд / живая гонка (classroom SSE) > **REMOVED (Amendment 1, 2026-06-14)** — фаза не реализуется по решению пользователя. > Архивный subplan. `game_progress.level_id` (TEXT) уже готов под лидерборд, если фичу вернут. **Status:** ❌ Removed **Parent plan:** [PLAN.md](./PLAN.md) **Domain:** fullstack ## Objective Соревновательный слой: лидерборды по уровню/классу и опциональная **живая гонка** в онлайн-уроке (реюз classroom SSE + моста `sim_state`/`apply_sim_state` из Ф7 sim-builder). ## Tasks - [ ] Task 1: API лидерборда: `GET /api/game/leaderboard?level_id=...&scope=class|global` — топ по времени/звёздам. Источник — `game_progress` (best per user). Доступ: класс — только своему классу. - [ ] Task 2: UI лидерборда: на экране уровня/победы и на карте — топ класса (имена/время/звёзды), позиция игрока. Inline SVG-медали, без эмодзи. - [ ] Task 3: Живая гонка (опц.): учитель в classroom запускает уровень классу; ученики решают одновременно; прогресс/финиши транслируются через существующий SSE-relay. Реюз iframe-конвейера `/lab?embed=...` НЕ требуется — гонка может жить на `/quantik` с гоночной комнатой по classId. - [ ] Task 4: Сервер: relay результатов гонки (минимальный, поверх существующего SSE), без новых тяжёлых таблиц — эфемерное состояние гонки в памяти/коротком хранилище. - [ ] Task 5: Тесты: лидерборд отдаёт корректный топ и режет чужой класс; submit обновляет позицию; смоук UI. ## Files to Modify/Create - `backend/src/controllers/gameController.js`, `routes/game.js` — leaderboard (+ гонка-relay). - `frontend/js/game/quantik-game.js` / `map.js` — UI лидерборда + гоночная комната. - (опц.) интеграция кнопки запуска гонки в classroom.html (аддитивно, как Ф7 sim-builder). - тест(ы). ## Acceptance Criteria - Лидерборд по классу/глобально корректен и изолирован по классу; позиция игрока видна. - Живая гонка (если включена) синхронит финиши классу через SSE; закрытие чистое. - Без эмодзи/eval; existing функционал цел; тесты зелёные; lint baseline 0. ## Notes - Реюз durable-уведомлений `pushNotif` для приглашения в гонку; эфемерный прогресс — через SSE. - classroom.html — большой; искать через vex по DOM-id, точечный Read (ast-index не индексит inline-script). ## Review Checklist - [ ] Все задачи; изоляция по классу; аддитивность classroom; без эмодзи/eval; тесты зелёные ## Handoff to Next Phase