This is an update to my original Router post , where I showed a Router pattern with Combine based bindings in the view models. The Router also had the responsibility of providing dependencies to each View Model, requiring screens and view models to be initialized together in the Router. I have since moved on, and am now using Async Sequences for bindings
I’m also using a property wrapper based method of dependency injection, inspired by this post from Ihor Vovk.