Server.Servicet represents a gRPC service with potentially multiple rpcs and the information needed to route to them.
val v : unit -> tv () creates a new service
add_rpc ~name ~rpc t adds rpc to t and ensures that t can route to it with name.