To clarify it is the structure of the example code that I’m interested in:
1. Action is triggered by user via UI element.
2. Expensive, non-main thread work needs to get dispatched to a background queue.
3. When said work completes, dispatch back to the main thread to update the UI that notifies the user of the result.
So now: write this using structured concurrency.
Don’t tell me “well a ViewController should really only be responsible for…” Yeah, duh. You’re missing the point here.