{
  "id": "rihla:presquile-crozon",
  "steps": [
    {
      "id": "etape-1",
      "day": 1,
      "media": [],
      "order": 1,
      "title": {
        "en": "Le Faou",
        "fr": "Le Faou"
      },
      "location": {
        "lat": 48.2954,
        "lon": -4.1773
      },
      "narrative": {
        "en": "Ease your way onto the peninsula. Pause in the village and gather your supplies: the headlands are better enjoyed when you arrive without a rush.",
        "fr": "Entrer dans la presqu’île doucement. Faire une halte dans le bourg et préparer ses provisions : les caps seront plus agréables si l’on n’y arrive pas pressé."
      },
      "practical": {
        "notes": "Exemple éditorial : coordonnées indicatives. Horaires, accès, réservations et stationnement de nuit à vérifier auprès des gestionnaires. Aucun emplacement de nuit n’est validé.",
        "night_spot": false,
        "booking_required": false,
        "notes_translations": {
          "en": "Editorial example: indicative coordinates. Check opening hours, access, bookings and overnight parking with the operators. No overnight location has been verified.",
          "fr": "Exemple éditorial : coordonnées indicatives. Horaires, accès, réservations et stationnement de nuit à vérifier auprès des gestionnaires. Aucun emplacement de nuit n’est validé."
        }
      }
    },
    {
      "id": "etape-2",
      "day": 2,
      "media": [],
      "order": 2,
      "title": {
        "en": "Camaret-sur-Mer",
        "fr": "Camaret-sur-Mer"
      },
      "location": {
        "lat": 48.2751,
        "lon": -4.5963
      },
      "narrative": {
        "en": "Walk along the harbour and take time to watch the boats. Then choose a walk that suits the weather; the sea is never a motionless backdrop.",
        "fr": "Longer le port à pied et prendre le temps d’observer les bateaux. Choisir ensuite une promenade adaptée à la météo ; la mer n’est pas un décor immobile."
      },
      "practical": {
        "notes": "Exemple éditorial : coordonnées indicatives. Horaires, accès, réservations et stationnement de nuit à vérifier auprès des gestionnaires. Aucun emplacement de nuit n’est validé.",
        "night_spot": false,
        "booking_required": false,
        "notes_translations": {
          "en": "Editorial example: indicative coordinates. Check opening hours, access, bookings and overnight parking with the operators. No overnight location has been verified.",
          "fr": "Exemple éditorial : coordonnées indicatives. Horaires, accès, réservations et stationnement de nuit à vérifier auprès des gestionnaires. Aucun emplacement de nuit n’est validé."
        }
      }
    },
    {
      "id": "etape-3",
      "day": 3,
      "media": [
        {
          "alt": "Illustration générée — crique et sentier sur la presqu’île de Crozon.",
          "url": "https://www.rihla.at/images/demo/presquile-crozon.webp",
          "alt_translations": {
            "en": "Generated illustration — a cove and coastal path on the Crozon peninsula.",
            "fr": "Illustration générée — crique et sentier sur la presqu’île de Crozon."
          }
        }
      ],
      "order": 3,
      "title": {
        "en": "Morgat",
        "fr": "Morgat"
      },
      "location": {
        "lat": 48.2268,
        "lon": -4.5044
      },
      "narrative": {
        "en": "Settle into a day with little travelling. Alternate walks with reading beside the bay, keeping a fallback route in mind if the paths become slippery.",
        "fr": "S’installer pour une journée sans grand déplacement. Alterner promenade et lecture face à la baie, avec un itinéraire de repli si les sentiers deviennent glissants."
      },
      "practical": {
        "notes": "Exemple éditorial : coordonnées indicatives. Horaires, accès, réservations et stationnement de nuit à vérifier auprès des gestionnaires. Aucun emplacement de nuit n’est validé.",
        "night_spot": false,
        "booking_required": false,
        "notes_translations": {
          "en": "Editorial example: indicative coordinates. Check opening hours, access, bookings and overnight parking with the operators. No overnight location has been verified.",
          "fr": "Exemple éditorial : coordonnées indicatives. Horaires, accès, réservations et stationnement de nuit à vérifier auprès des gestionnaires. Aucun emplacement de nuit n’est validé."
        }
      }
    },
    {
      "id": "etape-4",
      "day": 4,
      "media": [],
      "order": 4,
      "title": {
        "en": "Landévennec",
        "fr": "Landévennec"
      },
      "location": {
        "lat": 48.2929,
        "lon": -4.2678
      },
      "narrative": {
        "en": "Return through a more sheltered landscape. This final stop changes the journey’s tone: less wind in the story, more trees and quiet shores.",
        "fr": "Revenir par un paysage plus abrité. Cette dernière étape change le ton du voyage : moins de vent dans le récit, davantage d’arbres et de rives."
      },
      "practical": {
        "notes": "Exemple éditorial : coordonnées indicatives. Horaires, accès, réservations et stationnement de nuit à vérifier auprès des gestionnaires. Aucun emplacement de nuit n’est validé.",
        "night_spot": false,
        "booking_required": false,
        "notes_translations": {
          "en": "Editorial example: indicative coordinates. Check opening hours, access, bookings and overnight parking with the operators. No overnight location has been verified.",
          "fr": "Exemple éditorial : coordonnées indicatives. Horaires, accès, réservations et stationnement de nuit à vérifier auprès des gestionnaires. Aucun emplacement de nuit n’est validé."
        }
      }
    }
  ],
  "title": {
    "en": "Crozon, to the edge of the land",
    "fr": "Crozon, jusqu’au bout de la terre"
  },
  "author": {
    "name": "Atelier Rihla · démonstration",
    "handle": "atelier-rihla"
  },
  "region": "Bretagne · Finistère",
  "themes": [
    "vanlife"
  ],
  "licence": "CC-BY-NC-4.0",
  "lineage": {
    "ancestors": [],
    "forked_from": null
  },
  "pricing": {
    "model": "free"
  },
  "summary": {
    "en": "A journey of headlands and harbours, with enough breathing room to change your plans when the wind picks up.",
    "fr": "Un voyage de caps et de ports, avec assez de marge pour changer de programme lorsque le vent se lève."
  },
  "version": "1.0.2",
  "constraints": {
    "seasons": [
      4,
      5,
      6,
      9,
      10
    ],
    "vehicle": {
      "type": "van",
      "max_height_m": null
    },
    "budget_eur": {
      "max": 0,
      "min": 0
    },
    "duration_days": 4
  },
  "distribution": {
    "mcp": false,
    "exports": [
      "rihla",
      "gpx",
      "geojson",
      "kml"
    ],
    "schema_org": "TouristTrip"
  },
  "rihla_version": "1.1.0",
  "default_locale": "fr",
  "editorial_status": "example",
  "region_translations": {
    "en": "Brittany · Finistère",
    "fr": "Bretagne · Finistère"
  }
}