creates object accumulator.
Accumulate a new object part with accumulator. This method throws if there is any intersection between the object parts except for the versionKey, which should be the same across all object parts (nested objects included)
a new object part to accumulate
the accumulator object for easy chaining
A class that can accumulate (squash merge) objects into single instance.