Решили: всё, что видно на кадре, экран делает СЕБЕ САМ внутри своего Build — включая растяжку
по слою. Обёртки снаружи (FillRoot) у экранов каталога больше нет; необязательные параметры,
меняющие вид, считаются дефектом разводки.
Почему: за один вечер один и тот же промах вылез трижды. Главное меню потеряло правую панель
целиком — каталог звал Build без CommunityConfig, а параметр необязательный. Профиль и создание
слота вышли на кадре обрезанными — растяжку им ставил роутер снаружи, а стенд её не повторял. Общее
у всех трёх: часть вида задаётся ВЫЗЫВАЮЩИМ, и второй вызывающий про неё не знает. Компилятор
молчит: у необязательного параметра есть значение, у забытой обёртки нет и обязанности.
Грабли: дыра невидима с обеих сторон шва. Игра выглядит правильно, потому что её вызов полный; стенд выглядит правдоподобно, потому что экран всё-таки собрался. Расхождение видно только на снимке — и до 23.08.2026 снимков экранов не существовало, поэтому дыра жила молча.
Гейт UiScreenCatalogGateTests этот класс НЕ ловит и ловить не может: меню в каталоге было. Он
отвечает на другой вопрос — «есть ли у экрана кадр вообще». От «кадр есть, но врёт» защищает только
правило выше: вид целиком внутри Build.
Владелец правды: SettingsScreenView.cs, LoadoutScreenView.cs, PauseScreenView.cs,
ProfileScreenView.cs, SlotCreateView.cs; гейт покрытия — UiScreenCatalogGateTests.