What the route declared, read through its options.
path and method are read from here rather than from properties of the same name: on a live
route, path is the request's path once bound, and the declared template lives only in the
options. Reading the property gave / for every route, which is a tool that takes no arguments
and calls the wrong endpoint.
The shape this module needs from a route.
Duck-typed on purpose: this package derives tools from the router without depending on it, exactly as the router carries module props without depending on the modules.