Async network client design
Using Swift Concurrency (async/await, actors), design the API of a network client that several screens use at the same time. It must never block the main thread, and it needs deduplication of identical requests, cancellation, and retries. Can you walk me through the interface and the internal concurrency structure?