# Known Limitations — Шашки Рояль v1.1.0

## 1. Онлайн мульти-взятие — ручная проверка на 2 устройствах
Step-by-step capture chain полностью покрыт unit-тестами (4 теста в `gameLogic.test.ts`) и проверен в LocalGame через автоматизированный smoke. **Однако** end-to-end проверка между двумя реальными клиентами через Supabase realtime **не была проведена автоматически** (требует параллельных browser-контекстов + двух Supabase-сессий).

**Что нужно проверить вручную**:
- На устройстве A создать стол. На устройстве B войти.
- A делает двойное взятие → B должен увидеть всю цепочку (анимация прыжков от стартовой к финальной позиции в одном плавном движении).
- Промежуточные хопы **НЕ синкаются** в Supabase отдельными UPDATE'ами — это by design (см. п.2).

## 2. Промежуточные хопы цепочки видны сопернику как ОДИН ход
**Поведение**: когда игрок делает мульти-взятие, его клиент применяет хопы по одному локально (с анимацией каждого прыжка). В Supabase отправляется **один UPDATE games** в конце цепочки с финальным board_state. Соперник видит:
- Все сбитые шашки исчезают одновременно.
- Бьющая шашка прыгает напрямую из стартовой клетки в финальную (по диагонали через AnimatePresence + framer-motion spring).

**Почему так**: проще и надёжнее. Отдельный sync каждого хопа потребовал бы 2-3 round-trip'а до Supabase, что добавило бы 300–600 мс задержки и нагрузку. Текущее поведение визуально приемлемо.

**Если нужно показать промежуточные хопы сопернику** — потребуется отдельная таблица `move_steps` + Realtime подписка на неё, и анимация по событиям. Это backlog-таска.

## 3. Реальные платежи / выводы НЕ подключены
Текущая Coin-экономика — **виртуальная test-ledger**:
- Стартовый бонус 10 Coin даётся каждому новому профилю через RPC `get_or_create_profile`.
- Ставки, эскроу, payout, fees — всё работает через таблицы `wallets`, `wallet_transactions`, `game_stakes`.
- **Нет интеграции** со Stripe / Razorpay / PayPal / USDT.
- **Coin нельзя купить, нельзя вывести**. Это внутренняя единица учёта для тестов и демо.

Когда придёт время подключать реальные деньги — потребуется лицензия на онлайн-гемблинг в юрисдикции релиза + KYC/AML + интеграция платёжного провайдера через `integration_playbook_expert_v2`. Это **большая отдельная задача** на 1-2 недели.

## 4. APK — debug-signed, не production-ready
- `release/shashki-royale-v1.1.0-debug-build-20260521.apk` подписан **debug keystore** Android SDK.
- **Нельзя загружать в Google Play** в таком виде.
- Для Play Store нужен:
  - Собственный release keystore (`.jks`)
  - Конфиг подписи в `android/app/build.gradle`
  - `./gradlew bundleRelease` (App Bundle, не APK)
- Запросить генерацию keystore + release-build — отдельная команда мейн-агенту.

## 5. Google OAuth скрыт в UI
Кнопка «Войти через Google» прячется, если провайдер не сконфигурирован в Supabase Dashboard → Authentication → Providers → Google. Эта проверка осталась с прошлой итерации. Если нужно включить — добавь Google OAuth client_id / secret в Supabase Dashboard.

## 6. Auto-rename легаси-ников происходит при первом логине
Если в БД есть профили с никнеймом `"Player"` или `"Игрок"` (плоский дефолт без суффикса), они переименовываются на КЛИЕНТЕ при первом вызове `getOrCreateProfile()`. Это происходит **один раз** за устройство. Если профиль авторизованного юзера переименовать не получилось (например, RLS блокирует) — увидишь в DevTools error и старое имя останется. **Серверной миграции не делал** (риск массового update таблицы) — на проде это лучше сделать одним SQL'ем при низкой нагрузке.

## 7. Что НЕ реализовано (и НЕ планировалось в этой сессии)
- Турниры
- Deeplink "Поделиться столом" в Telegram / WhatsApp
- Реальные платежи и Crypto
- Push-уведомления (когда соперник нашёлся / ход ждёт)
- Replay системы партий (move_data сейчас хранит только последний хоп, а не всю цепочку)
- Daily quests / achievements (DB-таблицы и RPC уже есть с прошлых итераций, UI снят по требованию заказчика)
