From PR #57 review: cross-plugin Android registry-key collisions (now correctly detected across composable/view_module/ios-fallback for factory opt-ins) are only reported by 'mix mob.plugins', which prints ✗ errors but exits 0; the native build never runs cross_validate at all. Duplicate keys among opted-in generated factories therefore last-write-win silently at runtime. Pre-existing surface (0.6.30 identical), not a #57 regression. Asks: (1) mob.plugins exits non-zero on conflicts; (2) android_ui_source! (or the native-build preflight) runs cross_validate so collisions abort before Gradle; (3) consider moving the Kotlin-identifier regex from mob.validate_plugin into the same preflight so binary-but-invalid factory names ('', '1Bad') fail with the manifest location instead of at Kotlin compile.
From PR #57 review: cross-plugin Android registry-key collisions (now correctly detected across composable/view_module/ios-fallback for factory opt-ins) are only reported by 'mix mob.plugins', which prints ✗ errors but exits 0; the native build never runs cross_validate at all. Duplicate keys among opted-in generated factories therefore last-write-win silently at runtime. Pre-existing surface (0.6.30 identical), not a #57 regression. Asks: (1) mob.plugins exits non-zero on conflicts; (2) android_ui_source! (or the native-build preflight) runs cross_validate so collisions abort before Gradle; (3) consider moving the Kotlin-identifier regex from mob.validate_plugin into the same preflight so binary-but-invalid factory names ('', '1Bad') fail with the manifest location instead of at Kotlin compile.