Judge a chain's accumulated latency against its destination's budget.
The order of the tests is the order of certainty:
the resolved MINIMUM is already over budget → fail. Nothing about the unknowns can
rescue it: latency only adds.
the resolved maximum is over but the minimum is not → unknown
(may-exceed-budget). This is the parameter-dependent case: a look-ahead control the
operator has moved, whose exact live value the catalog's endpoint sweep does not carry.
Both ends are stated so the operator can decide, and it is NOT refused — refusing on an
ambiguity would ban every look-ahead plugin from every wedge.
something could not be resolved at all → unknown (unknown-at-rate), naming what.
Judge a chain's accumulated latency against its destination's budget.
The order of the tests is the order of certainty:
fail. Nothing about the unknowns can rescue it: latency only adds.unknown(may-exceed-budget). This is the parameter-dependent case: a look-ahead control the operator has moved, whose exact live value the catalog's endpoint sweep does not carry. Both ends are stated so the operator can decide, and it is NOT refused — refusing on an ambiguity would ban every look-ahead plugin from every wedge.unknown(unknown-at-rate), naming what.pass, carrying the headroom.