♟️ Play Site — Overview
Карта раздела про dicechess-play — публичный сайт, где можно сыграть в Dice Chess. Сначала против наших роботов (аноним, без регистрации), а в дальнейшем — против других людей, с рейтингами, матчами и турнирами. Это новый продукт экосистемы и одновременно пятый писатель партий в аналитику (см. 08 Идентичность, источники и дедупликация).
Чем он отличается от соседних продуктов
dicechess-analytics-ui(Web UI) — read-only аналитика по партиям. Смотреть, не играть.dicechess-lab— приватный тренажёр/лаборатория (PWA «угадай ход», игра с ботом за аккаунтом-с-апрувом). Единственное место, где сейчас реально можно сыграть с нашим движком.dicechess-play(этот раздел) — публичный продукт «зашёл и сыграл». Форк play-vs-bot среза из lab, но без auth-гейта и с записью партий в общую аналитику.
Статус — Фаза 1 LIVE (2026-06-23)
Сайт работает: dicechess-play.pages.dev (Cloudflare Pages, авто-деплой из репо). Аноним играет с ботом, готовая партия идёт через токен-шлюз на Koyeb в аналитику. Проверено реальными партиями: записи
source='playsite'сguest:<uuidv7>+bot:<algorithm>, UUIDv5-id, white-POV результат, терминация из движка. Репозитории приватные. Дальше — фазы 2+ (см. 01 Дорожная карта).
🗺️ Карта раздела
- 01 Дорожная карта — шесть фаз: от анонимной игры с ботом до турниров; архитектурный разворот на фазе 3.
- 02 Архитектура — авторитет и стек — где «живёт» движок (клиент → сервер), фронтенд-стек (SvelteKit + PWA), топология ингеста через шлюз.
- 03 Фаза 1 — аноним vs бот + ингест — детальный план первого этапа: идентичность, маппер партии, путь до аналитики, гарантии валидности.
- 06 Честность кубиков — провабли-фейр и верификация — как работают провабли-фейр кости (commit-reveal + клиентская энтропия) и как проверить любую партию. Реализовано (v0.4.0).
- Журнал решений (ADR) — принятые решения по одному на заметку.
📌 Ключевые факты
| Аспект | Решение | ADR |
|---|---|---|
| Репозиторий | новый dicechess-play — форк play-среза из dicechess-lab/frontend-pwa | ADR-0001 Репозиторий dicechess-play |
| Авторитет игры | клиентский (Scala.js) до фазы 3, затем серверный (JVM + WebSocket) | ADR-0002 Клиентский авторитет до фазы 3 |
| Идентичность | source='playsite', человек guest:<uuidv7>, бот bot:<algorithm>, id партии — UUIDv5 | ADR-0003 Идентичность playsite |
| Фронтенд | SvelteKit 2 + Svelte 5 (runes) + Tailwind 4 + adapter-static + PWA | ADR-0004 Фронтенд SvelteKit 2 + PWA |
| Хостинг ингеста | токен-шлюз на Koyeb → публичный sync.jc.id.lv (POST-only) | ADR-0005 Шлюз ингеста на Koyeb |
| Bronze-архив | для playsite исключён (как у extension) | ADR-0006 Bronze-архив исключён |
| Честность кубиков | server CSPRNG + commit-reveal + клиентская энтропия; проверяемо постфактум | ADR-0008 |
🔗 Связанное
- 08 Идентичность, источники и дедупликация — playsite добавлен как пятый писатель; схема
guest:/bot:/source. - 07 Контракт ingest и валидация движком — нейтральный контракт
POST /api/games, реплей-гейт (422), first-writer-wins. - Расширение dicechess-extension — ближайший аналог: тоже first-party источник, сам контролирует идентичность и собирает
GameIngest. - Engine — движок: генерация ходов, кодирование бросков, алгоритмы ботов.
- Игра против роботов — соседняя тема: наш движок против чужих сайт-ботов (это про добычу, а не про наш продукт).