-keepclassmembers class * extends de.thetadev.formconductor.validation.rules.ValidationRule {
    <methods>;
    public static <fields>;
 }

# Keep classes and properties annotated with @Form
-if @de.thetadev.formconductor.annotations.Form class **
-keepclassmembers,allowobfuscation,allowoptimization class <1> {
    <init>(...);
    <fields>;
}

# keep all the classes referenced in the @Form class
-if @de.thetadev.formconductor.annotations.Form class ** {
    ** *;
}
-keep,allowoptimization,allowshrinking class <1> {
    <init>(...);
    <fields>;
}
-keep @de.thetadev.formconductor.annotations.Form class * { *; }
-keep class de.thetadev.formconductor.** { *; }

# Keep kotlin.Metadata annotations to maintain metadata on kept items
-keepattributes *Annotation*,Signature,InnerClasses
-keep class kotlin.Metadata { *; }
