Overview of Reka Collaboration and CRDTs
Reka's core State is not a CRDT by design to maintain portability. To enable real-time multiplayer capabilities, the @rekajs/collaboration package provides an extension that mirrors the Reka State into a Yjs CRDT. Changes in the State are propagated to the mirrored CRDT and synced across all clients, then applied back to each client's core State structure.
Note that while Reka State is a nested tree, it is represented as a flat tree within the Yjs CRDT to facilitate synchronization.