# ============================================================================
# CodeLytical Liveness SDK — consumer rules (applied to the host app's R8)
# ============================================================================

# The native engine binds JNI methods by fully-qualified class + method name.
# These names MUST survive obfuscation/shrinking or libengine.so will crash.
-keep class com.mv.engine.** { *; }
-keepclasseswithmembernames class com.mv.engine.** {
    native <methods>;
}
# FaceBox / ModelConfig are constructed/inspected from native code.
-keep class com.mv.engine.FaceBox { *; }
-keep class com.mv.engine.ModelConfig { *; }

# Public SDK surface that host apps reference.
-keep class com.codelyticalhub.liveness.LivenessSdk { *; }
-keep class com.codelyticalhub.liveness.LivenessResult { *; }
-keep class com.codelyticalhub.liveness.LivenessResult$* { *; }
-keep class com.codelyticalhub.liveness.LivenessConfig { *; }

# Keep @Keep-annotated members.
-keep @androidx.annotation.Keep class * { *; }
-keepclassmembers class * {
    @androidx.annotation.Keep *;
}
