Swift concurrency nOOb question: if you're using Approachable Concurrency and you get warnings about using Sendable structs in non-main-actor contexts, is the recommended workaround to mark them as nonisolated?

Also, it seems odd to me that marking a struct as Sendable doesn't already exempt it from default MainActor isolation. Is there a good reason why you'd want to limit Sendable types to MainActor?

@nicklockwood Imagine a video encoder, and a SwiftUI progress bar showing the encoding progress, so you have an `EncodingState` class to store percentage and maybe status text.

SwiftUI can only deal with MainActor, so you want EncodingState's fields to be MainActor-isolated.

But the encoder is running on a bg thread and periodically updating the state. So you want EncodingState to be Sendable to bg thread.

This ensures bg thread can update state via async, and SwiftUI gets main actor updates.