anchor.diff:      } else if(change['version'] <= version) {
         return;
       }
  -      if (change["action"] == "add") {
  +      if (action == "add") {
           if (collectRes) res = max(res, change['version']);
  -        if (collection.findBy('_id', change['_id']).isEmpty){
  +        if (record == null) {
             logger.finer('aplying changes (add)');
             collection.add(change["data"]);
           } else {
  
positive.code:   bool collectRes = true;
  
    diff.forEach((Map change) {
      logger.finer('handling change $change');
  //     it can happen, that we get too old changes
      if (!change.containsKey('version')){
  
negative.code:           assert(author == change['author']);
          }
      }
        else if (action == "change" ) {
        // 1. the change may be for item that is currently not present in the collection;
        // 2. the field may be 'locked', because it was changed on user's machine, and
        // this change was not yet confirmed from server
  