Решили: образец в фабрике контактного листа собирается С СОДЕРЖИМЫМ — тем же, что кладёт в элемент экран. Пустой контейнер с чужим классом образцом не считается. Карточка арканы клонируется из своего UXML, а не пересобирается по памяти.

Почему: восемь записей фабрики были Box() — голым VisualElement. На листе они выглядели полосками в несколько пикселей, и читались как поломка ЭЛЕМЕНТА, хотя сломана была фабрика. Отвергнутая альтернатива — «оставить скелеты, зато образец нейтрален»: лист существует ради приёмки одним взглядом, а взгляд на скелет даёт ложный вывод быстрее, чем верный.

Строка дропа вскрыла второй слой той же болезни: фабрика строила её контейнером, а в игре это Label с ролью «подпись». То есть врал не размер, врал ТИП.

Карточка арканы — единственный элемент, чья структура целиком живёт в разметке (кайма-в-кайме, плашка, номер в углу арта). Пересобрать её здесь значило бы завести второго владельца ЛЕЙАУТА поверх уже признанного второго владельца сборки; клон из UXML этот слой убирает.

Сказано: «У тебя поехали размеры в Карточках релика (см скрины сама), в строке запаса (точнее, что это вообще за мелкая фигня?, не понятно что за “сосуд во дворе” в принципе и где это юзается. Слайдер и выбор - вообще не выглядят так, кем они являются» (06.08.2026, сессия e32de921).

Грабли: значение и варианты — тоже содержимое. Слайдер без значения показывает ручку в нуле, где она сливается с краем трека; список без вариантов — пустое поле, по которому не понять, что это список. Оба выглядели дефектом контрола, а были дефектом образца.

VisualTreeAsset.Instantiate отдаёт обёртку-контейнер, а не корень шаблона. Навесить состояние на обёртку значит навесить его в пустоту — карточку приходится вынимать.

Владелец правды: UiSampleFactory.cs (таблица образцов и адреса сборки), кадры docs/lab/assets/ui-states/.