Allowlist & Validation 1.4.0
Validation turns an untrusted proposal into either a safe semantic operation or an audited rejection.
Validation order
1. Resolve target inside Adapt root
2. Validate intent type and parameter schema
3. Check semantic role / policy / adaptContract
4. Check component attribute allowlist
5. Run guardrails
6. Apply or reject without partial mutationMutable surface
| Allowed | Never allowed |
|---|---|
| Theme, contrast, density, layout attributes | innerHTML / outerHTML |
| Known density/layout bridges | Arbitrary class strings or inline style |
| Allowlisted WC public attributes | on*, scripts, javascript: |
| Compatible order of existing sections | Cross-document or arbitrary node moves |
Protected regions
Configured root boundaries, data-velin-adapt="off", sensitive fields/subtrees, Shadow DOM internals, and cross-origin frames are outside mutation authority.
Block contracts
A Block adaptContract can narrow roles, density, layout, actions, and WC attributes. It never expands the engine allowlist.