ChannelIndex
Type-safe wrapper for channel indices.
Valid range: 0..7 (the firmware exposes eight primary channel slots — channel 0 is the primary/admin channel; 1..7 are secondary). Constructing with any other value throws IllegalArgumentException from the value-class init block.
Validation note: value-class init blocks only run from Kotlin call sites. JVM bytecode that constructs ChannelIndex via reflection (or skips the boxing accessor) can bypass the range check; this is a known limitation of Kotlin value classes and acceptable here because the SDK never trusts caller-supplied indices for safety-critical decisions.
Java interop: see NodeId — boxed accessors are exposed via -Xjvm-expose-boxed, so Java callers use getRaw() and unmangled getters.
Since
0.1.0