apply
Apply an op received from a remote replica, advancing the Lamport clock.
This is the receive path for op-based propagation: each received op is absorbed exactly once. Duplicate delivery is safe — set-union is idempotent.
Applying a RgaOp.Compact strips the referenced RgaOp.Insert and RgaOp.Remove ops from the log. The RgaOp.Compact op itself is retained so that a later piece with a peer that hasn't compacted yet re-applies GC.
An RgaOp.Insert or RgaOp.Remove whose id is already compacted is not re-added — a late raw apply of a purged op must not resurrect it. This makes apply agree with piece (and tombstones): once compacted, always compacted (ADR-003 addendum v3, #262).