# Keep rules for consumers (empty for now)

# Keep all public classes and their public members in the models and polling packages
-keep class in.androidplay.pollingengine.models.** { public *; }
-keep class in.androidplay.pollingengine.polling.** { public *; }

# Keep constructors for Kotlin data classes (for serialization/deserialization)
-keepclassmembers class in.androidplay.pollingengine.models.** {
    public <init>(...);
}
-keepclassmembers class in.androidplay.pollingengine.polling.** {
    public <init>(...);
}

# Keep sealed class hierarchies (for polymorphic serialization)
-keep class in.androidplay.pollingengine.models.** extends * { *; }
-keep class in.androidplay.pollingengine.polling.** extends * { *; }

# Keep Kotlin/Java metadata and annotations (for reflection/serialization)
-keepattributes *Annotation*, InnerClasses, EnclosingMethod, Signature, Exceptions, SourceFile, LineNumberTable, LocalVariableTable, LocalVariableTypeTable, RuntimeVisibleAnnotations, RuntimeInvisibleAnnotations, RuntimeVisibleParameterAnnotations, RuntimeInvisibleParameterAnnotations, RuntimeVisibleTypeAnnotations, RuntimeInvisibleTypeAnnotations
