E4: Validation — 0.9.0

Goal

Release 0.9.0 "Validation": replace the four private check_motion copies with a pluggable motion-validation model after OMPL — SpaceInformation (space + state validity checker + motion validator) as the single source of validity; fallible, thread-safe validation; resolution owned by the state space (max-of-component counts, default fraction 0.01, no hidden ×0.1); typed binding errors; user motion validators in Python/JS (one cross-language call per motion); reproducible PRM roadmaps via a milestone budget.

Decisions: repo docs/planning/adr/0003-motion-validation.md; glossary: CONTEXT.md. Supersedes E2. Gated on E3 (0.8.0).

Stories

Parallel: S4.1–S4.3 have no intra-epic dependencies; S4.6 and S4.8 can run alongside S4.5.

Provisional schedule: oxmpl - sprint-003 (S4.1–S4.3) → oxmpl - sprint-004 (S4.4, S4.5) → oxmpl - sprint-005 (S4.6, S4.8) → oxmpl - sprint-006 (S4.7, S4.9, S4.10); target 2027-01-20. Full regeneration spec for E4 and every story lives on those pages.