I'd like to make some code simplifications here, but want your permission before I do so. A few things: - There's a lot of pointless macros. Rust analyzer can't even properly check this due to the metaprogramming async function macros in use. - Each form and response is defined three times for some reason. You should only need to define them once. - Because you're using macros, you're not able to use simple rustdocs on the async functions.