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,
    );