pub fn validate( spec: &Spec, registry: &NodeRegistry, ) -> Result<(), Vec<Violation>>
Validate a spec against the chassis rules. Returns every violation found (not just the first) so authors can fix in one pass.