@andre @alcinnz ... the tree, which is useful, but that means updating a partial tree for each edit - the overhead grows O(log(n)).
What we've done is two tiers: on the one hand, vessel is a container - it doesn't have anything to do with CRDTs as such. But it has a different system for ordering chunks of data, which is sufficiently similar to a Merkle tree to work as a logical clock. More specifically, both are DAGs, and it's the DAG properties that make them work that way.
Which means...