Решения по стеку приняты при старте проекта (май 2026). Запись извлечена из замороженного 10-reference/tech-stack: сам список пакетов живёт в Packages/manifest.json, а вот причины выбора не хранились больше нигде.

Решили:

ВзялиОтверглиПочему
NGOMirror, FishNetнужен host-authoritative кооп, и автор уже работал с NGO + Facepunch. FishNet мощнее (rollback, prediction), но это про соревновательный PvP — у нас игра «с друзьями», без античита
MPPMParrelSyncUnity 6 даёт Multiplayer Play Mode штатно; клон папки стал легаси-обходом
R3UniRxUniRx легаси, R3 — официальный преемник от Cysharp. Брать точечно, под реактивные биндинги UI
LitMotionDOTweenновее, zero-alloc, та же экосистема Cysharp
UI Toolkit + MVVMuGUI + MVP вездебиндинги UI Toolkit сделаны под MVVM, а конфиг-UI редактора AI требует дизайн-системы. uGUI-гибрид оставлен там, где он честно лучше — боевой world-space HUD (бары, цифры урона)

MVP против MVVM, чтобы разница не путалась: в MVP связь «вид ↔ данные» обновляется вручную через презентер — проще и привычнее в Unity, хорошо для uGUI и world-space. В MVVM вид подписан на наблюдаемые свойства и обновляется сам, но нужны биндинги (UI Toolkit или R3).

Почему именно так: выбор шёл не по «мощнее», а по совпадению с жанром и по тому, чем автор уже владеет. FishNet — ровно тот случай: объективно сильнее, и именно поэтому был бы ошибкой, потому что его сила окупается только в PvP, которого у нас нет.

Устарело, не переносить: та же таблица числила Easy Save 3 как выбранный бэкенд сейвов («подключим за ISaveService, когда понадобится шифрование или Cloud»). Это отменено 2026-07-26: сейв наш собственный (JsonFileSaveService), ES3 остаётся только референсом и тянет за собой com.unity.visualscripting, который нельзя удалять. Действующее положение — CLAUDE.md, раздел «Сохранения».

Владелец правды: состав пакетов — Packages/manifest.json и Assets/Plugins/; правила слоёв — CLAUDE.md; сейвы — CLAUDE.md §Сохранения.