Structural validation for Draxl source files.
Validation runs after parsing and checks the stronger invariants that make canonical printing, lowering, and patch application predictable:
- ids must be unique
- ranked slots must provide ranks
- anchors must refer to valid targets
- detached comments and docs must resolve deterministically