Your documentation is much longer than your code.
Is there a simpler way to explain how this works?
It would probably help to see what the clock looks like as json,
initially, then what the concurrent versions look like, and then the merged version.
Also, adding methods like protocol.isConcurrent(a, b).
Would be a lot easier to read than protocol.compare(a, b) == protocol.conts.CONCURRENT
this isn't C.
If I am using this module, do I have to implement the way documents are merged?
It would be good to expand the calendar example to show merging actual data.
Your documentation is much longer than your code.
Is there a simpler way to explain how this works?
It would probably help to see what the clock looks like as json,
initially, then what the concurrent versions look like, and then the merged version.
Also, adding methods like
protocol.isConcurrent(a, b).Would be a lot easier to read than
protocol.compare(a, b) == protocol.conts.CONCURRENTthis isn't C.
If I am using this module, do I have to implement the way documents are merged?
It would be good to expand the calendar example to show merging actual data.