QuorumTrack

@Serializable
data class QuorumTrack(val ciphertext: ByteArray, val strippedBy: GSet<PlayerId>)

One quorum member's private-copy reveal chain on a partial multi-member quorum card (CardState.isPartialQuorum).

The track for member r starts from the card's quorum-revealed ciphertext (all non-members stripped — the card still carries every member's layer) and accumulates strips by the other quorum members, in the canonical order defined by DealSession. When strippedBy reaches visibilityQuorum - r, ciphertext carries only r's own layer — exactly as protected as a single-reader card's revealed state — and r strips it locally in DealSession.decrypt. r's own layer never comes off publicly.

Constructors

Link copied to clipboard
constructor(ciphertext: ByteArray, strippedBy: GSet<PlayerId>)

Properties

Link copied to clipboard
Link copied to clipboard

Functions

Link copied to clipboard
open operator override fun equals(other: Any?): Boolean
Link copied to clipboard
open override fun hashCode(): Int
Link copied to clipboard

Join two states of the same track: strippedBy is a GSet union, and the ciphertext of the side further along the strip chain wins (each honest strip removes exactly one layer, so |strippedBy| totally orders one track's honest chain). Ties (a protocol-violating fork) break deterministically by ciphertext byte order — mirroring CardState.merge.