Strict Concurrency: False Positives?

Warning is confusing, yet the case here is that they are crossing isolation boundary - from the nonisolated init to the main actor isolation. And only sendable types can safely cross isolation boundary, so Sendable fixes that.

The rest depends on the use case. If your class is going to be initialized on main actor, you can make init isolated as well, therefore there will be no crossing of isolation boundary. Otherwise, conforming to Sendable is a go right now.

There are improvements to this with SE-414 introducing region based isolation (see here) and follow-up to it allowing transferring objects: [Pitch] `transferring` isolation regions of parameter and result values