This allows us to freely make changes to the backend without being constrained
to supporting the pre-SwiftUI frontend (for iOS). On macOS, 11.3 fixed some
bugs that required ugly hacks to work around.
We were constrained to class types when we had to support Objective-C but now
that the backend is in Swift, we can use structs which work much better with
SwiftUI (without lots of hacks).