# Keep the published MVI API reachable when shrinking the library itself.
#
# A library has no application entry points, so R8 would otherwise treat the
# entire API surface as unused and strip it from the published AAR.
-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/**