Hi Oswald, thanks for writing.
What we inject in the view hierarchy is not a view model. It is a service: we could have a generator that fetches data from an external service for example.
And yes, we do want to have an abstraction for it, otherwise we won't be able to test it.
the @Published property wrapper is just a way to let other objects consume the output of the computation, but it does not make the Generator a ViewModel.