code: function ObjectSnapshot(objectInstance, ts, args) {
      tr.model.Event.call(this);
      this.objectInstance = objectInstance;
      this.ts = ts;
      this.args = args;
    }
docs: A snapshot of an object instance, at a given moment in time.
  
  Initialization of snapshots and instances is three phased:
  
  1. Instances and snapshots are constructed. This happens during event
  importing. Little should be done here, because the object's data
  are still being used by the importer to reconstruct object references.
  
  2. Instances and snapshtos are preinitialized. This happens after implicit
  objects have been found, but before any references have been found and
  switched to direct references. Thus, every snapshot stands on its own.
  This is a good time to do global field renaming and type conversion,
  e.g. recognizing domain-specific types and converting from C++ naming
  convention to JS.
  
  3. Instances and snapshtos are initialized. At this point, {id_ref:
  '0x1000'} fields have been converted to snapshot references. This is a
  good time to generic initialization steps and argument verification.
  
  @constructor