Apply a single ClipMutation (a comment/marker or region edit on one
clip) to a clip array, returning a NEW array. Pure and side-effect free — the
one reducer used for BOTH local edits and remote replays, so the two paths
can never diverge.
Targets the clip whose id === mutation.clipId; all others pass through.
marker-update on an unknown marker id is a no-op (returns the clip
unchanged), mirroring the media player's edit semantics.
region-set upserts (updates a matching region id, else appends).
Apply a single ClipMutation (a comment/marker or region edit on one clip) to a clip array, returning a NEW array. Pure and side-effect free — the one reducer used for BOTH local edits and remote replays, so the two paths can never diverge.
id === mutation.clipId; all others pass through.marker-updateon an unknown marker id is a no-op (returns the clip unchanged), mirroring the media player's edit semantics.region-setupserts (updates a matching region id, else appends).