# Keep generic type information for Kodein
-keepattributes Signature

# Retain Kotlin metadata used for reflection
-keep class kotlin.Metadata { *; }

# Preserve Kodein DI classes to avoid runtime type token issues
-keep class org.kodein.di.** { *; }

# ---------------------------------------------------------------------------------
# Gson – the SDK uses Gson reflection to parse network responses. The annotation
# and model classes must be preserved so that field names stay intact when R8
# obfuscates the byte-code.

# Keep Gson annotation classes and annotated model fields
-keepattributes *Annotation*
-keep class com.google.gson.annotations.SerializedName
# Keep Gson core internals referenced via reflection
-dontwarn com.google.gson.**

# Preserve all SDK model classes so that Gson can instantiate them via reflection
-keep class io.scribeup.scribeupsdk.data.models.** { *; }

# ---------------------------------------------------------------------------------
# Datadog – the SDK uses Datadog's public API, which already ships its own
# consumer rules, but silence any missing class warnings just in case.
-dontwarn com.datadog.**
