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.