pub fn validate(doc: &SceneDoc) -> Vec<String>
Structural validation. Missing script = placeholder, never a load failure; unknown props warn and are preserved on save.