There’s still a lot work on the Swift side for a smoother dev experience. The provider pattern, for instance, could be implemented in native Swift using Combine framework (Rx). It would help make the API more idiomatically Swift.
This is where I want to get your thoughts on. Would it make sense to limit Yrs to just the core CRDT functions: get_type, encode_update, apply_update, get_array, get_map, etc. Leave concerns such as provider, undo/redo in the host language.
It will absolutely be possible to write providers in the host language as well (this is a requirement anyway). Although I see some advantages in porting providers as well (reduced maintenance overhead, protocol-compatibility across language-ports). This really depends on the use-case. Both will be possible.
If there there are language features, or if there is a de-facto standard framework that usually handles communication in the host language, we can hook into it as well.