pub fn infer_harness_participants(
target: &str,
unit_consumes: &HashMap<String, Vec<String>>,
kinds: &BTreeMap<String, UnitKind>,
event_subscribers: &BTreeMap<(String, String), Vec<(String, String)>>,
) -> Vec<String>Expand description
#1959: the contexts a system-tier suite’s harness stands up as Workers:
infer_participants’ set, plus every context subscribing to an event
one of them declares, plus its consumes closure, transitively. A
subscriber consumes its publisher, and consumes cycles are refused, so
no subscriber of the target is ever in the target’s own closure; without
it here, the fan-out would deliver to nobody. Only the harness widens: a
case still reaches just infer_participants’ set. Target first, then
breadth order.