http/js/sync_api.js
function SyncApi(schema, sh, logger){
	_.assertObject(schema);
	_.assertFunction(logger)
	
	this.log = logger;
	
	this.temporaryIdCounter = -1;

	this.sh = sh;
	//_.assertFunction(sh.makeFork)
	this.schema = schema;

	this.snap = {latestVersionId: -1, objects: {}, historicalViewObjects: {}};

	this.cachedProperties = {};
	
	this.changeListener = SyncApi.prototype.changeListener.bind(this);
	_.assertFunction(this.changeListener);

	this.objectApiCache = {};
	this.historicalObjectCache = {}
	
	this.uid = Math.random()
	
	this.latestVersionId = -1
	//this.log('made SyncApi ' + this.uid)
}
function SyncApi(schema, sh, logger){
	_.assertObject(schema);
	_.assertFunction(logger)
	
	this.log = logger;
	
	this.temporaryIdCounter = -1;

	this.sh = sh;
	//_.assertFunction(sh.makeFork)
	this.schema = schema;

	this.snap = {latestVersionId: -1, objects: {}, historicalViewObjects: {}};

	this.cachedProperties = {};
	
	this.changeListener = SyncApi.prototype.changeListener.bind(this);
	_.assertFunction(this.changeListener);

	this.objectApiCache = {};
	this.historicalObjectCache = {}
	
	this.uid = Math.random()
	
	this.latestVersionId = -1
	//this.log('made SyncApi ' + this.uid)
}
/*
function getPath(){
return this.parent.getPath().concat(this.part);
}