Schema Reference

JSON Schema 2020-12 definitions for all data files.

File Structure

Each pilgrimage route is a directory with four files:

routes/{route-id}/
  metadata.json        # Overview, tradition, culture, logistics
  route.geojson        # GeoJSON FeatureCollection (LineString)
  stages.json          # Stage-by-stage breakdown
  waypoints.geojson    # GeoJSON FeatureCollection (Points)

Plus index.json at the repo root as the discovery file.

Schemas

SchemaValidatesSource
index.schema.jsonindex.jsonView
pilgrimage.schema.jsonmetadata.jsonView
stages.schema.jsonstages.jsonView
route.schema.jsonroute.geojsonView
waypoints.schema.jsonwaypoints.geojsonView

Conventions

Coordinates

GeoJSON standard: [longitude, latitude] or [longitude, latitude, altitude]. Altitude in meters.

Localized Strings

All human-readable text uses the LocalizedString pattern. English is always required.

{
  "en": "Camino de Santiago",
  "es": "Camino de Santiago",
  "ja": "サンティアゴ巡礼路"
}

Route Topologies

ValueMeaningExample
linearA-to-B routeCamino Frances
circularLoop returning to startShikoku 88
networkInterconnected sub-routesKumano Kodo

Waypoint Types

15 types covering diverse pilgrimage traditions:

TypeDescription
townSettlement, village, city
accommodationPlace to sleep (albergue, temple lodging, ryokan, etc.)
sacred_siteTemple, church, shrine, chapel
water_sourceFountain, spring, tap
credential_stampStamp/seal location
viewpointScenic overlook
foodRestaurant, cafe, market
medicalHospital, pharmacy, clinic
transportBus stop, train station, ferry
waymarkerTrail marker, milestone
cultural_siteMuseum, monument, heritage site
campingDesignated camping area
passMountain pass or summit
informationTourist office, info board
supplyShop, supermarket, ATM

Schema Versioning

Every data file includes a schemaVersion field following SemVer:

ChangeVersion BumpExample
Field removed or renamedMAJOR1.0.0 → 2.0.0
New optional field addedMINOR1.0.0 → 1.1.0
Content correctionPATCH1.0.0 → 1.0.1

CDN URLs pin to the major version: @v1. All schemas use additionalProperties: true for forward compatibility.