// :wire-protocol — the FROZEN shared contract (Android analogue of src/types.ts +
// WireProtocol). Pure Kotlin/JVM: sealed ClientMessage/ServerMessage, MessageCodec,
// Validation, WireConstants, HostEndpoint, and the transport boundary interfaces.
// Depends on nothing else in the build (top of the dependency graph).

plugins {
    alias(libs.plugins.kotlin.jvm)
    alias(libs.plugins.kotlin.serialization)
    alias(libs.plugins.kover)
}

kotlin {
    jvmToolchain(17)
}

dependencies {
    api(libs.kotlinx.serialization.json)
    api(libs.kotlinx.coroutines.core)

    testImplementation(libs.bundles.unit.test)
    testRuntimeOnly(libs.junit.platform.launcher)
}

tasks.test {
    useJUnitPlatform()
}

// A36 acceptance gate: >=80% line coverage on this pure module (plan §7).
kover {
    reports {
        verify {
            rule {
                minBound(80)
            }
        }
    }
}
