The same EngineInput you'd pass to crunch.
Optionaldataset: DatasetOptional dataset override (defaults to the embedded one).
Optionalopts: { epsilon?: number }epsilon — lifts/residuals at or below this magnitude are
treated as zero (default 1e-6).
Decompose each pipeline stage of
crunch(input)into the marginal lift of every toggleable buff group, via leave-one-out recompute.Cost is
groups + 2crunchcalls (full + baseline + one per group); the engine is closed-form, so this is cheap to call per weapon line.