Standards watch list
Every specification PermDock follows, its maturity, why it matters for a permissions library, what PermDock does about it, and its draft posture.
Status: tracking
This page is the inventory behind the standards section. Each standards page covers one specification PermDock implements or that shapes a public API; this list also covers the ones it only follows. It is the one place to check whether a draft that changed last month affects an adapter.
How the list is maintained
- Each row's maturity is checked at every release against the publishing body's index (the OpenID Foundation specifications index, the IETF datatracker, the OpenAPI Initiative, the MCP and A2A sites) and updated in the release pull request. Dates and maturity are copied from the body, never inferred.
- A row stays when its specification gets a standards page; the page becomes its link.
- A row with a concrete action keeps a pointer to the page that documents it.
Action vocabulary: implements (an adapter or core feature exists or is planned), consumes (PermDock reads what the spec produces, without a dedicated adapter), checklist (the spec constrains how an adapter is written), tracking (followed, no code planned).
Posture vocabulary for unfinished texts: build (PermDock implements the draft's current shape, pinned to a named revision written on the standards page and, for documents, into the output), name (PermDock reserves the identifiers the specification will need, so adopting it later renames nothing, and emits or consumes nothing from the draft), track (followed, no identifier depends on it), stable (the text is Final, an RFC or Released). A row is built only when the capability is needed now, the draft is concrete enough for fixtures, and a stable twin can carry the same information for consumers that ignore the draft.
Maturity terms
| Term | Body | Meaning for PermDock |
|---|---|---|
| Final | OpenID Foundation | Stable; implement and, where a programme exists, certify |
| Implementer's draft | OpenID Foundation | Stable enough to build against with small changes expected; implemented only when the feature is needed now |
| RFC | IETF | Stable; referenced by number |
| RFC Editor queue | IETF | Approved; content final, number not yet assigned |
| WG draft | IETF | Adopted by a working group; designed against, but no wire format is fixed on it |
| Individual draft | IETF | Not adopted; tracking only |
| Released | OpenAPI Initiative, MCP, A2A | A versioned specification is published |
| In development | OpenAPI Initiative | On a development branch; emitted only behind an experimental target with a build posture |
| Draft Community Group Report | W3C | Incubation that may change without notice; built only with a pinned date |
| Development | OpenTelemetry | Semantic conventions whose names may change; copied names are pinned |
The list
| Spec | Body | Date and maturity | Relevance | PermDock action | Posture |
|---|---|---|---|---|---|
| Authorization API 1.0 (AuthZEN) | OpenID Foundation | Final, Jan 2026; certification levels Basic, Batch, Search, Discovery | Wire format between PEPs and PDPs | Implements: the decision endpoint, permdock/authzen, permdock/pdp | stable |
| Shared Signals Framework 1.0, CAEP 1.0, RISC 1.0 | OpenID Foundation | Final, Sep 2025 | Session revocation and credential-change events | Implements: permdock/ssf receiver invalidating snapshots | stable |
| CAEP Interoperability Profile 1.0 | OpenID Foundation (Shared Signals WG) | Implementer's draft, Jul 2026 | Which CAEP events and delivery a receiver must support | Checklist for the ssf adapter | name |
| OpenID Connect Core 1.0, Discovery 1.0 | OpenID Foundation | Final (Core errata set 2, Dec 2023; ISO/IEC 26131:2024) | ID token claims, subject identifier types, the Discovery document | Implements: discovery and accept in permdock/jwt; principal.issuer, principal.assurance, subject.session | stable |
| OpenID Connect Back-Channel Logout 1.0 | OpenID Foundation | Final | logout_token sent when the OP session ends | Implements: a revocation input to permdock/ssf next to CAEP session-revoked | stable |
| RFC 9470 OAuth 2.0 Step Up Authentication Challenge | IETF OAuth WG | RFC, Sep 2023 | insufficient_user_authentication with acr_values and max_age | Implements: the HTTP rendering of an insufficient-user-authentication denial (OpenID Connect) | stable |
| OpenID Federation 1.0 | OpenID Foundation | Final, Feb 2026 | Trust between parties without pairwise configuration | Tracking: trust between permdock/pdp and a remote PDP | track |
OpenID Connect Enterprise Extensions (session_expiry) | OpenID Foundation | Draft, Sep 2025 | When the IdP session ends | Consumes: session_expiry as an upper bound on snapshot staleness | name |
| OpenID Provider Commands | OpenID Foundation | Draft, Sep 2025 | IdP-initiated lifecycle commands (deprovision, revoke) | Tracking: overlaps CAEP for invalidation | track |
| IPSIE Common Requirements 1.0 | OpenID Foundation (IPSIE WG) | Draft 00, Aug 2025 | Session Lifecycle SL1-SL3, Account Lifecycle AL1-AL3 | Checklist for provider adapters | name |
| IPSIE SL1 OpenID Connect Profile | OpenID Foundation (IPSIE WG) | Draft 00, Apr 2025 | iss in responses, PKCE, RFC 8414, acr / amr / auth_time / session_expiry, DPoP SHOULD | Checklist: which claims provider adapters expose | name |
| IPSIE AL1 SCIM 2.0 Profile | OpenID Foundation (IPSIE WG) | Draft | RFC 7523 JWT bearer authentication and attribute requirements for SCIM | Checklist for permdock/scim: verifier accepts the RFC 7523 bearer; attributes compared once the profile reaches implementer's draft | name |
| OpenID4VP 1.0, OpenID4VCI 1.0 | OpenID Foundation | Final, Jul 2025 and Sep 2025 | Verifiable credential presentation and issuance | Tracking: verified attributes as principal inputs | stable |
OpenID Connect for Identity Assurance 1.0 (verified_claims) | OpenID Foundation | Final with errata, Jul 2026 | Claims carrying assurance level and evidence | Implements: verified_claims mapped into principal.assurance.verified by permdock/jwt (OpenID Connect) | stable |
| OpenID Connect Ephemeral Subject Identifier | OpenID Foundation | Draft, Jul 2026 | Per-transaction subject identifiers | Checklist: audit events must not assume a stable principal.id | name |
| OpenID Connect Key Binding | OpenID Foundation | Draft, Aug 2026 | Binding ID tokens to client keys | Tracking: permdock/jwt sender once stable | track |
| Grant Management for OAuth 2.0 | OpenID Foundation (FAPI WG) | Implementer's draft | Grants as manageable consent objects | Tracking: grant_id in audit, revoked grants as invalidation | track |
| FAPI 2.0 Security Profile | OpenID Foundation (FAPI WG) | Final | Resource-server and cryptography requirements | Implements: permdock/jwt profile: 'fapi2'; x-permdock-securityProfile | stable |
| RFC 9700 OAuth 2.0 Security Best Current Practice | IETF OAuth WG | RFC, Jan 2025 | Baseline security for resource servers | Checklist for permdock/jwt defaults and the threat model | stable |
| RFC 7515-7519 (JWS, JWE, JWK, JWA, JWT), RFC 8037 | IETF JOSE WG | RFCs, May 2015 and Jan 2017 | Token, signature, key and algorithm formats | Implements: verification through TokenVerifier; JWS-signed snapshots, approval tokens and decision exports through TokenSigner | stable |
| RFC 8725 JWT BCP and rfc8725bis | IETF OAuth WG | RFC; bis in the RFC Editor queue, Aug 2026 | Algorithm allow-lists, typ, kid, key confusion | Checklist for permdock/jwt (JOSE) | name |
| RFC 9864 Fully-Specified Algorithms | IETF JOSE WG | RFC, 2025 | Ed25519 and Ed448 as JWS alg; polymorphic EdDSA deprecated | Implements: Ed25519 in the allow-lists; permdock doctor warns on EdDSA | stable |
| draft-ietf-jose-deprecate-none-rsa15 | IETF JOSE WG | WG draft, 2026 | Deprecates none and RSA1_5 | Checklist: permdock/jwt already refuses both | name |
RFC 9068 roles, groups, entitlements claims | IETF OAuth WG | RFC, Oct 2021; claims registered at IANA | Role and group material on access tokens, SCIM encoding | Implements: the default claim mapping into principal.roles and team memberships | stable |
| RFC 7643 / 7644 SCIM 2.0, RFC 9865 cursor pagination | IETF SCIM WG | RFCs, Sep 2015; RFC 9865, 2025 | User and Group provisioning | Implements: permdock/scim writing a DirectoryStore, directoryMembershipSource, the PermDock roles extension | stable |
| OAuth AuthZEN Claims (draft-gazitt-oauth-authzen-claims) | IETF (individual draft) | Draft 00, 2026 | An authorization server obtaining roles / groups / entitlements from a PDP's Resource Search | Tracking: permdock/authzen /search/resource as a claim source | track |
| RFC 9396 Rich Authorization Requests | IETF OAuth WG | RFC | Structured authorization_details | Implements: delegation.authorizationDetails, one type per permission | stable |
| OAuth 2.0 RAR Metadata and Error Remediation | IETF OAuth WG | Draft, Aug 2026 | RAR type metadata and structured remediation | Implements: Decision.alternatives in the remediation shape (delegation) | build (pinned: draft-ietf-oauth-rar-metadata-remediation, Aug 2026 revision) |
| OAuth Identity and Authorization Chaining Across Domains | IETF OAuth WG | RFC Editor queue, Jul 2026 | Identity and authorization across trust domains | Implements: delegation.chain verification | name |
| Agent Delegation Chain (draft-asor-wimse-agent-delegation-chain); Credential Delegation Protocol (draft-sweeney-wimse-credential-delegation); OAuth for AI agents on behalf of a user (draft-oauth-ai-agents-on-behalf-of-user) | IETF (individual drafts) | Drafts, 2026 | Monotonic attenuation across multi-hop agent chains as RAR; composing RFC 8693, DPoP, RAR and CIBA; requested_actor and actor_token | Tracking: inputs to delegation.chain and the actor mapping (OAuth for agents) | track |
| Transaction Tokens | IETF OAuth WG | WG draft rev 11, Jul 2026 | Identity and authorization context through a call chain in one domain | Consumes: snapshot id and decision id in azd, subject re-derived from sub_id and azd (delegation) | name |
| Transaction Tokens for Agents; Cross-domain Transaction Tokens; Transaction Tokens BCP | IETF (individual drafts) | Drafts, May to Jul 2026 | Agent and cross-domain extensions | Tracking with the transaction-token row | track |
| WIMSE architecture | IETF WIMSE WG | WG draft 08, Jul 2026 | Workload identity and context propagation | Checklist: workloads as service principals (subject) | name |
| GNAP (RFC 9635) | IETF | RFC, Oct 2024 | Successor negotiation protocol; access rights array | Consumes: delegation.access next to authorizationDetails; no client (see GNAP below) | stable (RFC); OpenAPI scheme: name |
| RFC 9767 GNAP Resource Server Connections | IETF | RFC, 2025 | Token model with a JWT mapping, introspection with an access array, RS discovery | Implements: the access claim and subjectFromIntrospection in permdock/jwt | stable |
| OAuth 2.1 | IETF OAuth WG | Draft | OAuth 2.0 consolidated, PKCE required, no implicit or password grants | Checklist: MCP servers are OAuth 2.1 resource servers; permdock/jwt defaults follow it | name |
| RFC 9449 DPoP, RFC 8705 mTLS | IETF OAuth WG | RFCs | Sender-constrained tokens | Implements: permdock/jwt sender: 'dpop' or 'mtls' | stable |
| RFC 9728 Protected Resource Metadata | IETF OAuth WG | RFC | Discovery document a resource server publishes | Consumes: required by MCP authorization | stable |
| RateLimit header fields | IETF | WG draft, -11, May 2026 | Tells a client how long to back off after an exhausted limit grant | Implements: 429 with Retry-After, RateLimit and RateLimit-Policy in HTTP adapters | build (draft-ietf-httpapi-ratelimit-headers-11) |
| Web Bot Auth (RFC 9421, Signature-Agent) | IETF | Drafts | Verified identity for automated HTTP clients | Implements: the verified signer becomes actor in HTTP adapters | build (draft-meunier-webbotauth-httpsig-protocol-02) |
| OpenAPI 3.2 | OpenAPI Initiative | Released Sep 2025 | Device flow, oauth2MetadataUrl, deprecated schemes, URI-referenced schemes | Implements: the default permdock openapi target | stable |
| OpenAPI 3.3 | OpenAPI Initiative | In development (v3.3-dev is still the 3.2 text; Security Profiles in Discussion #5304) | Security Profiles, security configuration updates, Standardized API Features | Implements: --target 3.3 emits the pinned draft with x-permdock-securityProfile as twin and the pin in x-permdock-catalog.drafts | build (pinned: Discussion #5304 expanded design notes, Sep 2026) |
| OpenAPI Overlay 1.1 | OpenAPI Initiative | Released Jan 2026 | Repeatable document transformations | Implements: permdock openapi --format overlay | stable |
| Overlay 1.2 | OpenAPI Initiative | In development (v1.2-dev text complete) | Reusable actions (components.actions, $ref) | Implements: --overlay 1.2 emits one reusable action per permission set; 1.1.0 stays the default (Overlay) | build (pinned: v1.2-dev at edd4adea, Aug 2026) |
| Arazzo 1.1 | OpenAPI Initiative | Released May 2026 | Multi-step API workflows | Consumes: the permissions a workflow needs, step by step | stable |
| AsyncAPI 3 | AsyncAPI Initiative | Released | Event-driven API descriptions; an Arazzo 1.1 source type | Tracking: no emitter; if needed, the same Overlay engine pointed at an AsyncAPI document | track |
| OpenAPI registries | OpenAPI Initiative | Living registries | Extension and namespace registration | Implements: register the x-permdock- namespace | stable |
| A2A 1.0 | Linux Foundation | 1.0 | Agent Card securitySchemes and securityRequirements, signed cards, per-caller extended cards | Implements: permdock/a2a | stable |
| MCP authorization | Model Context Protocol | Spec 2026-07-28 | OAuth 2.1 resource servers, scopeChallenge step-up with SEP-2350 scope accumulation, Enterprise-Managed Authorization (ID-JAG via RFC 8693 and RFC 7523), Client ID Metadata Documents, RFC 9207 iss validation | Implements: permdock/mcp | stable |
| WebMCP | W3C Web Machine Learning CG | Draft Community Group Report; document.modelContext in Chrome 150 | Page-registered tools, tools Permissions-Policy, readOnlyHint, AbortSignal unregistration | Implements: permdock/webmcp | build (pinned on the WebMCP adapter) |
| AGENTS.md, Agent Skills, llms.txt | Agentic AI Foundation (Linux Foundation) for AGENTS.md and Skills; community for llms.txt | Governed since Dec 2025 | Instructions and skills formats agents already read | Implements: shipped permdock and permdock-* skills, AGENTS.md, llms.txt | stable |
| OWASP Top 10 for Agentic Applications | OWASP GenAI project | Released Dec 2025 | ASI02 Tool Misuse, ASI03 Identity and Privilege Abuse; per-tool least-privilege profiles, human-in-the-loop gates, "Least Agency" | Checklist: the OWASP agentic mapping | stable |
| SPIFFE / SPIRE | CNCF | Graduated; SVID formats stable | Workload identity documents | Consumes: a verified SVID as actor material | stable |
| OCSF | Linux Foundation | Schema 1.x released | Vendor-neutral event schema SIEMs ingest | Consumes: toOcsf, a projection of decision events onto OCSF 1.3.0 Authorize Session (audit) | stable |
| CloudEvents 1.0 | CNCF | Released | Common event envelope | Consumes: the envelope for decision events leaving a DecisionSink (wire formats) | stable |
| AG-UI | CopilotKit (open protocol) | Released, evolving | Agent-to-UI event stream with human-in-the-loop events | Tracking: where approval-required surfaces in a chat UI (ecosystem index) | track |
| TypeSpec | Microsoft (open source) | 1.0 GA, 2025 | Design-first language emitting OpenAPI 3.0 to 3.2 | Consumes: the Overlay applies to the emitted document (OpenAPI adapter) | stable |
| Cedar | AWS (Apache-2.0); used by Amazon Verified Permissions and AgentCore Policy | Language 4.x | Permit and forbid with when, deny-overrides-permit | Tracking: a compile target is considered and not scheduled (landscape) | track |
| OpenFeature | CNCF (incubating) | Specification 0.9.0, Jul 2026 | Vendor-neutral flag evaluation API | Consumes: how subject or context reads a flag (policies) | track |
Supabase capability matrix (supabase/sdk packages/capability-matrix) | Supabase | capability-matrix-v1.12.0, Sep 2026; conformance-vector schema in review (PR #30) | Three-segment capability ids shared by every Supabase client SDK; a { feature, cases } vector shape | Consumes: capability ids in the Supabase manifest's requires; supabaseClaimVectors follows the vector shape (Supabase) | name |
@supabase/server/mcp | Supabase | Alpha, unreleased: PR #146 (1.7.0-beta.0), tracking @modelcontextprotocol/server 2.x | generateTools builds MCP tools from the PostgREST OpenAPI description the caller sees, under the caller's role and RLS | Nothing built against the draft. Planned: a recipe that filters the generated tools through permdock/mcp once it ships (roadmap) | track |
| Splinter lints | Supabase | CalVer releases; 2026.09.1, Sep 2026 | The advisor rules Supabase applies to every project's schema | Checklist: generated RLS raises no WARN or ERROR lint (Postgres RLS) | stable |
| OpenTelemetry GenAI semantic conventions | OpenTelemetry (CNCF) | Development; execute_tool and gen_ai.tool.* not yet stable | Span names and attributes for agent tool calls | Consumes: permdock.decide nests under execute_tool and copies gen_ai.tool.name and gen_ai.tool.call.id (OpenTelemetry adapter) | build (pinned: semantic conventions 1.37.0) |
| AP2, Visa Trusted Agent Protocol, Stripe Agentic Commerce Protocol | Google, Visa, Stripe | Published protocols, 2025-2026 | Signed payment intents for agents | Tracking: adjacent context for signed-intent constraints, not a PermDock surface | track |
| EU AI Act traceability obligations | European Union | Regulation in force; high-risk obligations may be delayed | Record-keeping for AI systems | Tracking: a reason decision audit trails matter (audit) | track |
By PermDock concept
The same rows grouped by the part of PermDock they touch; every specification under a concept may constrain a change to it.
- Subject (
principal,actor,binding,memberships). OpenID Connect Core and Discovery define identity claims and key discovery; the JOSE RFCs, RFC 8725 and its bis, RFC 9864, FAPI 2.0, DPoP, mTLS, RFC 9700, OAuth 2.1 and IPSIE SL1 define whatpermdock/jwtaccepts; RFC 9470 defines the assurance denial. RFC 9068 and SCIM define the claims that become roles and team memberships; the AuthZEN claims draft is how a PDP could supply them. WIMSE, SPIFFE and transaction tokens define workloads as principals; Web Bot Auth fillsactorfor plain HTTP. IDAverified_claimsand verifiable credentials feedprincipal.assurance. The Ephemeral Subject Identifier draft meansprincipal.idmay not be stable across sessions. - Delegation (
scopes,authorizationDetails,access,chain). RFC 9396 and GNAP define the structured formats; RAR Error Remediation defines how insufficient authorization is reported; Identity Chaining and the agent-delegation drafts definechain; Grant Management defines the consent object. - Decision. AuthZEN is the wire format; RAR Error Remediation and RFC 6750 shape how
alternativesreaches OAuth clients; MCP, A2A and WebMCP shape how it reaches agents; the OWASP agentic list names the risks. - Snapshot freshness. SSF, CAEP, RISC and the CAEP Interoperability Profile deliver invalidation; Back-Channel Logout is a second input; OpenID Provider Commands overlaps; JOSE defines the signed-snapshot envelope;
session_expiryand IPSIE SL1 bound snapshot lifetime. - Catalog and documents. OpenAPI 3.2 and 3.3, Overlay 1.1 and the pinned 1.2 draft, Arazzo and the registries define what
permdock openapiandpermdock collectemit; AsyncAPI is tracked; TypeSpec is a producer. RFC 9728 defines what an MCP server publishes about itself. AGENTS.md and Agent Skills define the shipped skills. - Policy inputs. OpenFeature defines how a flag is read before it selects a role; Cedar is the one external policy language whose combining rule matches PermDock's.
- Audit events. OCSF, CloudEvents and the OpenTelemetry GenAI conventions; the EU AI Act is a reason to keep them.
- Trust between services. Transaction tokens inside a domain, Identity Chaining across domains, WIMSE and SPIFFE for workload identity, OpenID Federation between
permdock/pdpand a remote PDP.
GNAP
RFC 9635 defines one grant negotiation in place of OAuth's family of grant types. What a permissions library cares about is the access rights array (section 8): objects with a required type and optional actions, locations, datatypes, identifier and privileges, or plain reference strings like scopes. Fields inside one object form a cross-product; objects across the array are a union. The structure is deliberately analogous to RFC 9396 authorization_details, so PermDock's RAR support covers most of it, and the two bodies converging on type plus actions plus identifier validates the permission leaf shape.
PermDock consumes GNAP material and ships no client:
delegation.accessaccepts the array next toscopesandauthorizationDetails. The three are unioned into one delegated set, then intersected with the principal's grants, so anaccessobject never adds a grant, an unknowntypecontributes nothing, and a malformed object denies the permissions it names (delegation).typeis the catalog's stable resource URI,actionsare action keys,identifieris a resource-id constraint, reference strings matchpermission.scope, andlocations,datatypesandprivilegesare recorded in audit only.- RFC 9767 defines how a resource server reads GNAP tokens.
permdock/jwtmaps anaccessclaim injwt-signedtokens ontodelegation.access, andsubjectFromIntrospectionmaps an introspection response (sub,iss,instance_idasactor.id,access,keyasbinding); an inactive answer is the anonymous subject. - GNAP interaction (
redirect,user_code,app) and continuation are the same state asapproval-requiredand a retried check with the approvaltoken, one layer down. - In OpenAPI the posture is name:
scheme.type: 'gnap'is reserved and emits nothing, and the communityx-gnapextension is never written (OpenAPI 3.2 and 3.3).
Triggers for moving GNAP from tracking to planned: a major identity vendor shipping a GNAP authorization server, MCP or A2A adopting GNAP, or a v3.3-dev pull request defining a GNAP security scheme (funded work toward one is under way). Today the one production deployment is the Interledger Foundation's Open Payments API.
Review cadence
At each release the maintainer checks every row: has the maturity changed, has the body renamed or split the document, does the change touch existing behaviour. A maturity change alone updates the row. A change to existing behaviour opens an issue against the adapter page and, if a wire format or security default moves, updates the owning page's Why section and the rows listed in .agents/rules/change-checklist.mdc. Checklist rows are re-read against their adapter whenever it changes. Build rows are checked against their pin: the maintainer either bumps the pin (standards page, output, fixtures, changeset) or records why the old revision is kept; a build row whose text reaches Final, RFC or Released loses its pin and becomes stable.
How to propose a row
- Open an issue titled
watch: <spec name>with the canonical URL, the current maturity and its date. - State in one sentence which PermDock concept the specification touches.
- Propose the action (implements, consumes, checklist, tracking).
- For an unfinished text, propose the posture and, for build, the revision to pin and the stable twin.
- Say whether it changes a wire format or a security default; if it does, update the owning page's Why section and the rows listed in
.agents/rules/change-checklist.mdc.
Rows are added by pull request against this page. A row that reaches "implements" gets its own standards page in the same pull request as the code.
Sources
- OpenID Foundation specifications index; OpenID Connect Core 1.0, Discovery 1.0, Back-Channel Logout 1.0, AuthZEN 1.0, FAPI 2.0.
- IPSIE Working Group specifications, the SL1 profile, the AL1 SCIM profile, Common Requirements.
- RFC 7515 to RFC 7519, RFC 8037, RFC 9068, RFC 7643, RFC 7644, RFC 9470, RFC 9635, RFC 9767, RFC 9864, and the IANA JOSE and JWT claims registries.
- Transaction Tokens, WIMSE architecture, Agent Delegation Chain, Credential Delegation Protocol, OAuth for AI agents on behalf of a user, draft-ietf-jose-deprecate-none-rsa15, draft-gazitt-oauth-authzen-claims-00.
- OpenAPI milestones, Discussion #5304, Overlay 1.1.0, Arazzo 1.1.0, OpenAPI registries.
- MCP specification 2026-07-28, A2A specification, WebMCP in Chrome, OWASP Top 10 for Agentic Applications.
- SPIFFE, OCSF, CloudEvents, AG-UI.
Related
- Standards: the pages for everything PermDock implements.
- Roadmap and adapters.
- Threat model and delegation: where the checklist rows are applied.
Last updated on
Agent docs standards
AGENTS.md, Agent Skills and llms.txt as the formats coding agents read, and what PermDock ships in each so an agent can wire and audit permissions without reading source.
Threat model
The assets PermDock protects, the trust boundaries it sits on, the invariants every implementation must hold, and a table of threats with their mitigations.