would it make sense to always use withDefaultValue for the `VectorClock.version`?
(in that case, remember to add it in merge also)