I was initially going to do it in TypeScript, as the clients that will be interacting with it are TypeScript. Can’t really go wrong either way, but yeah, I’ve enjoyed exploiting Rust’s type system!
Sorry if that's so basic of a consideration that it's insulting, but I've seen it done before.