DecisionIndexSource typedef
DecisionIndexSource =
Future<DecisionGatherEvidence> Function(String workspaceDir, List<String> rosterQualifiedSurfaces, Bead workBead)
The pluggable DECISION-INDEX seam — the composing station's roster-mode
decisions index --surface <repo>/<path> verb, run ONCE per round over
every roster-qualified surface. Absent ⇒ every surface is recorded
EvidenceState.unavailable.
It answers with the WHOLE gather (DecisionGatherEvidence): every resolved entry body once, plus one reference-carrying lookup per surface.
The WORK BEAD rides along because a bounded lookup must know what the bead
CITES before it decides what to drop: _decisionLookup keeps every named
entry ahead of the index-order fill.
Implementation
typedef DecisionIndexSource =
Future<DecisionGatherEvidence> Function(
String workspaceDir,
List<String> rosterQualifiedSurfaces,
Bead workBead,
);