Нефункциональные требования — игры
Дополнение к non-functional-requirements.md для каталога игр.
Общие NFR (все игры)
Все плагины наследуют NFR-001–NFR-034 платформы, в частности:
| ID |
Применение к играм |
| NFR-001 |
apply_action p95 < 300 ms |
| NFR-002 |
state update p95 < 1 s |
| NFR-031 |
unit + Gherkin acceptance на плагин |
| NFR-G05* |
reproducible seed в тестах |
*см. ниже
NFR по tier
| ID |
Tier |
Требование |
Метрика |
| NFR-G01 |
1 |
Полная валидация ходов на сервере; 0 human judge |
100% actions validated |
| NFR-G02 |
2 |
Таймер фазы |
p95 точность ±1 с |
| NFR-G03 |
3 |
Upload медиа |
p95 < 3 s; fallback текст |
| NFR-G04 |
4 |
MVP-упрощение vs шоу |
disclaimer в UI + spec |
| NFR-G05 |
All |
Колоды/кости/доски: seed для тестов |
pytest deterministic |
| NFR-G06 |
All |
≥ 3 Gherkin сценария на плагин |
acceptance-tests.md |
| NFR-G07 |
3 |
Canvas/grid touch |
min viewport 320px |
Матрица tier × NFR
plugin_id |
Tier |
G01 |
G02 |
G03 |
G04 |
G06 |
yatzy |
1 |
✓ |
— |
— |
— |
✓ |
koaliciya |
1 |
✓ |
— |
— |
— |
✓ |
memo |
1 |
✓ |
— |
— |
— |
✓ |
sto_kletok |
1 |
✓ |
— |
— |
— |
✓ |
perudo |
1 |
✓ |
— |
— |
— |
✓ |
shlyapa |
2 |
— |
— |
— |
— |
✓ |
kontakt |
2 |
— |
— |
— |
— |
✓ |
parol |
2 |
— |
✓ |
— |
— |
✓ |
draw_film |
3 |
— |
✓ |
✓ |
— |
✓ |
pugovki |
4 |
— |
— |
— |
✓ |
✓ |
dice_board |
1 |
✓ |
— |
— |
— |
✓ |
Полная матрица 52 игр: tier из implementation-matrix.md; G01 для tier 1, G02 для tier 2+, G03 для MediaCreative, G04 для PhysicalProxy.
NFR по семействам
| Семейство |
Доп. NFR |
| DiceAndScore |
CSPRNG (FR-035); scorecard immutable после записи |
| BoardGrid |
NFR-005 media render; NFR-G07 touch grid |
| WordParty |
Caption ≤ 1024 в TG; secret leak test per viewer |
| CardTrick |
Hand size server-only; shuffle Fisher-Yates |
| MemoryMatch |
Hidden state never in public API |
| CoopSilent |
No chat integration in v1 |
| MediaCreative |
NFR-G03 upload; CDN cache 60s |
| PhysicalProxy |
NFR-G04 disclaimer обязателен |
Тестирование
| Уровень |
Требование |
| Unit |
test_{plugin_id}.py — validate, apply, win, render |
| Gherkin |
acceptance-tests.md — ≥ 3 сценария |
| Integration |
test_game_service.py — HTTP flow |
| Web |
Component test для панелей Tier 1–2 |
| E2E |
Playwright для Phase 4a игр (post-MVP) |
Связанные документы