-keep class iq.aau.babylai.android.babylaisdk.BabylAI { *; }
-keep class iq.aau.babylai.android.babylaisdk.BabylAITheme { *; }

# Kotlinx Serialization
-keep,includedescriptorclasses class iq.aau.babylai.android.babylaisdk.**$$serializer { *; }
-keepclassmembers class iq.aau.babylai.android.babylaisdk.** {
    kotlinx.serialization.KSerializer serializer(...);
}
-keepclassmembers class iq.aau.babylai.android.babylaisdk.** {
    * Companion;
}
-keep class kotlinx.serialization.** { *; }
-keepattributes *Annotation*,InnerClasses,EnclosingMethod

# ably
-keep class io.ably.** { *; }
-dontwarn io.ably.**
-keep class org.slf4j.impl.StaticLoggerBinder { *; }

-dontwarn java.lang.invoke.StringConcatFactory


-keep class kotlin.Metadata { *; }

# MessagePack - required by Ably
-keep class org.msgpack.** { *; }
-dontwarn org.msgpack.**
-keepclassmembers class org.msgpack.** { *; }

# Keep MessagePack core classes
-keep class org.msgpack.core.** { *; }
-keep class org.msgpack.value.** { *; }

-keep class io.ably.lib.** { *; }
-keep class org.msgpack.core.** { *; }

# WebSocket libraries used by Ably
-keep class org.java_websocket.** { *; }
-dontwarn org.java_websocket.**

# SLF4J logging
-keep class org.slf4j.** { *; }
-dontwarn org.slf4j.**
