Rebuild a live Processor chain from its persisted ProcessorSnapshotJson
form, then normalizeChain it for the strip kind — so a loaded chain always
satisfies the always-present-EQ invariant (and the structural fader for input strips)
even if the file was hand-edited. There is no synthesise-from-legacy path: a file
predating chain-on-strip simply has no processors, and loads to the kind's normalized
default (old sessions are allowed to break — greenfield, clean cut).
Rebuild a live Processor chain from its persisted ProcessorSnapshotJson form, then normalizeChain it for the strip
kind— so a loaded chain always satisfies the always-present-EQ invariant (and the structural fader for input strips) even if the file was hand-edited. There is no synthesise-from-legacy path: a file predating chain-on-strip simply has noprocessors, and loads to the kind's normalized default (old sessions are allowed to break — greenfield, clean cut).