Status: IN
`VectorClock` is immutable: `increment`, `merge`, and `prune` all return new instances and never modify `_clock` in place.
Source: entries/2026/05/29/vector-clocks-vector_clock.md
def increment(self, node_id):
new = dict(self._clock)
new[node_id] = new.get(node_id, 0) + 1
return VectorClock(new) # returns new, never mutates