You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
feat(schema): export the component schema, load fonts before validating, drop LayerStyle #106
Goal: make the schema surface honest — export a schema that actually describes components, measure text with the fonts the render will use, and delete the dead style model that keeps stale vocabulary alive.
Invariants
rustmotion schema output fully describes every Component variant.
Validation and render resolve the same typeface for the same text.
No public type remains that contradicts the live CSS types on casing or shape.
Out of scope:validate_attrs hardening and SceneEntry diagnostics (wave 2, L4b); the colour parser itself (L2).
Acceptance
H2 — cmd_schema emits schemars::schema_for!(Component) (already built internally at validate_attrs.rs:40) so Scene.children is no longer typed items: true. The output must contain a oneOf over component variants.
H5 (fonts) — load_custom_fonts runs inside validation::run_checks, before any measurement. Today it is only called on the render path (render.rs:47), so validation measures through the Helvetica/Arial fallback while the render uses the declared face.
H8 (code) — LayerStyle (schema/style.rs:317+) and its orphaned siblings that shadow live CSS types (schema::BlendMode, schema::Overflow, schema::GridTrack, CardDisplay, schema::Size) are removed, along with their pub use re-exports. Verify each is genuinely unreferenced before deleting.
Activity
feat(schema): export the component schema and load fonts before valid…
Post-audit reliability hardening — wave 1 (critical + high) (#108)
LeadcodeDev commentedon Aug 1, 2026
Merged into
mainvia #108 (squash38596ca).