crates/core
Общие доменные типы без HTTP и базы данных.
| Файл | Назначение |
|---|---|
| progress.rs | PlayerProgress, миграция v1→v2, плоский клиентский JSON |
| context.rs | PlayContext, включая допуск сверки score |
| keys.rs | Tenant-scoped ключи progress, idempotency и rate limit |
| fraud.rs | FraudProjectConfig, блокировка сверки score, правила |
| events.rs | Типы событий и помощники |
PlayerProgress содержит XP, streak, score, level, flags и spec_version. Контур хранения зависит от engine: старые data/native — hot/cold, game_run — только Postgres. GameRun и результаты уровней не являются Dragonfly-кешем PlayerProgress; команды пишут их транзакционно. Подробнее — progress.
Ключи Dragonfly включают проект, а для progress — ещё и template. FraudProjectConfig задаёт velocity, flags и score_reconciliation_block_modes; его читают FraudGate и ingress. Round-trip, миграции и ключи покрыты unit tests.