This blog explains a way to write a proc-macro crate for compile-time syntax checking of the warrior. This would be nice to have for testing so that warriors could be written inline instead of as string literals.
Gated by rust-lang/rust#54725 to use on stable (needs span information to preserve whitespace in the proc-macro).