code: def build_layers(node, disambiguate_names=True):
      
      layers = []
      names = []
      for i, folder in enumerate(get(node, 'Folder')):
          name = val(get1(folder, 'name'))
          geojson = build_feature_collection(folder, name)
          if geojson['features']:
              layers.append(geojson)
              names.append(name)
  
      if not layers:
          # No folders, so use the root node
          name = val(get1(node, 'name'))
          geojson = build_feature_collection(node, name)
          if geojson['features']:
              layers.append(geojson)
              names.append(name)
  
      if disambiguate_names:
          new_names = disambiguate(names)
          new_layers = []
          for i, layer in enumerate(layers):
              layer['name'] = new_names[i]
              new_layers.append(layer)
          layers = new_layers
  
      return layers
docs: Return a list of GeoJSON FeatureCollections, one for each folder in the given KML DOM node that contains geodata.
      Name each FeatureCollection (via a ``'name'`` attribute) according to its corresponding KML folder name.
  
      If ``disambiguate_names == True``, then disambiguate repeated layer names via :func:`disambiguate`.
  
      Warning: this can produce layers with the same geodata in case the KML node has nested folders with geodata.