I've implemented the proposed `RouteDef` and `RouteSpec` as a data structure for communicating intended routes. The current implementation uses a discriminated union to strongly type access to the routes and a simple string for specifying route templates. The route templates are composed as the tree is composed.