How independent feature modules should trigger navigation to each other without coupling.
In a modular iOS app where FeatureA and FeatureB are separate Swift modules that must NOT import each other, FeatureA needs to push a screen owned by FeatureB. Which approach best preserves module boundaries while keeping navigation as an explicit architectural concern?