| Capability declaration | Name, description, inputs, outputs, side-effect type, scope, cost | Capabilities |
| Side-effect typing | read, write, transactional, irreversible | Capabilities |
| Delegation | Scoped JWT authority chains with budget and purpose constraints | Delegation |
| Permission discovery | Pre-invoke check: available / restricted / denied | Permissions |
| Structured failures | Type, detail, resolution action, grantable_by, retry | Failures |
| Cost signaling | Declared range before invoke, actual cost after | Cost |
| Capability graph | Prerequisites and compensation path declarations | Capabilities |
| Task identity | task_id groups related invocations under a single task/workflow | Delegation |
| Invocation lineage | parent_invocation_id forms invocation trees for causal tracing | Delegation |
| Token purpose binding | purpose.task_id is authoritative; request must match | Delegation |
| Budget constraints | Enforceable token.constraints.budget with currency and max amount | Delegation |
| Budget narrowing | Child delegation budget must be ≤ parent budget | Delegation |
| Requires binding | requires_binding on capabilities for execution-time binding (quote, offer, price lock) | Capabilities |
| Control requirements | Vocabulary: cost_ceiling, stronger_delegation_required | Failures |
| Budget context | budget_context in invoke responses (success and failure) | Failures |
FinancialCost type | Structured type replacing untyped cost dictionaries | Cost |
reason_type on permissions | Machine-readable restriction/denial category on restricted and denied entries | Permissions |
resolution_hint on permissions | Actionable suggestion string on restricted entries | Permissions |
non_delegable_action failure | Capability declares it requires direct (root) principal invocation | Failures |
Canonical request_broader_scope | Replaces deprecated request_scope_grant resolution action | Failures |
recovery_class on resolution | Coarse recovery strategy on every resolution object: 6-value vocabulary (retry_now, wait_then_retry, refresh_then_retry, redelegation_then_retry, revalidate_then_retry, terminal) | Failures |
5 new canonical resolution.action values | retry_now, provide_credentials, wait_and_retry, revalidate_state, check_manifest — completes the canonical action vocabulary | Reference |
refresh_via composition hint | Advisory array of capability names to re-invoke when a stale artifact causes failure (e.g., binding_stale) | Capabilities |
verify_via composition hint | Advisory array of capability names to invoke to verify side effects after executing an irreversible action | Capabilities |
| Cross-service continuity | upstream_service on invoke request/response/audit — identifies the calling ANIP service in cross-service workflows; services MUST echo and record it, MUST NOT reject foreign parent_invocation_id or task_id values | Lineage |
| Cross-service handoff hints | cross_service on capability declarations with four advisory arrays (handoff_to, refresh_via, verify_via, followup_via), each containing ServiceCapabilityRef objects (service + capability strings) for cross-service workflow guidance | Capabilities |