pub fn validate_ir_version(ir: &WarbleIr) -> Result<(), DispatchError>Expand description
The one version gate every IR-consuming entry point in this crate (and the cli binary, at IR
parse time) must call before doing anything else with ir: emit_claude_code_with_realization
calls this as its first statement, and cli::load_ir calls it right after deserializing, so
every subcommand that reads an ir.json — dispatch and manifest alike — is covered by the
same check instead of each reimplementing (and potentially forgetting) it.