whole_func_string: function mergeBrands() {
      buildReverseIndex(brands);
      checkBrands();
  
      console.log('\nmerging brands');
      console.time(colors.green('brands merged'));
  
      // Create/update entries
      // First, entries in namesKeep (i.e. counted entries)
      Object.keys(keep).forEach(k => {
          if (rIndex[k] || ambiguous[k]) return;
  
          let obj = brands[k];
          let parts = k.split('|', 2);
          let tag = parts[0].split('/', 2);
          let key = tag[0];
          let value = tag[1];
          let name = parts[1];
  
          if (!obj) {   // a new entry!
              obj = { tags: {} };
              brands[k] = obj;
  
              // assign default tags - new entries
              obj.tags.brand = name;
              obj.tags.name = name;
              obj.tags[key] = value;
          }
      });
  
  
      // now process all brands
      Object.keys(brands).forEach(k => {
          let obj = brands[k];
          let parts = k.split('|', 2);
          let tag = parts[0].split('/', 2);
          let key = tag[0];
          let value = tag[1];
          let name = parts[1];
  
          // assign default tags - new or existing entries
          if (key === 'amenity' && value === 'cafe') {
              if (!obj.tags.takeaway) obj.tags.takeaway = 'yes';
              if (!obj.tags.cuisine) obj.tags.cuisine = 'coffee_shop';
          } else if (key === 'amenity' && value === 'fast_food') {
              if (!obj.tags.takeaway) obj.tags.takeaway = 'yes';
          } else if (key === 'amenity' && value === 'pharmacy') {
              if (!obj.tags.healthcare) obj.tags.healthcare = 'pharmacy';
          }
  
          // Force `countryCode`, and duplicate `name:xx` and `brand:xx` tags
          // if the name can only be reasonably read in one country.
          // https://www.regular-expressions.info/unicode.html
          if (/[\u0590-\u05FF]/.test(name)) {          // Hebrew
              obj.countryCodes = ['il'];
              // note: old ISO 639-1 lang code for Hebrew was `iw`, now `he`
              if (obj.tags.name) { obj.tags['name:he'] = obj.tags.name; }
              if (obj.tags.brand) { obj.tags['brand:he'] = obj.tags.brand; }
          } else if (/[\u0E00-\u0E7F]/.test(name)) {   // Thai
              obj.countryCodes = ['th'];
              if (obj.tags.name) { obj.tags['name:th'] = obj.tags.name; }
              if (obj.tags.brand) { obj.tags['brand:th'] = obj.tags.brand; }
          } else if (/[\u1000-\u109F]/.test(name)) {   // Myanmar
              obj.countryCodes = ['mm'];
              if (obj.tags.name) { obj.tags['name:my'] = obj.tags.name; }
              if (obj.tags.brand) { obj.tags['brand:my'] = obj.tags.brand; }
          } else if (/[\u1100-\u11FF]/.test(name)) {   // Hangul
              obj.countryCodes = ['kr'];
              if (obj.tags.name) { obj.tags['name:ko'] = obj.tags.name; }
              if (obj.tags.brand) { obj.tags['brand:ko'] = obj.tags.brand; }
          } else if (/[\u1700-\u171F]/.test(name)) {   // Tagalog
              obj.countryCodes = ['ph'];
              if (obj.tags.name) { obj.tags['name:tl'] = obj.tags.name; }
              if (obj.tags.brand) { obj.tags['brand:tl'] = obj.tags.brand; }
          } else if (/[\u3040-\u30FF]/.test(name)) {   // Hirgana or Katakana
              obj.countryCodes = ['jp'];
              if (obj.tags.name) { obj.tags['name:ja'] = obj.tags.name; }
              if (obj.tags.brand) { obj.tags['brand:ja'] = obj.tags.brand; }
          } else if (/[\u3130-\u318F]/.test(name)) {   // Hangul
              obj.countryCodes = ['kr'];
              if (obj.tags.name) { obj.tags['name:ko'] = obj.tags.name; }
              if (obj.tags.brand) { obj.tags['brand:ko'] = obj.tags.brand; }
          } else if (/[\uA960-\uA97F]/.test(name)) {   // Hangul
              obj.countryCodes = ['kr'];
              if (obj.tags.name) { obj.tags['name:ko'] = obj.tags.name; }
              if (obj.tags.brand) { obj.tags['brand:ko'] = obj.tags.brand; }
          } else if (/[\uAC00-\uD7AF]/.test(name)) {   // Hangul
              obj.countryCodes = ['kr'];
              if (obj.tags.name) { obj.tags['name:ko'] = obj.tags.name; }
              if (obj.tags.brand) { obj.tags['brand:ko'] = obj.tags.brand; }
          }
  
          brands[k] = sort(brands[k])
  
       });
  
      console.timeEnd(colors.green('brands merged'));
  }
