TODO

1- is the pack Lamport clock really useful vs only topological sort?
2  - topological order is enforced on the clocks, so what's the point?
3  - is EditTime equivalent to PackTime? no, avoid the gaps. Is it better?
4- how to do commit signature?
5- how to avoid id collision between Operations?
6- write tests for actions
7- migrate Bug to the new structure
8- migrate Identity to the new structure?