OPEN ITINERARY FORMAT · PROPOSAL 1.1.0

A journey you can read.
An open structure.

A .rihla file brings together the story, the stops and the terms for sharing it. It is readable JSON, with attribution built in.

Three distinct versions

FieldMeaning
rihla_versionFormat version, currently 1.1.0.
versionPublished story version: 1.0.0, then 1.0.1… A new draft starts at 0.0.0.
lineage.forked_from.versionThe exact source version at the time of adaptation. It remains fixed.

The content contract

Each text is a language dictionary. The title, summary and each stop’s story must be provided in the primary language. Coordinates use WGS84 degrees; ordering starts at 1 and days follow the journey.

Version 1.1.0 adds region_translations, practical.notes_translations and media[].alt_translations. The region, notes and alt fields remain in the primary language; version 1.0.0 files are still accepted.

The interface offers French and English. An incomplete translation falls back to the labelled original. Translations are entered or reviewed manually; no automatic translation service is enabled.

{
  "rihla_version": "1.1.0",
  "id": "rihla:golfe-morbihan",
  "version": "1.0.0",
  "default_locale": "fr",
  "title": { "fr": "Le golfe, au rythme des marées" },
  "pricing": { "model": "free" },
  "licence": "CC-BY-NC-4.0"
}

Abbreviated excerpt: download the example file for a complete, valid document.

Attribution and adaptation

A fork receives its own identity and keeps a reference to its source: identifier, version, title, author and licence. Earlier sources remain in lineage.ancestors. Published versions are immutable; editing a draft does not change a publication.

Source restrictions are preserved. Version 1 takes a conservative approach to adaptations: a CC BY-NC source retains CC BY-NC, a CC BY-SA source retains CC BY-SA, and existing attribution cannot be removed using CC0.

Read, cite, export

GET /api/itineraries returns free publications. GET /api/itineraries/{id}?version=1.0.0 lets you cite a specific version. Each page also includes TouristTrip structured data.

GET /api/itineraries/{id}/export?format=gpx accepts rihla, gpx, geojson and kml. GPX, GeoJSON and KML preserve stops and attribution; the .rihla file preserves all multilingual content.

These points do not describe a navigable route. Budgets are indicative; 0–0 means “to be estimated”. An unspecified maximum height does not imply permission to access a location.

Add lang=en to GPX, GeoJSON and KML exports to choose English. The .rihla file retains all languages. French URLs are preserved; English pages use /en.

What comes next

The MCP server, x402 purchases, monetisation and partner spaces belong to later phases. The distribution.mcp field therefore remains false.