 query = (bbox) ->
   filters = [
     {t: 'relation', k: 'route',   v: 'hiking'}
+    {t: 'node',     k: 'natural', v: 'saddle'}
+    {t: 'node',     k: 'natural', v: 'peak'}
+    {t: 'node',     k: 'tourism', v: 'chalet'}
+    {t: 'way',      k: 'tourism', v: 'chalet'}
   ]
   overpassBbox = [bbox[1], bbox[0], bbox[3], bbox[2]]
   item = (f) -> "#{f.t}[\"#{f.k}\"=\"#{f.v}\"](#{overpassBbox});"

      for m in o.members
        if m.type == 'way'
          segmentIds.add(m.ref)


  pos = (id) -> node = obj[id]; return [node.lon, node.lat]


  layers = {
    segments: layer(segment(id) for id in segmentIds.values())
    poi: layer(natural(id) for id in naturalIds.values())
  }

  return {
    topo: topojson.topology(layers, {
      quantization: 1000000
      'property-transform': (f) -> f.properties
    })
    bbox: bbox
    routes: route(obj[id]) for id in routeIds.values()
  }
