Решили: всё, что видно на кадре, экран делает СЕБЕ САМ внутри своего Build — включая растяжку по слою. Обёртки снаружи (FillRoot) у экранов каталога больше нет; необязательные параметры, меняющие вид, считаются дефектом разводки.

Почему: за один вечер один и тот же промах вылез трижды. Главное меню потеряло правую панель целиком — каталог звал Build без CommunityConfig, а параметр необязательный. Профиль и создание слота вышли на кадре обрезанными — растяжку им ставил роутер снаружи, а стенд её не повторял. Общее у всех трёх: часть вида задаётся ВЫЗЫВАЮЩИМ, и второй вызывающий про неё не знает. Компилятор молчит: у необязательного параметра есть значение, у забытой обёртки нет и обязанности.

Грабли: дыра невидима с обеих сторон шва. Игра выглядит правильно, потому что её вызов полный; стенд выглядит правдоподобно, потому что экран всё-таки собрался. Расхождение видно только на снимке — и до 23.08.2026 снимков экранов не существовало, поэтому дыра жила молча.

Гейт UiScreenCatalogGateTests этот класс НЕ ловит и ловить не может: меню в каталоге было. Он отвечает на другой вопрос — «есть ли у экрана кадр вообще». От «кадр есть, но врёт» защищает только правило выше: вид целиком внутри Build.

Владелец правды: SettingsScreenView.cs, LoadoutScreenView.cs, PauseScreenView.cs, ProfileScreenView.cs, SlotCreateView.cs; гейт покрытия — UiScreenCatalogGateTests.