# Keep the published MVI API reachable when a downstream Android app shrinks
# against this library.
#
# These rules are published with the AAR so consumer-side R8 does not strip the
# runtime API surface that app code calls directly.
-keep public class com.ameno.base.mvi.** {
    public protected *;
}

# Preserve generated top-level function holder classes for public extensions.
-keep class com.ameno.base.mvi.**Kt {
    public protected *;
}

# Repackage obfuscated non-public classes into a library-owned namespace so the
# published AAR does not collide with other minified AARs that also emit names
# like a.a or b.a.
-repackageclasses com.ameno.base.mvi.internal

# Keep Kotlin/Java metadata used by downstream compilation and interop.
-keepattributes Signature,RuntimeVisibleAnnotations,RuntimeInvisibleAnnotations,AnnotationDefault,InnerClasses,EnclosingMethod

-keepdirectories META-INF/services/**