///|
/// Pure extension point. Names must be stable and unique within a run.
/// Proposals are untrusted edits: the engine still enforces selection, protected
/// files, existing paths, strict score improvement and predicate validation.
pub(open) trait ReductionPass {
fn name(Self) -> String
fn propose(Self, @manifest.Snapshot, Array[String]) -> Iter[
@manifest.Snapshot,
]
}