{
  "id": "rihla:broceliande",
  "steps": [
    {
      "id": "etape-1",
      "day": 1,
      "media": [],
      "order": 1,
      "title": {
        "en": "Paimpont",
        "fr": "Paimpont"
      },
      "location": {
        "lat": 48.0188,
        "lon": -2.1713
      },
      "narrative": {
        "en": "Open the journey beside the pond. Call at the tourist information office to check current access before choosing a forest walk.",
        "fr": "Ouvrir le voyage au bord de l’étang. Passer par l’information touristique pour connaître les accès du moment avant de choisir une promenade en forêt."
      },
      "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": [
        {
          "alt": "Illustration générée — sous-bois et étang en forêt de Brocéliande.",
          "url": "https://www.rihla.at/images/demo/broceliande.webp",
          "alt_translations": {
            "en": "Generated illustration — woodland and a pond in the forest of Brocéliande.",
            "fr": "Illustration générée — sous-bois et étang en forêt de Brocéliande."
          }
        }
      ],
      "order": 2,
      "title": {
        "en": "Tréhorenteuc",
        "fr": "Tréhorenteuc"
      },
      "location": {
        "lat": 48.0081,
        "lon": -2.2879
      },
      "narrative": {
        "en": "Make this pause a starting point, not a race between legendary sites. Adapt your outing to permitted paths and ground conditions.",
        "fr": "Faire de cette halte un point de départ, pas une course aux lieux légendaires. Adapter la sortie aux chemins autorisés et aux conditions du terrain."
      },
      "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": [],
      "order": 3,
      "title": {
        "en": "Concoret",
        "fr": "Concoret"
      },
      "location": {
        "lat": 48.0628,
        "lon": -2.2058
      },
      "narrative": {
        "en": "Return through villages and along woodland edges. Write down what belongs to the landscape and what belongs to the stories: the two can speak to each other without being confused.",
        "fr": "Revenir par les bourgs et les lisières. Écrire ce qui appartient au paysage et ce qui appartient aux histoires : les deux peuvent dialoguer sans se confondre."
      },
      "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": "At the edge of Brocéliande",
    "fr": "À l’orée de Brocéliande"
  },
  "author": {
    "name": "Atelier Rihla · démonstration",
    "handle": "atelier-rihla"
  },
  "region": "Bretagne · Intérieur",
  "themes": [
    "nature"
  ],
  "licence": "CC-BY-NC-4.0",
  "lineage": {
    "ancestors": [],
    "forked_from": null
  },
  "pricing": {
    "model": "free"
  },
  "summary": {
    "en": "A forest story in three stops, where publicly accessible paths matter as much as the places in the tales.",
    "fr": "Un récit de forêt en trois étapes, où les chemins ouverts au public comptent autant que les lieux racontés."
  },
  "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": 3
  },
  "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 · Inland",
    "fr": "Bretagne · Intérieur"
  }
}