Goal: LLM authoring errors surface at transpilation, not at render — unknown rm-* attributes and unsupported CSS properties produce warnings (strict mode: errors).
Evidence:element.rs:77-94 inserts any attribute verbatim; style.rs accepts any kebab-case property silently.
Invariants: default stays permissive (warnings); strict mode opt-in; no false positives on supported properties.
Acceptance:<rm-counter to="invalid"> and style="backdrop-filterr:..." produce actionable warnings with element location; tests cover both paths.
Files:crates/rustmotion-html/src/*, CLI validate wiring.
Verify:cargo test --workspace
Goal: LLM authoring errors surface at transpilation, not at render — unknown
rm-*attributes and unsupported CSS properties produce warnings (strict mode: errors).Evidence:
element.rs:77-94inserts any attribute verbatim;style.rsaccepts any kebab-case property silently.Invariants: default stays permissive (warnings); strict mode opt-in; no false positives on supported properties.
Acceptance:
<rm-counter to="invalid">andstyle="backdrop-filterr:..."produce actionable warnings with element location; tests cover both paths.Files:
crates/rustmotion-html/src/*, CLI validate wiring.Verify:
cargo test --workspace