func_code_string: function mergeBrands() {
      buildReverseIndex(brands);
      checkBrands();
  
      console.log('\nmerging brands');
      console.time(colors.green('brands merged'));
  
      // Create/update entries
      // First, entries in namesKeep (i.e. counted entries)
      Object.keys(keep).forEach(k => {
          if (rIndex[k] || ambiguous[k]) return;
  
          let obj = brands[k];
          let parts = k.split('|', 2);
          let tag = parts[0].split('/', 2);
          let key = tag[0];
          let value = tag[1];
          let name = parts[1];
  
          if (!obj) {   // a new entry!
              obj = { tags: {} };
              brands[k] = obj;
  
              // assign default tags - new entries
              obj.tags.brand = name;
              obj.tags.name = name;
              obj.tags[key] = value;
          }
      });
  
  
      // now process all brands
      Object.keys(brands).forEach(k => {
          let obj = brands[k];
          let parts = k.split('|', 2);
          let tag = parts[0].split('/', 2);
          let key = tag[0];
          let value = tag[1];
          let name = parts[1];
  
          // assign default tags - new or existing entries
          if (key === 'amenity' && value === 'cafe') {
              if (!obj.tags.takeaway) obj.tags.takeaway = 'yes';
              if (!obj.tags.cuisine) obj.tags.cuisine = 'coffee_shop';
          } else if (key === 'amenity' && value === 'fast_food') {
              if (!obj.tags.takeaway) obj.tags.takeaway = 'yes';
          } else if (key === 'amenity' && value === 'pharmacy') {
              if (!obj.tags.healthcare) obj.tags.healthcare = 'pharmacy';
          }
  
          // Force `countryCode`, and duplicate `name:xx` and `brand:xx` tags
          // if the name can only be reasonably read in one country.
          // https://www.regular-expressions.info/unicode.html
          if (/[\u0590-\u05FF]/.test(name)) {          // Hebrew
              obj.countryCodes = ['il'];
              // note: old ISO 639-1 lang code for Hebrew was `iw`, now `he`
              if (obj.tags.name) { obj.tags['name:he'] = obj.tags.name; }
              if (obj.tags.brand) { obj.tags['brand:he'] = obj.tags.brand; }
          } else if (/[\u0E00-\u0E7F]/.test(name)) {   // Thai
              obj.countryCodes = ['th'];
              if (obj.tags.name) { obj.tags['name:th'] = obj.tags.name; }
              if (obj.tags.brand) { obj.tags['brand:th'] = obj.tags.brand; }
          } else if (/[\u1000-\u109F]/.test(name)) {   // Myanmar
              obj.countryCodes = ['mm'];
              if (obj.tags.name) { obj.tags['name:my'] = obj.tags.name; }
              if (obj.tags.brand) { obj.tags['brand:my'] = obj.tags.brand; }
          } else if (/[\u1100-\u11FF]/.test(name)) {   // Hangul
              obj.countryCodes = ['kr'];
              if (obj.tags.name) { obj.tags['name:ko'] = obj.tags.name; }
              if (obj.tags.brand) { obj.tags['brand:ko'] = obj.tags.brand; }
          } else if (/[\u1700-\u171F]/.test(name)) {   // Tagalog
              obj.countryCodes = ['ph'];
              if (obj.tags.name) { obj.tags['name:tl'] = obj.tags.name; }
              if (obj.tags.brand) { obj.tags['brand:tl'] = obj.tags.brand; }
          } else if (/[\u3040-\u30FF]/.test(name)) {   // Hirgana or Katakana
              obj.countryCodes = ['jp'];
              if (obj.tags.name) { obj.tags['name:ja'] = obj.tags.name; }
              if (obj.tags.brand) { obj.tags['brand:ja'] = obj.tags.brand; }
          } else if (/[\u3130-\u318F]/.test(name)) {   // Hangul
              obj.countryCodes = ['kr'];
              if (obj.tags.name) { obj.tags['name:ko'] = obj.tags.name; }
              if (obj.tags.brand) { obj.tags['brand:ko'] = obj.tags.brand; }
          } else if (/[\uA960-\uA97F]/.test(name)) {   // Hangul
              obj.countryCodes = ['kr'];
              if (obj.tags.name) { obj.tags['name:ko'] = obj.tags.name; }
              if (obj.tags.brand) { obj.tags['brand:ko'] = obj.tags.brand; }
          } else if (/[\uAC00-\uD7AF]/.test(name)) {   // Hangul
              obj.countryCodes = ['kr'];
              if (obj.tags.name) { obj.tags['name:ko'] = obj.tags.name; }
              if (obj.tags.brand) { obj.tags['brand:ko'] = obj.tags.brand; }
          }
  
          brands[k] = sort(brands[k])
  
       });
  
      console.timeEnd(colors.green('brands merged'));
  }
func_documentation_string: mergeBrands() takes the brand names we are keeping and updates the files under `/brands/**/*.json`