{
  "layers": [
    {
      "layers": [
        "place_areas",
        "place_points_centroids"
      ],
      "tegola_config": "config/providers/place_areas.toml, config/providers/place_points_centroids.toml",
      "filters_per_zoom_level": [
        {
          "zoom_level": "z14-20",
          "view_name": "mv_place_areas_z14_20",
          "tolerance": "0m",
          "min_area": "0",
          "filter": "type IN ('plot','square','islet')",
          "source": null
        },
        {
          "zoom_level": "z11-20",
          "view_name": "mv_place_points_centroids_z11_20",
          "tolerance": null,
          "min_area": null,
          "filter": "type IN ('plot','square','islet') from areas, multiple types from points",
          "source": null
        },
        {
          "zoom_level": "z6-10",
          "view_name": "mv_place_points_centroids_z6_10",
          "tolerance": null,
          "min_area": null,
          "filter": "type IN ('island') from areas, multiple types from points",
          "source": null
        },
        {
          "zoom_level": "z3-5",
          "view_name": "mv_place_points_centroids_z3_5",
          "tolerance": null,
          "min_area": null,
          "filter": "type IN ('island') from areas, multiple types from points",
          "source": null
        },
        {
          "zoom_level": "z0-2",
          "view_name": "mv_place_points_centroids_z0_2",
          "tolerance": null,
          "min_area": null,
          "filter": "type IN ('island') from areas, multiple types from points",
          "source": null
        }
      ],
      "description": "OpenhistoricalMap places points centroids, contains named geographic places as points (cities, towns, villages, countries, islands, etc.) combining polygons and point features",
      "details": [
        "Combines polygons (areas) and points into centroids",
        "Includes multilingual name columns dynamically from languages table",
        "Only features with names are included"
      ],
      "source_file": "queries/ohm_mviews/places.sql",
      "source_file_name": "places.sql"
    },
    {
      "layers": [
        "place_areas"
      ],
      "tegola_config": "config/providers/place_areas.toml",
      "filters_per_zoom_level": [
        {
          "zoom_level": "z14-20",
          "view_name": "mv_place_areas_z14_20",
          "tolerance": "0m",
          "min_area": "0",
          "filter": "type IN ('plot', 'square', 'islet')",
          "source": null
        }
      ],
      "description": "OpenhistoricalMap place areas, contains named place polygons (squares, plots, islets, etc.)",
      "details": [
        "Only features with names are included"
      ],
      "source_file": "queries/ohm_mviews/places.sql",
      "source_file_name": "places.sql"
    },
    {
      "layers": [
        "water_areas"
      ],
      "tegola_config": "config/providers/water_areas.toml",
      "filters_per_zoom_level": [
        {
          "zoom_level": "z16-20",
          "view_name": "mv_water_areas_z16_20",
          "tolerance": "0m",
          "min_area": "0",
          "filter": null,
          "source": "osm_water_areas"
        },
        {
          "zoom_level": "z13-15",
          "view_name": "mv_water_areas_z13_15",
          "tolerance": "5m",
          "min_area": "0",
          "filter": null,
          "source": "mv_water_areas_z16_20"
        },
        {
          "zoom_level": "z10-12",
          "view_name": "mv_water_areas_z10_12",
          "tolerance": "20m",
          "min_area": "100",
          "filter": null,
          "source": "mv_water_areas_z13_15"
        },
        {
          "zoom_level": "z8-9",
          "view_name": "mv_water_areas_z8_9",
          "tolerance": "100m",
          "min_area": "10000",
          "filter": null,
          "source": "mv_water_areas_z10_12"
        },
        {
          "zoom_level": "z6-7",
          "view_name": "mv_water_areas_z6_7",
          "tolerance": "200m",
          "min_area": "1000000",
          "filter": null,
          "source": "mv_water_areas_z8_9"
        },
        {
          "zoom_level": "z3-5",
          "view_name": "mv_water_areas_z3_5",
          "tolerance": "1000m",
          "min_area": "50000000",
          "filter": null,
          "source": "mv_water_areas_z6_7"
        },
        {
          "zoom_level": "z0-2",
          "view_name": "mv_water_areas_z0_2",
          "tolerance": "5000m",
          "min_area": "100000000",
          "filter": null,
          "source": "mv_water_areas_z3_5"
        }
      ],
      "description": "OpenhistoricalMap water areas, contains water body polygons (lakes, ponds, rivers, canals, etc.)",
      "details": [],
      "source_file": "queries/ohm_mviews/water.sql",
      "source_file_name": "water.sql"
    },
    {
      "layers": [
        "water_areas_centroids"
      ],
      "tegola_config": "config/providers/water_areas_centroids.toml",
      "filters_per_zoom_level": [
        {
          "zoom_level": "z16-20",
          "view_name": "mv_water_areas_centroids_z16_20",
          "tolerance": null,
          "min_area": null,
          "filter": "name IS NOT NULL AND name <> ''",
          "source": null
        },
        {
          "zoom_level": "z13-15",
          "view_name": "mv_water_areas_centroids_z13_15",
          "tolerance": null,
          "min_area": null,
          "filter": "name IS NOT NULL AND name <> ''",
          "source": null
        },
        {
          "zoom_level": "z10-12",
          "view_name": "mv_water_areas_centroids_z10_12",
          "tolerance": null,
          "min_area": null,
          "filter": "name IS NOT NULL AND name <> ''",
          "source": null
        },
        {
          "zoom_level": "z8-9",
          "view_name": "mv_water_areas_centroids_z8_9",
          "tolerance": null,
          "min_area": null,
          "filter": "name IS NOT NULL AND name <> ''",
          "source": null
        }
      ],
      "description": "OpenhistoricalMap water areas centroids, contains point representations of named water bodies (centroids from polygons)",
      "details": [
        "Created from water areas using centroids, only for named features"
      ],
      "source_file": "queries/ohm_mviews/water.sql",
      "source_file_name": "water.sql"
    },
    {
      "layers": [
        "water_lines"
      ],
      "tegola_config": "config/providers/water_lines.toml",
      "filters_per_zoom_level": [
        {
          "zoom_level": "z16-20",
          "view_name": "mv_water_lines_z16_20",
          "tolerance": "0m",
          "min_area": null,
          "filter": "type IN ('river','canal','cliff','dam','stream','ditch','drain')",
          "source": "osm_water_lines"
        },
        {
          "zoom_level": "z13-15",
          "view_name": "mv_water_lines_z13_15",
          "tolerance": "5m",
          "min_area": null,
          "filter": "type IN ('river','canal','cliff','dam','stream')",
          "source": "mv_water_lines_z16_20"
        },
        {
          "zoom_level": "z10-12",
          "view_name": "mv_water_lines_z10_12",
          "tolerance": "20m",
          "min_area": null,
          "filter": "type IN ('river','canal','cliff','dam')",
          "source": "mv_water_lines_z13_15"
        },
        {
          "zoom_level": "z8-9",
          "view_name": "mv_water_lines_z8_9",
          "tolerance": "100m",
          "min_area": null,
          "filter": "type IN ('river','canal')",
          "source": "mv_water_lines_z10_12"
        }
      ],
      "description": "OpenhistoricalMap water lines, contains linear water features (rivers, canals, streams, ditches, dams, etc.)",
      "details": [],
      "source_file": "queries/ohm_mviews/water.sql",
      "source_file_name": "water.sql"
    },
    {
      "layers": [
        "transport_lines"
      ],
      "tegola_config": "config/providers/transport_lines.toml",
      "filters_per_zoom_level": [
        {
          "zoom_level": "z16-20",
          "view_name": "mv_transport_lines_z16_20",
          "tolerance": "0m",
          "min_area": null,
          "filter": "all types OR class IN ('railway', 'route')",
          "source": null
        },
        {
          "zoom_level": "z13-15",
          "view_name": "mv_transport_lines_z13_15",
          "tolerance": "5m",
          "min_area": null,
          "filter": "type IN ('motorway', 'motorway_link', 'trunk', 'trunk_link', 'construction', 'primary', 'primary_link', 'rail', 'secondary', 'secondary_link', 'tertiary', 'tertiary_link', 'miniature', 'narrow_gauge', 'dismantled', 'abandoned', 'disused', 'razed', 'light_rail', 'preserved', 'proposed', 'tram', 'funicular', 'monorail', 'taxiway', 'runway', 'raceway', 'residential', 'service', 'unclassified') OR class IN ('railway')",
          "source": null
        },
        {
          "zoom_level": "z10-12",
          "view_name": "mv_transport_lines_z10_12",
          "tolerance": "20m",
          "min_area": null,
          "filter": "type IN ('motorway', 'motorway_link', 'trunk', 'trunk_link', 'construction', 'primary', 'primary_link', 'rail', 'secondary', 'secondary_link', 'tertiary', 'tertiary_link', 'miniature', 'narrow_gauge', 'dismantled', 'abandoned', 'disused', 'razed', 'light_rail', 'preserved', 'proposed', 'tram', 'funicular', 'monorail', 'taxiway', 'runway') OR class IN ('railway')",
          "source": null
        },
        {
          "zoom_level": "z8-9",
          "view_name": "mv_transport_lines_z8_9",
          "tolerance": "100m",
          "min_area": null,
          "filter": "(Inherited from z10-12)",
          "source": null
        },
        {
          "zoom_level": "z6-7",
          "view_name": "mv_transport_lines_z6_7",
          "tolerance": "200m",
          "min_area": null,
          "filter": "type IN ('motorway', 'motorway_link', 'trunk', 'trunk_link', 'construction', 'primary', 'primary_link', 'rail', 'secondary', 'secondary_link') OR class IN ('railway')",
          "source": null
        },
        {
          "zoom_level": "z5",
          "view_name": "mv_transport_lines_z5",
          "tolerance": "1000m",
          "min_area": null,
          "filter": "(Inherited from z6-7)",
          "source": null
        }
      ],
      "description": "OpenhistoricalMap transport lines, contains transportation network lines (roads, highways, railways, tramways, runways, etc.) with route relations support",
      "details": [
        "Combines ways and relations (route relations)",
        "Supports highway construction tag handling (converts 'construction' tag to type)",
        "Includes multilingual name columns dynamically from languages table"
      ],
      "source_file": "queries/ohm_mviews/transport_lines.sql",
      "source_file_name": "transport_lines.sql"
    },
    {
      "layers": [
        "transport_areas",
        "transport_points_centroids"
      ],
      "tegola_config": "config/providers/transport_areas.toml, config/providers/transport_points_centroids.toml",
      "filters_per_zoom_level": [
        {
          "zoom_level": "z16-20",
          "view_name": "mv_transport_areas_z16_20",
          "tolerance": "0m",
          "min_area": "0",
          "filter": "NOT (class = 'highway' AND type IN (...))",
          "source": null
        },
        {
          "zoom_level": "z13-15",
          "view_name": "mv_transport_areas_z13_15",
          "tolerance": "5m",
          "min_area": "0",
          "filter": "(all from parent)",
          "source": null
        },
        {
          "zoom_level": "z10-12",
          "view_name": "mv_transport_areas_z10_12",
          "tolerance": "20m",
          "min_area": "100",
          "filter": "type IN ('aerodrome','apron','terminal')",
          "source": null
        }
      ],
      "description": "OpenhistoricalMap transport areas, contains transportation infrastructure areas (airports, terminals, aprons, railway stations, etc.)",
      "details": [
        "Excludes closed highways (see https://github.com/OpenHistoricalMap/issues/issues/1194)",
        "Includes aerodrome, apron, and terminal types (see https://github.com/OpenHistoricalMap/issues/issues/1083, https://github.com/OpenHistoricalMap/issues/issues/1141)",
        "Points centroids are created from areas and points for higher zoom levels"
      ],
      "source_file": "queries/ohm_mviews/transport_areas.sql",
      "source_file_name": "transport_areas.sql"
    },
    {
      "layers": [
        "amenity_areas"
      ],
      "tegola_config": "config/providers/amenity_areas.toml",
      "filters_per_zoom_level": [
        {
          "zoom_level": "z16-20",
          "view_name": "mv_amenity_areas_z16_20",
          "tolerance": "0m",
          "min_area": "0",
          "filter": "(all)",
          "source": "osm_amenity_areas"
        },
        {
          "zoom_level": "z14-15",
          "view_name": "mv_amenity_areas_z14_15",
          "tolerance": "5m",
          "min_area": "5000",
          "filter": "(inherited from z16-20)",
          "source": "mv_amenity_areas_z16_20"
        }
      ],
      "description": "OpenhistoricalMap amenity areas, contains amenity features as polygons (shops, restaurants, schools, hospitals, etc.)",
      "details": [],
      "source_file": "queries/ohm_mviews/amenity.sql",
      "source_file_name": "amenity.sql"
    },
    {
      "layers": [
        "amenity_points_centroids"
      ],
      "tegola_config": "config/providers/amenity_points_centroids.toml",
      "filters_per_zoom_level": [
        {
          "zoom_level": "z16-20",
          "view_name": "mv_amenity_points_centroids_z16_20",
          "tolerance": null,
          "min_area": null,
          "filter": "Name IS NOT NULL AND Name <> ''",
          "source": "mv_amenity_areas_z16_20"
        },
        {
          "zoom_level": "z14-15",
          "view_name": "mv_amenity_points_centroids_z14_15",
          "tolerance": null,
          "min_area": null,
          "filter": "Name IS NOT NULL AND Name <> ''",
          "source": "mv_amenity_areas_z14_15"
        }
      ],
      "description": "OpenhistoricalMap amenity points centroids, combines centroids from amenity polygons with point features representing amenities",
      "details": [
        "Combines centroids from amenity areas with points from osm_amenity_points",
        "Only includes features with names"
      ],
      "source_file": "queries/ohm_mviews/amenity.sql",
      "source_file_name": "amenity.sql"
    },
    {
      "layers": [
        "land_ohm_maritime"
      ],
      "tegola_config": "config/providers/admin_boundaries_maritime.toml",
      "filters_per_zoom_level": [
        {
          "zoom_level": "z10-15",
          "view_name": "mv_admin_maritime_lines_z10_15",
          "tolerance": "10m",
          "min_area": null,
          "filter": "maritime = 'yes'",
          "source": null
        },
        {
          "zoom_level": "z6-9",
          "view_name": "mv_admin_maritime_lines_z6_9",
          "tolerance": "500m",
          "min_area": null,
          "filter": "maritime = 'yes'",
          "source": null
        },
        {
          "zoom_level": "z0-5",
          "view_name": "mv_admin_maritime_lines_z0_5_v2",
          "tolerance": "2000m",
          "min_area": null,
          "filter": "maritime = 'yes'",
          "source": null
        }
      ],
      "description": "OpenhistoricalMap maritime admin boundaries, contains maritime administrative boundary lines (territorial waters, exclusive economic zones, etc.)",
      "details": [
        "Filters boundaries from osm_admin_lines where maritime = 'yes' tag is present"
      ],
      "source_file": "queries/ohm_mviews/admin_boundaries_maritime.sql",
      "source_file_name": "admin_boundaries_maritime.sql"
    },
    {
      "layers": [
        "land_ohm_lines"
      ],
      "tegola_config": "config/providers/admin_boundaries_lines.toml",
      "filters_per_zoom_level": [
        {
          "zoom_level": "z16-20",
          "view_name": "mv_admin_boundaries_lines_z16_20",
          "tolerance": "1m",
          "min_area": null,
          "filter": "admin_level IN (1,2,3,4,5,6,7,8,9,10,11)",
          "source": "mv_admin_boundaries_relations_ways"
        },
        {
          "zoom_level": "z13-15",
          "view_name": "mv_admin_boundaries_lines_z13_15",
          "tolerance": "5m",
          "min_area": null,
          "filter": "admin_level IN (1,2,3,4,5,6,7,8,9,10)",
          "source": "mv_admin_boundaries_lines_z16_20"
        },
        {
          "zoom_level": "z10-12",
          "view_name": "mv_admin_boundaries_lines_z10_12",
          "tolerance": "20m",
          "min_area": null,
          "filter": "(inherited from z13-15)",
          "source": "mv_admin_boundaries_lines_z13_15"
        },
        {
          "zoom_level": "z8-9",
          "view_name": "mv_admin_boundaries_lines_z8_9",
          "tolerance": "100m",
          "min_area": null,
          "filter": "admin_level IN (1,2,3,4,5,6,7,8,9)",
          "source": "mv_admin_boundaries_lines_z10_12"
        },
        {
          "zoom_level": "z6-7",
          "view_name": "mv_admin_boundaries_lines_z6_7",
          "tolerance": "200m",
          "min_area": null,
          "filter": "admin_level IN (1,2,3,4,5,6)",
          "source": "mv_admin_boundaries_lines_z8_9"
        },
        {
          "zoom_level": "z3-5",
          "view_name": "mv_admin_boundaries_lines_z3_5",
          "tolerance": "1000m",
          "min_area": null,
          "filter": "admin_level IN (1,2,3,4)",
          "source": "mv_admin_boundaries_lines_z6_7"
        },
        {
          "zoom_level": "z0-2",
          "view_name": "mv_admin_boundaries_lines_z0_2",
          "tolerance": "5000m",
          "min_area": null,
          "filter": "admin_level IN (1,2)",
          "source": "mv_admin_boundaries_lines_z3_5"
        }
      ],
      "description": "OpenhistoricalMap admin boundaries lines, contains administrative boundary lines (country borders, state/province boundaries, etc.) with temporal information",
      "details": [
        "Combines data from relations (osm_relation_members_boundaries) and ways (osm_admin_lines)",
        "Merges adjacent lines with overlapping or continuous date ranges (start_decdate/end_decdate) grouped by admin_level, member, and type",
        "Uses admin_level to filter boundaries by administrative level (higher levels shown at lower zooms)"
      ],
      "source_file": "queries/ohm_mviews/admin_boundaries_lines.sql",
      "source_file_name": "admin_boundaries_lines.sql"
    },
    {
      "layers": [
        "buildings"
      ],
      "tegola_config": "config/providers/buildings_areas.toml",
      "filters_per_zoom_level": [
        {
          "zoom_level": "z16-20",
          "view_name": "mv_buildings_areas_z16_20",
          "tolerance": "0m",
          "min_area": "0",
          "filter": "(all)",
          "source": null
        },
        {
          "zoom_level": "z14-15",
          "view_name": "mv_buildings_areas_z14_15",
          "tolerance": "5m",
          "min_area": "5000",
          "filter": "(all)",
          "source": null
        }
      ],
      "description": "OpenhistoricalMap buildings areas, contains building footprints as polygons with height information when available",
      "details": [
        "Includes height information when available"
      ],
      "source_file": "queries/ohm_mviews/buildings.sql",
      "source_file_name": "buildings.sql"
    },
    {
      "layers": [
        "buildings_points_centroids"
      ],
      "tegola_config": "config/providers/buildings_points_centroids.toml",
      "filters_per_zoom_level": [
        {
          "zoom_level": "z16-20",
          "view_name": "mv_buildings_points_centroids_z16_20",
          "tolerance": null,
          "min_area": null,
          "filter": "(all from parent mv_buildings_areas_z16_20)",
          "source": null
        },
        {
          "zoom_level": "z14-15",
          "view_name": "mv_buildings_points_centroids_z14_15",
          "tolerance": null,
          "min_area": null,
          "filter": "(all from parent mv_buildings_areas_z14_15)",
          "source": null
        }
      ],
      "description": "OpenhistoricalMap buildings points centroids, combines centroids from building polygons with point features representing buildings",
      "details": [
        "Points centroids are created from areas and points(objects) for higher zoom levels",
        "Includes height information when available",
        "Only features with names are included"
      ],
      "source_file": "queries/ohm_mviews/buildings.sql",
      "source_file_name": "buildings.sql"
    },
    {
      "layers": [
        "land_ohm_centroids"
      ],
      "tegola_config": "config/providers/admin_boundaries_centroids.toml",
      "filters_per_zoom_level": [
        {
          "zoom_level": "z16-20",
          "view_name": "mv_admin_boundaries_centroids_z16_20",
          "tolerance": null,
          "min_area": null,
          "filter": "(all from parent mv_admin_boundaries_areas_z16_20)",
          "source": null
        },
        {
          "zoom_level": "z13-15",
          "view_name": "mv_admin_boundaries_centroids_z13_15",
          "tolerance": null,
          "min_area": null,
          "filter": "(all from parent mv_admin_boundaries_areas_z13_15)",
          "source": null
        },
        {
          "zoom_level": "z10-12",
          "view_name": "mv_admin_boundaries_centroids_z10_12",
          "tolerance": null,
          "min_area": null,
          "filter": "(all from parent mv_admin_boundaries_areas_z10_12)",
          "source": null
        },
        {
          "zoom_level": "z8-9",
          "view_name": "mv_admin_boundaries_centroids_z8_9",
          "tolerance": null,
          "min_area": null,
          "filter": "(all from parent mv_admin_boundaries_areas_z8_9)",
          "source": null
        },
        {
          "zoom_level": "z6-7",
          "view_name": "mv_admin_boundaries_centroids_z6_7",
          "tolerance": null,
          "min_area": null,
          "filter": "(all from parent mv_admin_boundaries_areas_z6_7)",
          "source": null
        },
        {
          "zoom_level": "z3-5",
          "view_name": "mv_admin_boundaries_centroids_z3_5",
          "tolerance": null,
          "min_area": null,
          "filter": "(all from parent mv_admin_boundaries_areas_z3_5)",
          "source": null
        },
        {
          "zoom_level": "z0-2",
          "view_name": "mv_admin_boundaries_centroids_z0_2",
          "tolerance": null,
          "min_area": null,
          "filter": "(all from parent mv_admin_boundaries_areas_z0_2)",
          "source": null
        }
      ],
      "description": "OpenhistoricalMap admin boundaries centroids, contains point representations of administrative boundaries (centroids from polygons) for labeling",
      "details": [
        "Only features with names are included",
        "Excludes boundaries with role='label' from relation members",
        "Created from admin boundary areas using ST_MaximumInscribedCircle to calculate centroids"
      ],
      "source_file": "queries/ohm_mviews/admin_boundaries_centroids.sql",
      "source_file_name": "admin_boundaries_centroids.sql"
    },
    {
      "layers": [
        "admin_boundaries_areas"
      ],
      "tegola_config": "config/providers/admin_boundaries_polygon.toml",
      "filters_per_zoom_level": [],
      "description": "OpenhistoricalMap admin boundaries, contains administrative boundaries (countries, regions, etc.) in polygon format",
      "details": [
        "This layer contains the administrative boundaries (countries, regions, etc.) in polygon format"
      ],
      "source_file": "queries/ohm_mviews/admin_boundaries_areas.sql",
      "source_file_name": "admin_boundaries_areas.sql"
    },
    {
      "layers": [
        "other_areas"
      ],
      "tegola_config": "config/providers/other_areas.toml",
      "filters_per_zoom_level": [
        {
          "zoom_level": "z16-20",
          "view_name": "mv_other_areas_z16_20",
          "tolerance": "0m",
          "min_area": "0",
          "filter": "(all)",
          "source": null
        },
        {
          "zoom_level": "z13-15",
          "view_name": "mv_other_areas_z13_15",
          "tolerance": "5m",
          "min_area": "5000",
          "filter": "(all)",
          "source": null
        },
        {
          "zoom_level": "z10-12",
          "view_name": "mv_other_areas_z10_12",
          "tolerance": "20m",
          "min_area": "50000",
          "filter": "(all)",
          "source": null
        },
        {
          "zoom_level": "z8-9",
          "view_name": "mv_other_areas_z8_9",
          "tolerance": "100m",
          "min_area": "1000000",
          "filter": "(all)",
          "source": null
        }
      ],
      "description": "OpenhistoricalMap other areas, contains miscellaneous area features that don't fit into specific categories (catch-all layer)",
      "details": [
        "Catch-all layer for areas that don't fit into specific categories"
      ],
      "source_file": "queries/ohm_mviews/others.sql",
      "source_file_name": "others.sql"
    },
    {
      "layers": [
        "other_points_centroids"
      ],
      "tegola_config": "config/providers/other_points_centroids.toml",
      "filters_per_zoom_level": [
        {
          "zoom_level": "z16-20",
          "view_name": "mv_other_points_centroids_z16_20",
          "tolerance": null,
          "min_area": null,
          "filter": "(includes points from mv_other_points)",
          "source": null
        },
        {
          "zoom_level": "z13-15",
          "view_name": "mv_other_points_centroids_z13_15",
          "tolerance": null,
          "min_area": null,
          "filter": "(includes points from mv_other_points)",
          "source": null
        },
        {
          "zoom_level": "z10-12",
          "view_name": "mv_other_points_centroids_z10_12",
          "tolerance": null,
          "min_area": null,
          "filter": "(centroids only, no points)",
          "source": null
        },
        {
          "zoom_level": "z8-9",
          "view_name": "mv_other_points_centroids_z8_9",
          "tolerance": null,
          "min_area": null,
          "filter": "(centroids only, no points)",
          "source": null
        }
      ],
      "description": "OpenhistoricalMap other points centroids, contains point representations of miscellaneous features (centroids from polygons and point features)",
      "details": [
        "Points centroids are created from areas and points for higher zoom levels",
        "Lower zoom levels show centroids only, no points"
      ],
      "source_file": "queries/ohm_mviews/others.sql",
      "source_file_name": "others.sql"
    },
    {
      "layers": [
        "other_lines"
      ],
      "tegola_config": "config/providers/other_lines.toml",
      "filters_per_zoom_level": [
        {
          "zoom_level": "z16-20",
          "view_name": "mv_other_lines_z16_20",
          "tolerance": "0m",
          "min_area": null,
          "filter": "(all)",
          "source": null
        },
        {
          "zoom_level": "z14-15",
          "view_name": "mv_other_lines_z14_15",
          "tolerance": "5m",
          "min_area": null,
          "filter": "(all from parent)",
          "source": null
        }
      ],
      "description": "OpenhistoricalMap other lines, contains miscellaneous linear features that don't fit into specific categories (catch-all layer)",
      "details": [
        "Catch-all layer for lines that don't fit into specific categories"
      ],
      "source_file": "queries/ohm_mviews/others.sql",
      "source_file_name": "others.sql"
    },
    {
      "layers": [
        "routes_lines"
      ],
      "tegola_config": "config/providers/routes_lines.toml",
      "filters_per_zoom_level": [
        {
          "zoom_level": "z16-20",
          "view_name": "mv_routes_indexed_z16_20",
          "tolerance": "0m",
          "min_area": null,
          "filter": "(all)",
          "source": "mv_routes_indexed"
        },
        {
          "zoom_level": "z13-15",
          "view_name": "mv_routes_indexed_z13_15",
          "tolerance": "5m",
          "min_area": null,
          "filter": "(all from parent)",
          "source": "mv_routes_indexed_z16_20"
        },
        {
          "zoom_level": "z10-12",
          "view_name": "mv_routes_indexed_z10_12",
          "tolerance": "20m",
          "min_area": null,
          "filter": "(all from parent)",
          "source": "mv_routes_indexed_z13_15"
        },
        {
          "zoom_level": "z8-9",
          "view_name": "mv_routes_indexed_z8_9",
          "tolerance": "100m",
          "min_area": null,
          "filter": "(all from parent)",
          "source": "mv_routes_indexed_z10_12"
        },
        {
          "zoom_level": "z6-7",
          "view_name": "mv_routes_indexed_z6_7",
          "tolerance": "200m",
          "min_area": null,
          "filter": "(all from parent)",
          "source": "mv_routes_indexed_z8_9"
        },
        {
          "zoom_level": "z5",
          "view_name": "mv_routes_indexed_z5",
          "tolerance": "1000m",
          "min_area": null,
          "filter": "(all from parent)",
          "source": "mv_routes_indexed_z6_7"
        }
      ],
      "description": "OpenhistoricalMap routes lines, contains route relation lines.",
      "details": [
        "Combines route relations and ways objects",
        "Merges routes by date ranges (start_decdate/end_decdate) and groups by way_id and route type",
        "Supports multiple route types per way: road, train, subway, light_rail, tram, trolleybus, bus (up to 6 slots per type)",
        "Routes are ranked by priority and stored in fixed slots (route_<type>_<1-6>_ref, route_<type>_<1-6>_network, etc.)",
        "Includes route metadata: ref, network, network_wikidata, operator, name, direction",
        "Pyramid structure: each zoom level is created from the previous one with increasing simplification tolerance"
      ],
      "source_file": "queries/ohm_mviews/routes_03_mv.sql",
      "source_file_name": "routes_03_mv.sql"
    },
    {
      "layers": [
        "landuse_areas"
      ],
      "tegola_config": "config/providers/landuse_areas.toml",
      "filters_per_zoom_level": [
        {
          "zoom_level": "z16-20",
          "view_name": "mv_landuse_areas_z16_20",
          "tolerance": "0m",
          "min_area": "0",
          "filter": "NOT (type = 'water' AND class = 'natural')",
          "source": "osm_landuse_areas"
        },
        {
          "zoom_level": "z13-15",
          "view_name": "mv_landuse_areas_z13_15",
          "tolerance": "5m",
          "min_area": "10000",
          "filter": "(inherited from z16-20)",
          "source": "mv_landuse_areas_z16_20"
        },
        {
          "zoom_level": "z10-12",
          "view_name": "mv_landuse_areas_z10_12",
          "tolerance": "20m",
          "min_area": "50000",
          "filter": "(inherited from z13-15)",
          "source": "mv_landuse_areas_z13_15"
        },
        {
          "zoom_level": "z8-9",
          "view_name": "mv_landuse_areas_z8_9",
          "tolerance": "100m",
          "min_area": "1000000",
          "filter": "(inherited from z10-12)",
          "source": "mv_landuse_areas_z10_12"
        },
        {
          "zoom_level": "z6-7",
          "view_name": "mv_landuse_areas_z6_7",
          "tolerance": "200m",
          "min_area": "10000000",
          "filter": "(inherited from z8-9)",
          "source": "mv_landuse_areas_z8_9"
        }
      ],
      "description": "OpenhistoricalMap landuse areas, contains land use and land cover polygons (forests, parks, agricultural areas, etc.)",
      "details": [
        "Excludes natural=water (see https://github.com/OpenHistoricalMap/issues/issues/1197)"
      ],
      "source_file": "queries/ohm_mviews/landuse.sql",
      "source_file_name": "landuse.sql"
    },
    {
      "layers": [
        "landuse_points_centroids"
      ],
      "tegola_config": "config/providers/landuse_points_centroids.toml",
      "filters_per_zoom_level": [
        {
          "zoom_level": "z16-20",
          "view_name": "mv_landuse_points_centroids_z16_20",
          "tolerance": null,
          "min_area": null,
          "filter": "(includes points from mv_landuse_points)",
          "source": null
        },
        {
          "zoom_level": "z13-15",
          "view_name": "mv_landuse_points_centroids_z13_15",
          "tolerance": null,
          "min_area": null,
          "filter": "(includes points from mv_landuse_points)",
          "source": null
        },
        {
          "zoom_level": "z10-12",
          "view_name": "mv_landuse_points_centroids_z10_12",
          "tolerance": null,
          "min_area": null,
          "filter": "(centroids only, no points)",
          "source": null
        },
        {
          "zoom_level": "z8-9",
          "view_name": "mv_landuse_points_centroids_z8_9",
          "tolerance": null,
          "min_area": null,
          "filter": "(centroids only, no points)",
          "source": null
        },
        {
          "zoom_level": "z6-7",
          "view_name": "mv_landuse_points_centroids_z6_7",
          "tolerance": null,
          "min_area": null,
          "filter": "(centroids only, no points)",
          "source": null
        }
      ],
      "description": "OpenhistoricalMap landuse points centroids, contains point representations of land use features (centroids from polygons and point features)",
      "details": [
        "Points centroids are created from areas for higher zoom levels",
        "Includes points from osm_landuse_points for higher zoom levels",
        "Lower zoom levels show centroids only, no points"
      ],
      "source_file": "queries/ohm_mviews/landuse.sql",
      "source_file_name": "landuse.sql"
    },
    {
      "layers": [
        "landuse_lines"
      ],
      "tegola_config": "config/providers/landuse_lines.toml",
      "filters_per_zoom_level": [
        {
          "zoom_level": "z16-20",
          "view_name": "mv_landuse_lines_z16_20",
          "tolerance": "5m",
          "min_area": null,
          "filter": "type IN ('tree_row')",
          "source": null
        },
        {
          "zoom_level": "z14-15",
          "view_name": "mv_landuse_lines_z14_15",
          "tolerance": "5m",
          "min_area": null,
          "filter": "(all from parent)",
          "source": null
        }
      ],
      "description": "OpenhistoricalMap landuse lines, contains linear land use features.",
      "details": [
        "Only tree_row  is consider in this layer"
      ],
      "source_file": "queries/ohm_mviews/landuse.sql",
      "source_file_name": "landuse.sql"
    }
  ],
  "by_layer_name": {
    "place_areas": [
      {
        "layers": [
          "place_areas",
          "place_points_centroids"
        ],
        "tegola_config": "config/providers/place_areas.toml, config/providers/place_points_centroids.toml",
        "filters_per_zoom_level": [
          {
            "zoom_level": "z14-20",
            "view_name": "mv_place_areas_z14_20",
            "tolerance": "0m",
            "min_area": "0",
            "filter": "type IN ('plot','square','islet')",
            "source": null
          },
          {
            "zoom_level": "z11-20",
            "view_name": "mv_place_points_centroids_z11_20",
            "tolerance": null,
            "min_area": null,
            "filter": "type IN ('plot','square','islet') from areas, multiple types from points",
            "source": null
          },
          {
            "zoom_level": "z6-10",
            "view_name": "mv_place_points_centroids_z6_10",
            "tolerance": null,
            "min_area": null,
            "filter": "type IN ('island') from areas, multiple types from points",
            "source": null
          },
          {
            "zoom_level": "z3-5",
            "view_name": "mv_place_points_centroids_z3_5",
            "tolerance": null,
            "min_area": null,
            "filter": "type IN ('island') from areas, multiple types from points",
            "source": null
          },
          {
            "zoom_level": "z0-2",
            "view_name": "mv_place_points_centroids_z0_2",
            "tolerance": null,
            "min_area": null,
            "filter": "type IN ('island') from areas, multiple types from points",
            "source": null
          }
        ],
        "description": "OpenhistoricalMap places points centroids, contains named geographic places as points (cities, towns, villages, countries, islands, etc.) combining polygons and point features",
        "details": [
          "Combines polygons (areas) and points into centroids",
          "Includes multilingual name columns dynamically from languages table",
          "Only features with names are included"
        ],
        "source_file": "queries/ohm_mviews/places.sql",
        "source_file_name": "places.sql"
      },
      {
        "layers": [
          "place_areas"
        ],
        "tegola_config": "config/providers/place_areas.toml",
        "filters_per_zoom_level": [
          {
            "zoom_level": "z14-20",
            "view_name": "mv_place_areas_z14_20",
            "tolerance": "0m",
            "min_area": "0",
            "filter": "type IN ('plot', 'square', 'islet')",
            "source": null
          }
        ],
        "description": "OpenhistoricalMap place areas, contains named place polygons (squares, plots, islets, etc.)",
        "details": [
          "Only features with names are included"
        ],
        "source_file": "queries/ohm_mviews/places.sql",
        "source_file_name": "places.sql"
      }
    ],
    "place_points_centroids": [
      {
        "layers": [
          "place_areas",
          "place_points_centroids"
        ],
        "tegola_config": "config/providers/place_areas.toml, config/providers/place_points_centroids.toml",
        "filters_per_zoom_level": [
          {
            "zoom_level": "z14-20",
            "view_name": "mv_place_areas_z14_20",
            "tolerance": "0m",
            "min_area": "0",
            "filter": "type IN ('plot','square','islet')",
            "source": null
          },
          {
            "zoom_level": "z11-20",
            "view_name": "mv_place_points_centroids_z11_20",
            "tolerance": null,
            "min_area": null,
            "filter": "type IN ('plot','square','islet') from areas, multiple types from points",
            "source": null
          },
          {
            "zoom_level": "z6-10",
            "view_name": "mv_place_points_centroids_z6_10",
            "tolerance": null,
            "min_area": null,
            "filter": "type IN ('island') from areas, multiple types from points",
            "source": null
          },
          {
            "zoom_level": "z3-5",
            "view_name": "mv_place_points_centroids_z3_5",
            "tolerance": null,
            "min_area": null,
            "filter": "type IN ('island') from areas, multiple types from points",
            "source": null
          },
          {
            "zoom_level": "z0-2",
            "view_name": "mv_place_points_centroids_z0_2",
            "tolerance": null,
            "min_area": null,
            "filter": "type IN ('island') from areas, multiple types from points",
            "source": null
          }
        ],
        "description": "OpenhistoricalMap places points centroids, contains named geographic places as points (cities, towns, villages, countries, islands, etc.) combining polygons and point features",
        "details": [
          "Combines polygons (areas) and points into centroids",
          "Includes multilingual name columns dynamically from languages table",
          "Only features with names are included"
        ],
        "source_file": "queries/ohm_mviews/places.sql",
        "source_file_name": "places.sql"
      }
    ],
    "water_areas": [
      {
        "layers": [
          "water_areas"
        ],
        "tegola_config": "config/providers/water_areas.toml",
        "filters_per_zoom_level": [
          {
            "zoom_level": "z16-20",
            "view_name": "mv_water_areas_z16_20",
            "tolerance": "0m",
            "min_area": "0",
            "filter": null,
            "source": "osm_water_areas"
          },
          {
            "zoom_level": "z13-15",
            "view_name": "mv_water_areas_z13_15",
            "tolerance": "5m",
            "min_area": "0",
            "filter": null,
            "source": "mv_water_areas_z16_20"
          },
          {
            "zoom_level": "z10-12",
            "view_name": "mv_water_areas_z10_12",
            "tolerance": "20m",
            "min_area": "100",
            "filter": null,
            "source": "mv_water_areas_z13_15"
          },
          {
            "zoom_level": "z8-9",
            "view_name": "mv_water_areas_z8_9",
            "tolerance": "100m",
            "min_area": "10000",
            "filter": null,
            "source": "mv_water_areas_z10_12"
          },
          {
            "zoom_level": "z6-7",
            "view_name": "mv_water_areas_z6_7",
            "tolerance": "200m",
            "min_area": "1000000",
            "filter": null,
            "source": "mv_water_areas_z8_9"
          },
          {
            "zoom_level": "z3-5",
            "view_name": "mv_water_areas_z3_5",
            "tolerance": "1000m",
            "min_area": "50000000",
            "filter": null,
            "source": "mv_water_areas_z6_7"
          },
          {
            "zoom_level": "z0-2",
            "view_name": "mv_water_areas_z0_2",
            "tolerance": "5000m",
            "min_area": "100000000",
            "filter": null,
            "source": "mv_water_areas_z3_5"
          }
        ],
        "description": "OpenhistoricalMap water areas, contains water body polygons (lakes, ponds, rivers, canals, etc.)",
        "details": [],
        "source_file": "queries/ohm_mviews/water.sql",
        "source_file_name": "water.sql"
      }
    ],
    "water_areas_centroids": [
      {
        "layers": [
          "water_areas_centroids"
        ],
        "tegola_config": "config/providers/water_areas_centroids.toml",
        "filters_per_zoom_level": [
          {
            "zoom_level": "z16-20",
            "view_name": "mv_water_areas_centroids_z16_20",
            "tolerance": null,
            "min_area": null,
            "filter": "name IS NOT NULL AND name <> ''",
            "source": null
          },
          {
            "zoom_level": "z13-15",
            "view_name": "mv_water_areas_centroids_z13_15",
            "tolerance": null,
            "min_area": null,
            "filter": "name IS NOT NULL AND name <> ''",
            "source": null
          },
          {
            "zoom_level": "z10-12",
            "view_name": "mv_water_areas_centroids_z10_12",
            "tolerance": null,
            "min_area": null,
            "filter": "name IS NOT NULL AND name <> ''",
            "source": null
          },
          {
            "zoom_level": "z8-9",
            "view_name": "mv_water_areas_centroids_z8_9",
            "tolerance": null,
            "min_area": null,
            "filter": "name IS NOT NULL AND name <> ''",
            "source": null
          }
        ],
        "description": "OpenhistoricalMap water areas centroids, contains point representations of named water bodies (centroids from polygons)",
        "details": [
          "Created from water areas using centroids, only for named features"
        ],
        "source_file": "queries/ohm_mviews/water.sql",
        "source_file_name": "water.sql"
      }
    ],
    "water_lines": [
      {
        "layers": [
          "water_lines"
        ],
        "tegola_config": "config/providers/water_lines.toml",
        "filters_per_zoom_level": [
          {
            "zoom_level": "z16-20",
            "view_name": "mv_water_lines_z16_20",
            "tolerance": "0m",
            "min_area": null,
            "filter": "type IN ('river','canal','cliff','dam','stream','ditch','drain')",
            "source": "osm_water_lines"
          },
          {
            "zoom_level": "z13-15",
            "view_name": "mv_water_lines_z13_15",
            "tolerance": "5m",
            "min_area": null,
            "filter": "type IN ('river','canal','cliff','dam','stream')",
            "source": "mv_water_lines_z16_20"
          },
          {
            "zoom_level": "z10-12",
            "view_name": "mv_water_lines_z10_12",
            "tolerance": "20m",
            "min_area": null,
            "filter": "type IN ('river','canal','cliff','dam')",
            "source": "mv_water_lines_z13_15"
          },
          {
            "zoom_level": "z8-9",
            "view_name": "mv_water_lines_z8_9",
            "tolerance": "100m",
            "min_area": null,
            "filter": "type IN ('river','canal')",
            "source": "mv_water_lines_z10_12"
          }
        ],
        "description": "OpenhistoricalMap water lines, contains linear water features (rivers, canals, streams, ditches, dams, etc.)",
        "details": [],
        "source_file": "queries/ohm_mviews/water.sql",
        "source_file_name": "water.sql"
      }
    ],
    "transport_lines": [
      {
        "layers": [
          "transport_lines"
        ],
        "tegola_config": "config/providers/transport_lines.toml",
        "filters_per_zoom_level": [
          {
            "zoom_level": "z16-20",
            "view_name": "mv_transport_lines_z16_20",
            "tolerance": "0m",
            "min_area": null,
            "filter": "all types OR class IN ('railway', 'route')",
            "source": null
          },
          {
            "zoom_level": "z13-15",
            "view_name": "mv_transport_lines_z13_15",
            "tolerance": "5m",
            "min_area": null,
            "filter": "type IN ('motorway', 'motorway_link', 'trunk', 'trunk_link', 'construction', 'primary', 'primary_link', 'rail', 'secondary', 'secondary_link', 'tertiary', 'tertiary_link', 'miniature', 'narrow_gauge', 'dismantled', 'abandoned', 'disused', 'razed', 'light_rail', 'preserved', 'proposed', 'tram', 'funicular', 'monorail', 'taxiway', 'runway', 'raceway', 'residential', 'service', 'unclassified') OR class IN ('railway')",
            "source": null
          },
          {
            "zoom_level": "z10-12",
            "view_name": "mv_transport_lines_z10_12",
            "tolerance": "20m",
            "min_area": null,
            "filter": "type IN ('motorway', 'motorway_link', 'trunk', 'trunk_link', 'construction', 'primary', 'primary_link', 'rail', 'secondary', 'secondary_link', 'tertiary', 'tertiary_link', 'miniature', 'narrow_gauge', 'dismantled', 'abandoned', 'disused', 'razed', 'light_rail', 'preserved', 'proposed', 'tram', 'funicular', 'monorail', 'taxiway', 'runway') OR class IN ('railway')",
            "source": null
          },
          {
            "zoom_level": "z8-9",
            "view_name": "mv_transport_lines_z8_9",
            "tolerance": "100m",
            "min_area": null,
            "filter": "(Inherited from z10-12)",
            "source": null
          },
          {
            "zoom_level": "z6-7",
            "view_name": "mv_transport_lines_z6_7",
            "tolerance": "200m",
            "min_area": null,
            "filter": "type IN ('motorway', 'motorway_link', 'trunk', 'trunk_link', 'construction', 'primary', 'primary_link', 'rail', 'secondary', 'secondary_link') OR class IN ('railway')",
            "source": null
          },
          {
            "zoom_level": "z5",
            "view_name": "mv_transport_lines_z5",
            "tolerance": "1000m",
            "min_area": null,
            "filter": "(Inherited from z6-7)",
            "source": null
          }
        ],
        "description": "OpenhistoricalMap transport lines, contains transportation network lines (roads, highways, railways, tramways, runways, etc.) with route relations support",
        "details": [
          "Combines ways and relations (route relations)",
          "Supports highway construction tag handling (converts 'construction' tag to type)",
          "Includes multilingual name columns dynamically from languages table"
        ],
        "source_file": "queries/ohm_mviews/transport_lines.sql",
        "source_file_name": "transport_lines.sql"
      }
    ],
    "transport_areas": [
      {
        "layers": [
          "transport_areas",
          "transport_points_centroids"
        ],
        "tegola_config": "config/providers/transport_areas.toml, config/providers/transport_points_centroids.toml",
        "filters_per_zoom_level": [
          {
            "zoom_level": "z16-20",
            "view_name": "mv_transport_areas_z16_20",
            "tolerance": "0m",
            "min_area": "0",
            "filter": "NOT (class = 'highway' AND type IN (...))",
            "source": null
          },
          {
            "zoom_level": "z13-15",
            "view_name": "mv_transport_areas_z13_15",
            "tolerance": "5m",
            "min_area": "0",
            "filter": "(all from parent)",
            "source": null
          },
          {
            "zoom_level": "z10-12",
            "view_name": "mv_transport_areas_z10_12",
            "tolerance": "20m",
            "min_area": "100",
            "filter": "type IN ('aerodrome','apron','terminal')",
            "source": null
          }
        ],
        "description": "OpenhistoricalMap transport areas, contains transportation infrastructure areas (airports, terminals, aprons, railway stations, etc.)",
        "details": [
          "Excludes closed highways (see https://github.com/OpenHistoricalMap/issues/issues/1194)",
          "Includes aerodrome, apron, and terminal types (see https://github.com/OpenHistoricalMap/issues/issues/1083, https://github.com/OpenHistoricalMap/issues/issues/1141)",
          "Points centroids are created from areas and points for higher zoom levels"
        ],
        "source_file": "queries/ohm_mviews/transport_areas.sql",
        "source_file_name": "transport_areas.sql"
      }
    ],
    "transport_points_centroids": [
      {
        "layers": [
          "transport_areas",
          "transport_points_centroids"
        ],
        "tegola_config": "config/providers/transport_areas.toml, config/providers/transport_points_centroids.toml",
        "filters_per_zoom_level": [
          {
            "zoom_level": "z16-20",
            "view_name": "mv_transport_areas_z16_20",
            "tolerance": "0m",
            "min_area": "0",
            "filter": "NOT (class = 'highway' AND type IN (...))",
            "source": null
          },
          {
            "zoom_level": "z13-15",
            "view_name": "mv_transport_areas_z13_15",
            "tolerance": "5m",
            "min_area": "0",
            "filter": "(all from parent)",
            "source": null
          },
          {
            "zoom_level": "z10-12",
            "view_name": "mv_transport_areas_z10_12",
            "tolerance": "20m",
            "min_area": "100",
            "filter": "type IN ('aerodrome','apron','terminal')",
            "source": null
          }
        ],
        "description": "OpenhistoricalMap transport areas, contains transportation infrastructure areas (airports, terminals, aprons, railway stations, etc.)",
        "details": [
          "Excludes closed highways (see https://github.com/OpenHistoricalMap/issues/issues/1194)",
          "Includes aerodrome, apron, and terminal types (see https://github.com/OpenHistoricalMap/issues/issues/1083, https://github.com/OpenHistoricalMap/issues/issues/1141)",
          "Points centroids are created from areas and points for higher zoom levels"
        ],
        "source_file": "queries/ohm_mviews/transport_areas.sql",
        "source_file_name": "transport_areas.sql"
      }
    ],
    "amenity_areas": [
      {
        "layers": [
          "amenity_areas"
        ],
        "tegola_config": "config/providers/amenity_areas.toml",
        "filters_per_zoom_level": [
          {
            "zoom_level": "z16-20",
            "view_name": "mv_amenity_areas_z16_20",
            "tolerance": "0m",
            "min_area": "0",
            "filter": "(all)",
            "source": "osm_amenity_areas"
          },
          {
            "zoom_level": "z14-15",
            "view_name": "mv_amenity_areas_z14_15",
            "tolerance": "5m",
            "min_area": "5000",
            "filter": "(inherited from z16-20)",
            "source": "mv_amenity_areas_z16_20"
          }
        ],
        "description": "OpenhistoricalMap amenity areas, contains amenity features as polygons (shops, restaurants, schools, hospitals, etc.)",
        "details": [],
        "source_file": "queries/ohm_mviews/amenity.sql",
        "source_file_name": "amenity.sql"
      }
    ],
    "amenity_points_centroids": [
      {
        "layers": [
          "amenity_points_centroids"
        ],
        "tegola_config": "config/providers/amenity_points_centroids.toml",
        "filters_per_zoom_level": [
          {
            "zoom_level": "z16-20",
            "view_name": "mv_amenity_points_centroids_z16_20",
            "tolerance": null,
            "min_area": null,
            "filter": "Name IS NOT NULL AND Name <> ''",
            "source": "mv_amenity_areas_z16_20"
          },
          {
            "zoom_level": "z14-15",
            "view_name": "mv_amenity_points_centroids_z14_15",
            "tolerance": null,
            "min_area": null,
            "filter": "Name IS NOT NULL AND Name <> ''",
            "source": "mv_amenity_areas_z14_15"
          }
        ],
        "description": "OpenhistoricalMap amenity points centroids, combines centroids from amenity polygons with point features representing amenities",
        "details": [
          "Combines centroids from amenity areas with points from osm_amenity_points",
          "Only includes features with names"
        ],
        "source_file": "queries/ohm_mviews/amenity.sql",
        "source_file_name": "amenity.sql"
      }
    ],
    "land_ohm_maritime": [
      {
        "layers": [
          "land_ohm_maritime"
        ],
        "tegola_config": "config/providers/admin_boundaries_maritime.toml",
        "filters_per_zoom_level": [
          {
            "zoom_level": "z10-15",
            "view_name": "mv_admin_maritime_lines_z10_15",
            "tolerance": "10m",
            "min_area": null,
            "filter": "maritime = 'yes'",
            "source": null
          },
          {
            "zoom_level": "z6-9",
            "view_name": "mv_admin_maritime_lines_z6_9",
            "tolerance": "500m",
            "min_area": null,
            "filter": "maritime = 'yes'",
            "source": null
          },
          {
            "zoom_level": "z0-5",
            "view_name": "mv_admin_maritime_lines_z0_5_v2",
            "tolerance": "2000m",
            "min_area": null,
            "filter": "maritime = 'yes'",
            "source": null
          }
        ],
        "description": "OpenhistoricalMap maritime admin boundaries, contains maritime administrative boundary lines (territorial waters, exclusive economic zones, etc.)",
        "details": [
          "Filters boundaries from osm_admin_lines where maritime = 'yes' tag is present"
        ],
        "source_file": "queries/ohm_mviews/admin_boundaries_maritime.sql",
        "source_file_name": "admin_boundaries_maritime.sql"
      }
    ],
    "land_ohm_lines": [
      {
        "layers": [
          "land_ohm_lines"
        ],
        "tegola_config": "config/providers/admin_boundaries_lines.toml",
        "filters_per_zoom_level": [
          {
            "zoom_level": "z16-20",
            "view_name": "mv_admin_boundaries_lines_z16_20",
            "tolerance": "1m",
            "min_area": null,
            "filter": "admin_level IN (1,2,3,4,5,6,7,8,9,10,11)",
            "source": "mv_admin_boundaries_relations_ways"
          },
          {
            "zoom_level": "z13-15",
            "view_name": "mv_admin_boundaries_lines_z13_15",
            "tolerance": "5m",
            "min_area": null,
            "filter": "admin_level IN (1,2,3,4,5,6,7,8,9,10)",
            "source": "mv_admin_boundaries_lines_z16_20"
          },
          {
            "zoom_level": "z10-12",
            "view_name": "mv_admin_boundaries_lines_z10_12",
            "tolerance": "20m",
            "min_area": null,
            "filter": "(inherited from z13-15)",
            "source": "mv_admin_boundaries_lines_z13_15"
          },
          {
            "zoom_level": "z8-9",
            "view_name": "mv_admin_boundaries_lines_z8_9",
            "tolerance": "100m",
            "min_area": null,
            "filter": "admin_level IN (1,2,3,4,5,6,7,8,9)",
            "source": "mv_admin_boundaries_lines_z10_12"
          },
          {
            "zoom_level": "z6-7",
            "view_name": "mv_admin_boundaries_lines_z6_7",
            "tolerance": "200m",
            "min_area": null,
            "filter": "admin_level IN (1,2,3,4,5,6)",
            "source": "mv_admin_boundaries_lines_z8_9"
          },
          {
            "zoom_level": "z3-5",
            "view_name": "mv_admin_boundaries_lines_z3_5",
            "tolerance": "1000m",
            "min_area": null,
            "filter": "admin_level IN (1,2,3,4)",
            "source": "mv_admin_boundaries_lines_z6_7"
          },
          {
            "zoom_level": "z0-2",
            "view_name": "mv_admin_boundaries_lines_z0_2",
            "tolerance": "5000m",
            "min_area": null,
            "filter": "admin_level IN (1,2)",
            "source": "mv_admin_boundaries_lines_z3_5"
          }
        ],
        "description": "OpenhistoricalMap admin boundaries lines, contains administrative boundary lines (country borders, state/province boundaries, etc.) with temporal information",
        "details": [
          "Combines data from relations (osm_relation_members_boundaries) and ways (osm_admin_lines)",
          "Merges adjacent lines with overlapping or continuous date ranges (start_decdate/end_decdate) grouped by admin_level, member, and type",
          "Uses admin_level to filter boundaries by administrative level (higher levels shown at lower zooms)"
        ],
        "source_file": "queries/ohm_mviews/admin_boundaries_lines.sql",
        "source_file_name": "admin_boundaries_lines.sql"
      }
    ],
    "buildings": [
      {
        "layers": [
          "buildings"
        ],
        "tegola_config": "config/providers/buildings_areas.toml",
        "filters_per_zoom_level": [
          {
            "zoom_level": "z16-20",
            "view_name": "mv_buildings_areas_z16_20",
            "tolerance": "0m",
            "min_area": "0",
            "filter": "(all)",
            "source": null
          },
          {
            "zoom_level": "z14-15",
            "view_name": "mv_buildings_areas_z14_15",
            "tolerance": "5m",
            "min_area": "5000",
            "filter": "(all)",
            "source": null
          }
        ],
        "description": "OpenhistoricalMap buildings areas, contains building footprints as polygons with height information when available",
        "details": [
          "Includes height information when available"
        ],
        "source_file": "queries/ohm_mviews/buildings.sql",
        "source_file_name": "buildings.sql"
      }
    ],
    "buildings_points_centroids": [
      {
        "layers": [
          "buildings_points_centroids"
        ],
        "tegola_config": "config/providers/buildings_points_centroids.toml",
        "filters_per_zoom_level": [
          {
            "zoom_level": "z16-20",
            "view_name": "mv_buildings_points_centroids_z16_20",
            "tolerance": null,
            "min_area": null,
            "filter": "(all from parent mv_buildings_areas_z16_20)",
            "source": null
          },
          {
            "zoom_level": "z14-15",
            "view_name": "mv_buildings_points_centroids_z14_15",
            "tolerance": null,
            "min_area": null,
            "filter": "(all from parent mv_buildings_areas_z14_15)",
            "source": null
          }
        ],
        "description": "OpenhistoricalMap buildings points centroids, combines centroids from building polygons with point features representing buildings",
        "details": [
          "Points centroids are created from areas and points(objects) for higher zoom levels",
          "Includes height information when available",
          "Only features with names are included"
        ],
        "source_file": "queries/ohm_mviews/buildings.sql",
        "source_file_name": "buildings.sql"
      }
    ],
    "land_ohm_centroids": [
      {
        "layers": [
          "land_ohm_centroids"
        ],
        "tegola_config": "config/providers/admin_boundaries_centroids.toml",
        "filters_per_zoom_level": [
          {
            "zoom_level": "z16-20",
            "view_name": "mv_admin_boundaries_centroids_z16_20",
            "tolerance": null,
            "min_area": null,
            "filter": "(all from parent mv_admin_boundaries_areas_z16_20)",
            "source": null
          },
          {
            "zoom_level": "z13-15",
            "view_name": "mv_admin_boundaries_centroids_z13_15",
            "tolerance": null,
            "min_area": null,
            "filter": "(all from parent mv_admin_boundaries_areas_z13_15)",
            "source": null
          },
          {
            "zoom_level": "z10-12",
            "view_name": "mv_admin_boundaries_centroids_z10_12",
            "tolerance": null,
            "min_area": null,
            "filter": "(all from parent mv_admin_boundaries_areas_z10_12)",
            "source": null
          },
          {
            "zoom_level": "z8-9",
            "view_name": "mv_admin_boundaries_centroids_z8_9",
            "tolerance": null,
            "min_area": null,
            "filter": "(all from parent mv_admin_boundaries_areas_z8_9)",
            "source": null
          },
          {
            "zoom_level": "z6-7",
            "view_name": "mv_admin_boundaries_centroids_z6_7",
            "tolerance": null,
            "min_area": null,
            "filter": "(all from parent mv_admin_boundaries_areas_z6_7)",
            "source": null
          },
          {
            "zoom_level": "z3-5",
            "view_name": "mv_admin_boundaries_centroids_z3_5",
            "tolerance": null,
            "min_area": null,
            "filter": "(all from parent mv_admin_boundaries_areas_z3_5)",
            "source": null
          },
          {
            "zoom_level": "z0-2",
            "view_name": "mv_admin_boundaries_centroids_z0_2",
            "tolerance": null,
            "min_area": null,
            "filter": "(all from parent mv_admin_boundaries_areas_z0_2)",
            "source": null
          }
        ],
        "description": "OpenhistoricalMap admin boundaries centroids, contains point representations of administrative boundaries (centroids from polygons) for labeling",
        "details": [
          "Only features with names are included",
          "Excludes boundaries with role='label' from relation members",
          "Created from admin boundary areas using ST_MaximumInscribedCircle to calculate centroids"
        ],
        "source_file": "queries/ohm_mviews/admin_boundaries_centroids.sql",
        "source_file_name": "admin_boundaries_centroids.sql"
      }
    ],
    "admin_boundaries_areas": [
      {
        "layers": [
          "admin_boundaries_areas"
        ],
        "tegola_config": "config/providers/admin_boundaries_polygon.toml",
        "filters_per_zoom_level": [],
        "description": "OpenhistoricalMap admin boundaries, contains administrative boundaries (countries, regions, etc.) in polygon format",
        "details": [
          "This layer contains the administrative boundaries (countries, regions, etc.) in polygon format"
        ],
        "source_file": "queries/ohm_mviews/admin_boundaries_areas.sql",
        "source_file_name": "admin_boundaries_areas.sql"
      }
    ],
    "other_areas": [
      {
        "layers": [
          "other_areas"
        ],
        "tegola_config": "config/providers/other_areas.toml",
        "filters_per_zoom_level": [
          {
            "zoom_level": "z16-20",
            "view_name": "mv_other_areas_z16_20",
            "tolerance": "0m",
            "min_area": "0",
            "filter": "(all)",
            "source": null
          },
          {
            "zoom_level": "z13-15",
            "view_name": "mv_other_areas_z13_15",
            "tolerance": "5m",
            "min_area": "5000",
            "filter": "(all)",
            "source": null
          },
          {
            "zoom_level": "z10-12",
            "view_name": "mv_other_areas_z10_12",
            "tolerance": "20m",
            "min_area": "50000",
            "filter": "(all)",
            "source": null
          },
          {
            "zoom_level": "z8-9",
            "view_name": "mv_other_areas_z8_9",
            "tolerance": "100m",
            "min_area": "1000000",
            "filter": "(all)",
            "source": null
          }
        ],
        "description": "OpenhistoricalMap other areas, contains miscellaneous area features that don't fit into specific categories (catch-all layer)",
        "details": [
          "Catch-all layer for areas that don't fit into specific categories"
        ],
        "source_file": "queries/ohm_mviews/others.sql",
        "source_file_name": "others.sql"
      }
    ],
    "other_points_centroids": [
      {
        "layers": [
          "other_points_centroids"
        ],
        "tegola_config": "config/providers/other_points_centroids.toml",
        "filters_per_zoom_level": [
          {
            "zoom_level": "z16-20",
            "view_name": "mv_other_points_centroids_z16_20",
            "tolerance": null,
            "min_area": null,
            "filter": "(includes points from mv_other_points)",
            "source": null
          },
          {
            "zoom_level": "z13-15",
            "view_name": "mv_other_points_centroids_z13_15",
            "tolerance": null,
            "min_area": null,
            "filter": "(includes points from mv_other_points)",
            "source": null
          },
          {
            "zoom_level": "z10-12",
            "view_name": "mv_other_points_centroids_z10_12",
            "tolerance": null,
            "min_area": null,
            "filter": "(centroids only, no points)",
            "source": null
          },
          {
            "zoom_level": "z8-9",
            "view_name": "mv_other_points_centroids_z8_9",
            "tolerance": null,
            "min_area": null,
            "filter": "(centroids only, no points)",
            "source": null
          }
        ],
        "description": "OpenhistoricalMap other points centroids, contains point representations of miscellaneous features (centroids from polygons and point features)",
        "details": [
          "Points centroids are created from areas and points for higher zoom levels",
          "Lower zoom levels show centroids only, no points"
        ],
        "source_file": "queries/ohm_mviews/others.sql",
        "source_file_name": "others.sql"
      }
    ],
    "other_lines": [
      {
        "layers": [
          "other_lines"
        ],
        "tegola_config": "config/providers/other_lines.toml",
        "filters_per_zoom_level": [
          {
            "zoom_level": "z16-20",
            "view_name": "mv_other_lines_z16_20",
            "tolerance": "0m",
            "min_area": null,
            "filter": "(all)",
            "source": null
          },
          {
            "zoom_level": "z14-15",
            "view_name": "mv_other_lines_z14_15",
            "tolerance": "5m",
            "min_area": null,
            "filter": "(all from parent)",
            "source": null
          }
        ],
        "description": "OpenhistoricalMap other lines, contains miscellaneous linear features that don't fit into specific categories (catch-all layer)",
        "details": [
          "Catch-all layer for lines that don't fit into specific categories"
        ],
        "source_file": "queries/ohm_mviews/others.sql",
        "source_file_name": "others.sql"
      }
    ],
    "routes_lines": [
      {
        "layers": [
          "routes_lines"
        ],
        "tegola_config": "config/providers/routes_lines.toml",
        "filters_per_zoom_level": [
          {
            "zoom_level": "z16-20",
            "view_name": "mv_routes_indexed_z16_20",
            "tolerance": "0m",
            "min_area": null,
            "filter": "(all)",
            "source": "mv_routes_indexed"
          },
          {
            "zoom_level": "z13-15",
            "view_name": "mv_routes_indexed_z13_15",
            "tolerance": "5m",
            "min_area": null,
            "filter": "(all from parent)",
            "source": "mv_routes_indexed_z16_20"
          },
          {
            "zoom_level": "z10-12",
            "view_name": "mv_routes_indexed_z10_12",
            "tolerance": "20m",
            "min_area": null,
            "filter": "(all from parent)",
            "source": "mv_routes_indexed_z13_15"
          },
          {
            "zoom_level": "z8-9",
            "view_name": "mv_routes_indexed_z8_9",
            "tolerance": "100m",
            "min_area": null,
            "filter": "(all from parent)",
            "source": "mv_routes_indexed_z10_12"
          },
          {
            "zoom_level": "z6-7",
            "view_name": "mv_routes_indexed_z6_7",
            "tolerance": "200m",
            "min_area": null,
            "filter": "(all from parent)",
            "source": "mv_routes_indexed_z8_9"
          },
          {
            "zoom_level": "z5",
            "view_name": "mv_routes_indexed_z5",
            "tolerance": "1000m",
            "min_area": null,
            "filter": "(all from parent)",
            "source": "mv_routes_indexed_z6_7"
          }
        ],
        "description": "OpenhistoricalMap routes lines, contains route relation lines.",
        "details": [
          "Combines route relations and ways objects",
          "Merges routes by date ranges (start_decdate/end_decdate) and groups by way_id and route type",
          "Supports multiple route types per way: road, train, subway, light_rail, tram, trolleybus, bus (up to 6 slots per type)",
          "Routes are ranked by priority and stored in fixed slots (route_<type>_<1-6>_ref, route_<type>_<1-6>_network, etc.)",
          "Includes route metadata: ref, network, network_wikidata, operator, name, direction",
          "Pyramid structure: each zoom level is created from the previous one with increasing simplification tolerance"
        ],
        "source_file": "queries/ohm_mviews/routes_03_mv.sql",
        "source_file_name": "routes_03_mv.sql"
      }
    ],
    "landuse_areas": [
      {
        "layers": [
          "landuse_areas"
        ],
        "tegola_config": "config/providers/landuse_areas.toml",
        "filters_per_zoom_level": [
          {
            "zoom_level": "z16-20",
            "view_name": "mv_landuse_areas_z16_20",
            "tolerance": "0m",
            "min_area": "0",
            "filter": "NOT (type = 'water' AND class = 'natural')",
            "source": "osm_landuse_areas"
          },
          {
            "zoom_level": "z13-15",
            "view_name": "mv_landuse_areas_z13_15",
            "tolerance": "5m",
            "min_area": "10000",
            "filter": "(inherited from z16-20)",
            "source": "mv_landuse_areas_z16_20"
          },
          {
            "zoom_level": "z10-12",
            "view_name": "mv_landuse_areas_z10_12",
            "tolerance": "20m",
            "min_area": "50000",
            "filter": "(inherited from z13-15)",
            "source": "mv_landuse_areas_z13_15"
          },
          {
            "zoom_level": "z8-9",
            "view_name": "mv_landuse_areas_z8_9",
            "tolerance": "100m",
            "min_area": "1000000",
            "filter": "(inherited from z10-12)",
            "source": "mv_landuse_areas_z10_12"
          },
          {
            "zoom_level": "z6-7",
            "view_name": "mv_landuse_areas_z6_7",
            "tolerance": "200m",
            "min_area": "10000000",
            "filter": "(inherited from z8-9)",
            "source": "mv_landuse_areas_z8_9"
          }
        ],
        "description": "OpenhistoricalMap landuse areas, contains land use and land cover polygons (forests, parks, agricultural areas, etc.)",
        "details": [
          "Excludes natural=water (see https://github.com/OpenHistoricalMap/issues/issues/1197)"
        ],
        "source_file": "queries/ohm_mviews/landuse.sql",
        "source_file_name": "landuse.sql"
      }
    ],
    "landuse_points_centroids": [
      {
        "layers": [
          "landuse_points_centroids"
        ],
        "tegola_config": "config/providers/landuse_points_centroids.toml",
        "filters_per_zoom_level": [
          {
            "zoom_level": "z16-20",
            "view_name": "mv_landuse_points_centroids_z16_20",
            "tolerance": null,
            "min_area": null,
            "filter": "(includes points from mv_landuse_points)",
            "source": null
          },
          {
            "zoom_level": "z13-15",
            "view_name": "mv_landuse_points_centroids_z13_15",
            "tolerance": null,
            "min_area": null,
            "filter": "(includes points from mv_landuse_points)",
            "source": null
          },
          {
            "zoom_level": "z10-12",
            "view_name": "mv_landuse_points_centroids_z10_12",
            "tolerance": null,
            "min_area": null,
            "filter": "(centroids only, no points)",
            "source": null
          },
          {
            "zoom_level": "z8-9",
            "view_name": "mv_landuse_points_centroids_z8_9",
            "tolerance": null,
            "min_area": null,
            "filter": "(centroids only, no points)",
            "source": null
          },
          {
            "zoom_level": "z6-7",
            "view_name": "mv_landuse_points_centroids_z6_7",
            "tolerance": null,
            "min_area": null,
            "filter": "(centroids only, no points)",
            "source": null
          }
        ],
        "description": "OpenhistoricalMap landuse points centroids, contains point representations of land use features (centroids from polygons and point features)",
        "details": [
          "Points centroids are created from areas for higher zoom levels",
          "Includes points from osm_landuse_points for higher zoom levels",
          "Lower zoom levels show centroids only, no points"
        ],
        "source_file": "queries/ohm_mviews/landuse.sql",
        "source_file_name": "landuse.sql"
      }
    ],
    "landuse_lines": [
      {
        "layers": [
          "landuse_lines"
        ],
        "tegola_config": "config/providers/landuse_lines.toml",
        "filters_per_zoom_level": [
          {
            "zoom_level": "z16-20",
            "view_name": "mv_landuse_lines_z16_20",
            "tolerance": "5m",
            "min_area": null,
            "filter": "type IN ('tree_row')",
            "source": null
          },
          {
            "zoom_level": "z14-15",
            "view_name": "mv_landuse_lines_z14_15",
            "tolerance": "5m",
            "min_area": null,
            "filter": "(all from parent)",
            "source": null
          }
        ],
        "description": "OpenhistoricalMap landuse lines, contains linear land use features.",
        "details": [
          "Only tree_row  is consider in this layer"
        ],
        "source_file": "queries/ohm_mviews/landuse.sql",
        "source_file_name": "landuse.sql"
      }
    ]
  }
}