`onNavigation` is still a callback and its name would imply that. I don't see a problem with required callbacks — if we have this in form of contract between routers and environment I think it's ok.