When the document is loaded into memory, it has a unique uuid as the agent id.
If the current version is
hash(a1 b2 c3)
If two people edit the document at the same time the name will become
hash(a1 b2 c3 e4)
hash(a1 b2 c3 d4 d5)
After merging, the document name will become
hash(a1 b2 c3 d4 e4 d5)
a1, b2 is "Lamport timestamp" https://en.wikipedia.org/wiki/Lamport_timestamp
the full version (a1 b2 c3 e4) is “vector clock” https://en.wikipedia.org/wiki/Vector_clock