I'm trying to work out the best way to handle a one-way binding with SwiftUI.
There's lots of state that isn't two way. For example: if you have some view state that is derived from some deeper model state, it doesn't make sense for this to be settable within your view. Ideally it would be read-only.
But then you might say, "well, just pass this state directly – you don't need a binding!".
OK, but then how do you perform the equivalent of Binding's `animation(_:)` or `transaction(_:)` modifiers to perform some fancy explicit animation when your state updates?
Maybe then you might say, "well, pass in a Publisher of that state instead and use `withAnimation(_:_:)` in an `onReceive(_:_:)` block".
Right, but then how do I do the equivalent of State's '$myState.substate' trick to pass a derived publisher down from my original publisher? Am I not going to create a ton of overhead in the render tree creating tons of mapped publishers from my source publisher each time my view tree updates?