Router for the RPC server. Can have different handlers attached to it, as well as nested
routers in order to create a hierarchy. It is also capable of generating its own type, suitable
for consumption by a TypeScript client.
Handlers run for specific RPC requests. This trait will automatically be implemented if the
crate::handler macro is attached to a function containing a handler implementation.