Lifecycle-safe patterns из WBML
✅ Evidence-backed recipes WorldBox 0.51.2 baseline
Worldgen
Заголовок раздела «Worldgen»Persistent runner → finishMakingWorld → live collections → short stability window → heavy validation один раз. Не ждать replacement ref.
Использовать несколько independent signals: lifecycle signal, исчезновение marker, live collections, stable polls. Не требовать exact Height equality.
References
Заголовок раздела «References»Reuse возможен, но не гарантирован. После lifecycle boundary сверяйте объект с текущим manager/collection; stable ID + re-query безопаснее слепого хранения wrapper.
Map scan
Заголовок раздела «Map scan»Большие scans делить на chunks/yields. В wait loop — только cheap polling.
SaveManager
Заголовок раздела «SaveManager»Не угадывать paths/slots/args. Сначала исследовать signature. Destructive tests — только disposable world.
Unity liveness
Заголовок раздела «Unity liveness»Обычного CLR null недостаточно; fake-null и deferred destroy важны.
Mod conflicts
Заголовок раздела «Mod conflicts»Не сравнивать только assembly count. Смотреть конкретные assemblies, core type uniqueness, Harmony owners и live state.