Compare two clash runs and partition their clashes by lifecycle state.
Pure and deterministic: the output depends only on the two inputs, never on
the clock or any randomness. The persistent bucket returns the next run's
Clash (the current geometry/point/distance for a still-open issue), so a
caller can render the up-to-date state. Each array is sorted by id.
Compare two clash runs and partition their clashes by lifecycle state.
Pure and deterministic: the output depends only on the two inputs, never on the clock or any randomness. The
persistentbucket returns thenextrun's Clash (the current geometry/point/distance for a still-open issue), so a caller can render the up-to-date state. Each array is sorted by id.