code: function(prevData, data) {
      var checkObj = flattenTillSpec(prevData);
  
      var processData = function(obj, currentNesting){
          Object.keys(obj).forEach(function(key){
              var nesting = currentNesting ? currentNesting + '/' + key : key;
  
              if (obj[key].toString() === '[object Object]') {
  
                  if (!obj[key].specFile) {
                      // Go deeper
                      obj[key] = processData(obj[key], nesting);
                  } else {
                      // Check prevData on force flag
                      var checkHigherPrioritySpec = !!(checkObj[nesting] && checkObj[nesting].forcedSave);
  
                      if (checkHigherPrioritySpec && !obj[key].specFile.forcedSave) {
                          // Delete low priority override
                          delete obj[key];
                      }
                  }
              }
          });
  
          return obj;
      };
  
      return processData(data);
  }
docs: Remove all objects from data, that has lower priority (doesn't have forcedSave flag)
  
  @param {Object} prevData - data to check more priority specs from
  @param {Object} data - data that will be merged onto prevData and will be processed with this func
  
  @returns {Object} Returns processed data, with removed low-priority specs