docs: function(tick) {
  		var snapshot, changes, handlers, observers = this._observers;
  		if (tick.type === edb.TICK_PUBLISH_CHANGES) {
  			snapshot = gui.Object.copy(this._changes);
  			this._changes = Object.create(null);
  			gui.Object.each(snapshot, function(instanceid, propdef) {
  				if ((handlers = observers[instanceid])) {
  					changes = [];
  					gui.Object.each(snapshot, function(id, props) {
  						if (id === instanceid) {
  							gui.Object.each(props, function(name, change) {
  								changes.push(change);
  							});
  						}
  					});
  					handlers.forEach(function(handler) {
  						handler.onchange(changes);
  					});
  				}
  			});
  		}
  	}