BPMN — Турнир в сессии (без Improdor)
Активность: от лобби до смены игр в одной сессии TableTime.
flowchart TD
Start([Host создаёт сессию]) --> Join[Игроки join по коду]
Join --> Lobby[Лобби: список участников]
Lobby --> Select{Host выбирает игру}
Select --> StartGame[POST /sessions/id/games]
StartGame --> Play[Игровой цикл: actions + WS]
Play --> Finished{Игра завершена?}
Finished -->|нет| Play
Finished -->|да| History[Запись в историю сессии]
History --> Again{Ещё игра?}
Again -->|да| Select
Again -->|нет| Close[Host закрывает сессию]
Close --> End([Конец])
Activity: один ход игрока
flowchart TD
A[Ожидание хода] --> B{Мой ход?}
B -->|нет| A
B -->|да| C[UI показывает actions_available]
C --> D[Игрок отправляет action]
D --> E[POST /games/id/actions]
E --> F{validate ok?}
F -->|нет| G[Показать ошибку]
G --> C
F -->|да| H[apply_action + persist]
H --> I[WS broadcast state_changed]
I --> J{is_finished?}
J -->|да| K[GameOver banner]
J -->|нет| A
Activity: кооперативная игра (Коалиция)
flowchart TD
R1[Раунд N: раздать карты] --> W[Любой игрок play_card]
W --> V{value > last?}
V -->|да| M{все карты выложены?}
V -->|нет| L[lose_life]
M -->|да| RN{раунд < 4?}
M -->|нет| W
RN -->|да| R1
RN -->|нет| Win([Команда победила])
L --> L2{lives > 0?}
L2 -->|да| R1
L2 -->|нет| Lose([Поражение])
Примечание: шоу vs платформа
В шоу «Тейбл Тайм» 8 игр за сезон накапливают баллы к финалу. В TableTime v1 каждая GameInstance — независимая партия; турнирная обёртка (серия игр с общим счётом) — Phase 5+ roadmap.