{
  "formatVersion": "1.2",
  "currency": "EUR",
  "timezone": "Europe/Brussels",
  "id": "demo-bruges",
  "name": "Weekend in Bruges",
  "subtitle": "Canals, belfry and fries — as a family",
  "start": "2026-09-12",
  "end": "2026-09-13",
  "members": [
    {
      "id": "m1",
      "name": "Alex",
      "role": "owner",
      "kind": "adult"
    },
    {
      "id": "m2",
      "name": "Sam",
      "role": "editor",
      "kind": "adult"
    },
    {
      "id": "m3",
      "name": "Leo",
      "role": "viewer",
      "kind": "child",
      "age": 9,
      "surpriseMode": "day"
    }
  ],
  "days": [
    {
      "id": "d1",
      "index": 1,
      "date": "2026-09-12",
      "title": "Paris → Bruges",
      "intro": "Drive in the morning, canals in the afternoon: Bruges is best discovered on foot and by boat.",
      "stayBookingId": "b-hotel",
      "route": {
        "km": 295,
        "drive": "3h10",
        "charge": "Fast charge in Lille (20 min)",
        "vehicleId": "v1"
      },
      "coords": {
        "lat": 51.2093,
        "lon": 3.2247,
        "label": "Bruges"
      },
      "tip": "The Centrum 't Zand car park is the cheapest overnight option.",
      "planB": "If it rains all day: Groeninge Museum + Historium.",
      "items": [
        {
          "id": "i1",
          "time": "09:00",
          "title": "Leave Paris",
          "type": "drive",
          "status": "planned",
          "transport": {
            "vehicleId": "v1",
            "from": {
              "name": "Paris",
              "timezone": "Europe/Paris"
            },
            "to": {
              "name": "Bruges",
              "coords": {
                "lat": 51.2093,
                "lon": 3.2247
              },
              "timezone": "Europe/Brussels"
            }
          }
        },
        {
          "id": "i2",
          "time": "14:30",
          "endTime": "15:00",
          "title": "Canal boat tour",
          "type": "boat",
          "stars": 3,
          "status": "planned",
          "place": "Huidenvettersplein, Bruges",
          "coords": {
            "lat": 51.2072,
            "lon": 3.2266
          },
          "bookingId": "b-boat",
          "personIds": [
            "p1"
          ],
          "outfit": [
            "casual",
            "windproof"
          ],
          "critical": "Last boat at 17h30 — arrive 20 min early.",
          "alternatives": [
            {
              "id": "a1",
              "trigger": "rain",
              "title": "Historium Bruges",
              "desc": "Immersive indoor experience, 1h30."
            },
            {
              "id": "a2",
              "trigger": "wind",
              "windThreshold": 50,
              "title": "Groeninge Museum",
              "desc": "Flemish primitives, indoors."
            }
          ]
        },
        {
          "id": "i3",
          "time": "19:30",
          "title": "Dinner",
          "type": "meal",
          "status": "planned",
          "options": [
            {
              "id": "o1",
              "title": "De Halve Maan",
              "desc": "Family brewery, moules-frites",
              "place": "Walplein 26, Bruges",
              "menuUrl": "https://www.halvemaan.be/en/eating"
            },
            {
              "id": "o2",
              "title": "That's Toast",
              "desc": "Simple dishes, kid-friendly",
              "place": "Dweersstraat 4, Bruges"
            }
          ]
        },
        {
          "id": "i4",
          "title": "Night in Bruges",
          "type": "night",
          "status": "planned"
        }
      ]
    },
    {
      "id": "d2",
      "index": 2,
      "date": "2026-09-13",
      "title": "Belfry, then home",
      "coords": {
        "lat": 51.2093,
        "lon": 3.2247,
        "label": "Bruges"
      },
      "items": [
        {
          "id": "i5",
          "time": "09:30",
          "title": "Climb the Belfry",
          "type": "heritage",
          "stars": 2,
          "status": "planned",
          "place": "Markt 7, Bruges",
          "bookingId": "b-belfry"
        },
        {
          "id": "i6",
          "time": "14:00",
          "title": "Drive back to Paris",
          "type": "drive",
          "status": "planned"
        }
      ]
    }
  ],
  "bookings": [
    {
      "id": "b-hotel",
      "type": "stay",
      "status": "confirmed",
      "title": "Hotel Ter Brughe",
      "hotelStars": 4,
      "dates": "Night of September 12-13",
      "checkin": "15:00",
      "checkout": "11:00",
      "breakfastIncluded": true,
      "rooms": [
        {
          "label": "Double canal view",
          "memberIds": [
            "m1",
            "m2"
          ]
        },
        {
          "label": "Single",
          "memberIds": [
            "m3"
          ]
        }
      ],
      "payment": {
        "status": "deposit",
        "deposit": 80
      },
      "address": "Oost-Gistelhof 2, 8000 Brugge",
      "gpsAddress": "Parking: Langerei 1, Brugge",
      "phone": "+32 50 34 03 24",
      "website": "https://www.hotelterbrughe.com",
      "cancellation": "Free cancellation until September 10, 6pm",
      "instructions": "Check-in from 3pm; parking code in the confirmation email.",
      "refs": [
        {
          "label": "Booking number",
          "value": "TB-88412"
        },
        {
          "label": "Parking code",
          "value": "4471",
          "sensitive": true
        }
      ],
      "tickets": [],
      "reminder": {
        "date": "2026-09-10",
        "action": "Confirm arrival time with the hotel"
      }
    },
    {
      "id": "b-boat",
      "type": "activity",
      "status": "confirmed",
      "title": "Canal cruise — Huidenvettersplein",
      "dates": "September 12, 14:30",
      "price": 39,
      "refs": [
        {
          "label": "Reservation",
          "value": "CAN-2209"
        }
      ],
      "tickets": [
        {
          "id": "t1",
          "label": "Family (2 adults + 1 child)",
          "code": "CAN-2209-01",
          "memberId": "m1",
          "payload": "CAN|2209|FAM|20260912",
          "format": "qr",
          "date": "2026-09-12",
          "time": "14:30"
        }
      ]
    },
    {
      "id": "b-belfry",
      "type": "activity",
      "status": "to_book",
      "title": "Bruges Belfry — 9h30 slot",
      "refs": [],
      "tickets": []
    }
  ],
  "checklists": [
    {
      "id": "c1",
      "title": "Weekend bag",
      "emoji": "🎒",
      "items": [
        {
          "id": "ci1",
          "label": "ID cards",
          "done": false
        },
        {
          "id": "ci2",
          "label": "Car charger",
          "done": true
        },
        {
          "id": "ci3",
          "label": "Rain jackets (it's Bruges…)",
          "done": false
        }
      ]
    }
  ],
  "contacts": [
    {
      "id": "ct1",
      "name": "European emergency number",
      "phone": "112",
      "note": "Valid in Belgium and France alike"
    }
  ],
  "logistics": [
    {
      "id": "l1",
      "emoji": "🅿️",
      "title": "Parking in Bruges",
      "content": "The city center is pedestrian. Centrum 't Zand car park: €3.50/day, free shuttle to the Markt."
    }
  ],
  "people": [
    {
      "id": "p1",
      "name": "Lotte Vermeulen",
      "role": "guide",
      "phone": "+32 470 12 34 56",
      "messaging": [
        {
          "app": "whatsapp",
          "handle": "+32470123456"
        }
      ],
      "languages": [
        "nl",
        "en",
        "fr"
      ],
      "org": "Bruges Boat Tours",
      "sign": "Blue Bruges Boat Tours flag at the jetty"
    }
  ],
  "vehicles": [
    {
      "id": "v1",
      "name": "Family EV",
      "kind": "car",
      "energy": "electric",
      "plate": "AB-123-CD"
    }
  ],
  "apps": [
    {
      "id": "a1",
      "name": "Visit Bruges",
      "emoji": "🧭",
      "desc": "Official city maps and opening hours",
      "url": "https://www.visitbruges.be",
      "ios": "https://apps.apple.com/app/id1102394897",
      "android": "https://play.google.com/store/apps/details?id=be.brugge.visitbruges"
    }
  ]
}