{
  "name": "GAA Pitch Finder Dataset",
  "schema_version": "1.0.0",
  "dataset_version": "2026.08.06",
  "dataset_revision": "96262e1e48ed26a7b8286a9bfaabed006548a74d",
  "generation_date": "2026-08-06",
  "generation_date_basis": "Commit date of the latest revision that changed the canonical CSV",
  "record_count": 1989,
  "license": {
    "name": "Creative Commons Attribution 4.0 International (CC BY 4.0)",
    "url": "https://creativecommons.org/licenses/by/4.0/"
  },
  "attribution": "GAA Pitch Finder by Ryan McGuinness (https://gaapitchfinder.com)",
  "coordinate_reference_system": {
    "name": "World Geodetic System 1984",
    "identifier": "EPSG:4326",
    "csv_axis_order": [
      "latitude",
      "longitude"
    ],
    "geojson_axis_order": [
      "longitude",
      "latitude"
    ],
    "geojson_standard": "RFC 7946"
  },
  "distributions": [
    {
      "format": "CSV",
      "media_type": "text/csv",
      "url": "https://gaapitchfinder.com/downloads/gaapitchfinder.csv",
      "representation": "UTF-8 CSV with the exact canonical column order; blank optional values are empty strings"
    },
    {
      "format": "GeoJSON",
      "media_type": "application/geo+json",
      "url": "https://gaapitchfinder.com/downloads/gaapitchfinder.geojson",
      "representation": "FeatureCollection of Point features; numeric fields are JSON numbers and blank optional values are null"
    }
  ],
  "fields": [
    {
      "name": "File",
      "type": "string",
      "nullable": false,
      "units": null,
      "description": "Top-level coverage region used to partition the source dataset.",
      "controlled_values": [
        "Asia",
        "Australasia",
        "Canada",
        "Europe",
        "Great Britain",
        "Ireland",
        "Middle East",
        "South America",
        "USA"
      ]
    },
    {
      "name": "Club",
      "type": "string",
      "nullable": false,
      "units": null,
      "description": "Club or team name."
    },
    {
      "name": "Pitch",
      "type": "string",
      "nullable": true,
      "units": null,
      "description": "Pitch, ground, or community field name."
    },
    {
      "name": "Code",
      "type": "string",
      "nullable": true,
      "units": null,
      "description": "Primary Gaelic games code where it is known.",
      "controlled_values": [
        "Football",
        "Hurling",
        "Mixed"
      ]
    },
    {
      "name": "Latitude",
      "type": "number",
      "nullable": false,
      "units": "decimal degrees",
      "description": "Latitude of the pitch point in WGS 84 decimal degrees.",
      "constraints": {
        "minimum": -90,
        "maximum": 90
      }
    },
    {
      "name": "Longitude",
      "type": "number",
      "nullable": false,
      "units": "decimal degrees",
      "description": "Longitude of the pitch point in WGS 84 decimal degrees.",
      "constraints": {
        "minimum": -180,
        "maximum": 180
      }
    },
    {
      "name": "Province",
      "type": "string",
      "nullable": false,
      "units": null,
      "description": "Province or comparable broad regional grouping."
    },
    {
      "name": "Country",
      "type": "string",
      "nullable": false,
      "units": null,
      "description": "Country name."
    },
    {
      "name": "Division",
      "type": "string",
      "nullable": false,
      "units": null,
      "description": "GAA division, county board, or overseas administrative grouping."
    },
    {
      "name": "County",
      "type": "string",
      "nullable": false,
      "units": null,
      "description": "County, state, division, or local grouping used for browsing."
    },
    {
      "name": "Directions",
      "type": "string",
      "nullable": false,
      "units": null,
      "description": "Google Maps directions URL for the canonical pitch coordinates.",
      "format": "uri"
    },
    {
      "name": "Twitter",
      "type": "string",
      "nullable": true,
      "units": null,
      "description": "Club social profile URL; legacy records may contain X or Instagram URLs.",
      "format": "uri"
    },
    {
      "name": "Elevation",
      "type": "number",
      "nullable": true,
      "units": "metres",
      "description": "Estimated pitch elevation above mean sea level.",
      "constraints": {
        "minimum": -500,
        "maximum": 9000
      }
    },
    {
      "name": "annual_rainfall",
      "type": "number",
      "nullable": true,
      "units": "millimetres per year",
      "description": "Estimated mean annual rainfall at the pitch location.",
      "constraints": {
        "minimum": 0,
        "maximum": 12000
      }
    },
    {
      "name": "rain_days",
      "type": "number",
      "nullable": true,
      "units": "days per year",
      "description": "Estimated annual number of days with precipitation.",
      "constraints": {
        "minimum": 0,
        "maximum": 366
      }
    },
    {
      "name": "Wikipedia",
      "type": "string",
      "nullable": true,
      "units": null,
      "description": "Reviewed Wikipedia URL for the club where available.",
      "format": "uri"
    }
  ],
  "compatibility": {
    "versioning": "Semantic versioning for schema_version",
    "stable_latest_urls": true,
    "backward_compatible_changes": [
      "Adding an optional field",
      "Adding a controlled vocabulary value",
      "Clarifying descriptions or units without changing interpretation"
    ],
    "breaking_changes": [
      "Removing or renaming a field",
      "Changing a field type or making a nullable field required",
      "Changing coordinate reference system or GeoJSON geometry type"
    ],
    "consumer_guidance": "Ignore unknown fields and do not assume controlled vocabularies are closed. Breaking changes increment the schema major version."
  }
}
