Решили: у игры пять уровней жизни, и каждый получает свой DI-скоуп: Мир → Сессия → Занятие → Узел → Бой. Бой не дочерний Забегу: его заказывают четверо — узел карты, Ристалище, PvP-матч и тест. Роль в коопе перестаёт быть уровнем: она свойство Сессии (Owner / Guest) и выбирает инсталлер боя, а не проверяется каждый кадр. PvP — отдельный вид Занятия, не вариация Забега. План целиком — Planning - Scope Hierarchy.

Сказано: «Бой (отдельно от всего может быть, и вне сессии и вне забега. Тесты, например) Сессия (соло или кооп. Это от “я зашел в свой сейв в компании (хаб) и пригласил друзей” до “я вышел в главное меню из режима компании”, тут же живет наша мета и тп, тут и живет роль в мультиплерее.) Забег (часть сессии. Это вот наша карта, наша прогрессия в забеге, тут наш кор геймплей.)» — и раньше в том же разговоре: «То, что у нас в боевом скоупе уже кучу всякого - это уже ошибка. Думаю, надо просто его корректно разделить.» На принятие плана: «Запиши все, чтобы потом не забыли, сразу сделаем “как надо”, все что работает не так - выдергиваем с корнем, никакого легаси!» (02.08.2026, сессия 9c8550b1). Уровни назвал он; разбор границ, отвергнутые кандидаты и место PvP — совместные.

Почему: у боевого скоупа нет границы боя — он поднимается на буте и живёт всю сессию. Поэтому границу объявляют вручную (ResetBattle, ReseedForBattle, три SetPaused, Reset() у ленты), и каждый новый участник обязан на неё подписаться. Кто не подписался — ломается молча; так сломался повторный бой у гостя, и так же сломается любой следующий.

Критерий, по которому уровень заводится, записан отдельно, потому что без него разговор сводится к вкусу: граница + состояние, умирающее на ней, + свои участники + своя композиция. Последний признак и есть суть ошибки предыдущего дня: роль в коопе меняет состав объектов, а не их поведение, и ветвление по ней в Tick было лечением симптома.

Отвергнуто: Профиль, Гильдия и Акт как уровни (нет своих участников либо совпадают с соседним уровнем); «скоуп на игрока» — прямо опасен, потому что хост меняет распределение Сосудов посреди забега; PvP как вариация Забега — втащил бы карту, реликвии и экономику узлов, чтобы половину выключить.

Грабли: сутки назад я приняла «боевой скоуп персистентный» за данность и обошла её флагом роли, вместо того чтобы спросить, обязана ли она быть данностью. Поймал Макс — вопросом «просто поднимать боевой скоуп на стадии хаба?». Его первое предложение было верным, а мой ответ «нельзя» относился к текущей форме скоупа, а не к идее. Правильный ответ звучал бы «нельзя, потому что скоуп неправильный — давай починим».

Второе, мельче и полезнее: формулировка чужого ограничения («роль нельзя решить регистрацией, потому что скоуп поднимается на буте») — это сигнал развилки, а не обоснование. Я записала её в журнал собственной рукой и проехала мимо.

Владелец правды: план — целевая иерархия, список легаси и фазы; после реализации правду забирают сами скоупы и тесты фаз (§7 плана).