How dependency inversion and navigation boundaries keep feature modules decoupled in a layered app architecture.
In a layered, modular app split into independent feature modules (e.g. Checkout, Profile), Checkout must open a screen owned by Profile. What design keeps the modules decoupled and avoids a compile-time dependency cycle?