One important change in Compose Navigation 3 is that navigation state is back in the developer's hands. That may not sound like a big deal at first, but it feels very natural once you start building with it. The page stack can be managed as regular state, each page can be represented as a NavKey , and NavDisplay renders the current page from that state. The whole model is much closer to Compose's state-driven style than before. However, once a project becomes modular, another question quickly appears: Module A wants to navigate to a page in module B, but module A should not directly depend on module B's page class. What should we do? If we keep writing string routes, parameter parsing, page registries, and entry dispatching by hand, it soon turns into repetitive work. Once a page has more parameters, type safety and default value handling also become annoying. So I built this library: nav3-helper . As the name suggests, it is only a helper library on top of the official Navigation 3 APIs.…