LogOp
How one operation is classified, independent of the concrete op-log CRDT.
Both RgaOp and FugueOp map onto these three shapes: an Insert mints a new id (and thus one causal Dot); a Remove tombstones an existing id and mints no dot (it reuses its target insert's id); a Compact records the ids it garbage- collected so the delivered frontier survives the trim.
This is what OpLogCrdt.classify returns, and the distinction a write-only archive turns on: content ops (Insert, Remove) are what an archive keeps, and Compact — a record of forgetting, not of content — is what it discards, so an archive can outlive the forgetting of the replica that fed it.
The per-variant dot rules above are the ones Quilted.causalDots points at rather than restating; its KDoc had them inverted for Remove and Compact for months (#2176) because it carried its own copy. Change the rule here and that reference follows.