Решили: у экранного Build параметр, несущий ВИД, обязателен — дефолтов у него нет. Колбэки
остаются необязательными. Порядок параметров: данные, потом колбэки. Правило разлито по двенадцати
экранам, 22 параметра.
Почему: правило «вид целиком внутри Build» держалось на дисциплине, а тестом его не проверить — компилятор не знает, какой параметр влияет на картинку. Зато он умеет требовать аргумент. Убрав дефолт, мы переводим правило из разряда договорённостей в разряд невозможного: забыть данные вида больше нельзя, забыть колбэк — можно, и это не меняет кадр.
Отвергли гейт-тест на «каталог передаёт всё»: он разбирает вызовы текстом, а вызовы многострочные и с именованными аргументами — такой тест ломается от переноса строки, а не от ошибки. Отвергли и вариант «чиним только те экраны, что уже в каталоге»: правило с дырой посередине не правило.
Сказано: «это ужасно что вообще так произошло. От этого защиту же добавим?» (23.08.2026, сессия 14ae129e) — про исчезнувшую панель сообщества в главном меню.
Грабли: цену дыры видно по тому, что нашёл компилятор сразу после правки — семь мест, где стенд собирал экран наполовину. Экран исхода не получал ни одной строки сводки (пустая середина), список гильдий — эмблем и цветов, двор — состояния кнопки забега, инвентарь — флагов анимации карточек, событие — золота. Все семь выглядели «нормально»: экран собирался, кадр снимался, дыра молчала.
Побочный эффект перестановки: позиционные вызовы поехали в четырёх местах (два презентера, хаб профиля, награда в роутере). Лечится именованными аргументами — их и надо было использовать с самого начала там, где список длиннее пяти.
Владелец правды: экранные *View.cs в Assets/_Project/Scripts/UI; покрытие кадрами —
UiScreenCatalogGateTests.