Versioned schemas, diagnostics, and typed Webots nodes.
This crate owns:
- ---
```rust
use webots_proto_ast::Proto;
let proto: Proto = r#"#VRML_SIM R2025a utf8
Robot { name "demo" }
"#
.parse()?;
let diagnostics = webots_proto_schema::validate(&proto);
assert!(!diagnostics.has_errors());
```