Source: router/types/router_types.js

/**
 * @typedef {import("Oats~i_Router_Types").MainNavigationInfo} MainNavigationInfo Main navigational info for the route. Used by the app's root to handle navigation and state management by the app's state manager
 * 
 * @typedef {object} RoutingInfo Routing information for the app
 * @property {string} route The route valid for this entry
 * @property {AppFragmentBuilder} target The main fragment that starts this route
 * @property {AppFragmentBuilder[]} nestedChildFragments The child fragments targeted for this route, in a nested order
 * @property {string} [baseNavBtn] (Auto-generated - so remove? I think YES) base navigational button for this route. Auto generated from the MainNavigationInfo
 * @property {string} [pageTitle] (Optional) The title of the current routed page. {Allow to pass when requesting routing}
 * 
 * For managing access to a route internally
 * @typedef {object} RoutePipelineAccessValidator
 * @property {boolean} canAccess
 * @property {string} fallbackRoute 
 * 
 * @callback canAccessRoute Optional.
 * @param {string} route
 * @returns {Promise<RoutePipelineAccessValidator>} Whether the route can be accessed or not and fallback route if access denied.
 * 
 */