Function intersectCapabilities

  • Compute the weakest (intersected) capability set across one or more participating sources / descriptors. This is the canonical helper for cross-protocol capability negotiation in a mixed-source composition (#22): a composition supports a capability only when every participating source supports it.

    Promising a capability the weakest source lacks is the worst possible mixed-source failure mode (silent wrong result), so consumers should always intersect before fanning a query out to a heterogeneous set.

    Accepts anything with a capabilities field (live Source instances or plain SourceDescriptors). Empty input returns an empty set.

    For per-operation reasoning across a heterogeneous mix, partition sources first (e.g., feature sources only) and intersect on the partition; intersecting a render-only source with a feature source yields the empty set, which is honest but rarely actionable on its own.

    Parameters

    • participants: readonly {
          capabilities: Capabilities;
      }[]

    Returns Capabilities