{
  "generatedAt": "2026-03-31T06:32:09+02:00",
  "currency": "CHF",
  "trips": [
    {
      "id": "za-2026-apr",
      "title": "South Africa — Cape Town + Winelands",
      "country": "South Africa",
      "startDate": "2026-04-05",
      "endDate": "2026-04-17",
      "bookings": [
        {
          "type": "airbnb",
          "place": "House in Franschhoek",
          "host": "Lisa",
          "address": "27 De Villiers Street, Franschhoek, Western Cape 7690, South Africa",
          "checkIn": "2026-04-05T14:00:00",
          "checkOut": "2026-04-08T10:00:00"
        },
        {
          "type": "airbnb",
          "place": "Villa in Cape Town (above Boulders Beach)",
          "host": "Nicholas Sadleir",
          "address": "155 Queens Road above Boulders Beach, Cape Town, Western Cape 7995, South Africa",
          "checkIn": "2026-04-08T15:00:00",
          "checkOut": "2026-04-11T10:00:00"
        },
        {
          "type": "airbnb",
          "place": "House in Cape Town",
          "host": "Cesar",
          "address": "12 Central Drive, Cape Town, Western Cape 8040, South Africa",
          "checkIn": "2026-04-11T15:00:00",
          "checkOut": "2026-04-17T10:00:00"
        },
        {
          "type": "flight",
          "provider": "SWISS / Edelweiss",
          "bookingCode": "YNZ5Y5",
          "price": 3871.0,
          "currency": "CHF",
          "segments": [
            {
              "flightNo": "LX8086",
              "from": "ZRH",
              "to": "CPT",
              "depart": "2026-04-04T19:20:00",
              "arrive": "2026-04-05T06:15:00",
              "duration": "10h55m",
              "operatedBy": "Edelweiss Air",
              "aircraft": "Airbus A350-900",
              "cabin": "Economy",
              "stops": 0
            },
            {
              "flightNo": "LX8087",
              "from": "CPT",
              "to": "ZRH",
              "depart": "2026-04-17T09:10:00",
              "arrive": null,
              "duration": null,
              "operatedBy": null,
              "aircraft": null,
              "cabin": "Economy",
              "stops": 0
            }
          ],
          "notes": "Manage booking via SWISS. Check-in invitation ~23h before departure."
        },
        {
          "type": "car",
          "provider": "CarFlexi (MEETING POINT partner)",
          "eVoucher": "CF25D5E6",
          "confirmationNo": "ECR-6130768-6110885 / 6110885",
          "driver": "Srdjan Selic",
          "pickup": {
            "at": "2026-04-05T07:00:00",
            "location": "Cape Town Airport (CPT) — 8 Montreal Drive, Airport Industrial, Cape Town 4790, South Africa",
            "phones": [
              "+27 870958918",
              "+27 215559561"
            ],
            "meetingPoint": "Information desk, outside domestic/international arrivals hall (greeting board)"
          },
          "dropoff": {
            "at": "2026-04-17T07:00:00",
            "location": "Cape Town Airport (CPT) — 8 Montreal Drive, Airport Industrial, Cape Town 4790, South Africa",
            "phones": [
              "+27 870958918",
              "+27 215559561"
            ]
          },
          "vehicle": {
            "group": "ZA-EF2",
            "type": "Automatic minibus 9-seater (VW Transporter or similar)",
            "doors": 5,
            "aircon": true,
            "seats": 9,
            "luggage": {
              "large": 2,
              "small": 1
            }
          },
          "insurance": "Full Insurance Package (check T&C)",
          "fuelPolicy": "Fair fuel (return full tank)",
          "depositZAR": 22300,
          "excessZAR": 49500,
          "payAtDeskZAR": 15621.48,
          "requirements": [
            "Passport/ID (original)",
            "Physical driver license",
            "Credit card in driver name"
          ],
          "notes": "Notify rental company if late; reservation may not be held after pickup time."
        }
      ],
      "experiencesIdeas": [
        {
          "title": "Hike Lion’s Head for Sunrise or Sunset",
          "price": 35,
          "rating": 4.99,
          "url": "https://www.alltrails.com/trail/south-africa/western-cape/lions-head"
        },
        {
          "title": "Guided snorkel through Africa’s Kelp Forest",
          "price": 54,
          "rating": 4.91,
          "url": "https://www.airbnb.com/experiences/399480"
        },
        {
          "title": "Cape of Good Hope & Cape Point + Penguins road trip",
          "price": 59,
          "rating": 4.93,
          "url": "https://www.getyourguide.com/cape-town-l103/cape-point-and-penguins-full-day-tour-t188289/"
        },
        {
          "title": "Cape Point + Penguins tour",
          "price": 48,
          "rating": 4.98,
          "url": "https://www.viator.com/tours/Cape-Town/Full-Day-Cape-Point-and-Penguin-Colony-Tour-from-Cape-Town/d318-5516CAPEPOINT"
        },
        {
          "title": "Learn to surf in Muizenberg",
          "price": 22,
          "rating": 4.97,
          "url": "https://surfemporium.co.za/"
        },
        {
          "title": "African Food & Storytelling",
          "price": 62,
          "rating": 4.95,
          "url": "https://www.airbnb.com/s/Cape-Town--South-Africa/experiences?query=African%20Food%20Storytelling"
        },
        {
          "title": "Hike Table Mountain (adventurous route)",
          "price": 35,
          "rating": 4.99,
          "url": "https://www.airbnb.com/s/Cape-Town--South-Africa/experiences?query=Table%20Mountain%20hike"
        },
        {
          "title": "Wildlife by horseback (90 minutes)",
          "price": 67,
          "rating": 4.97,
          "url": "https://sleepyhollow.co.za/horse-riding/"
        },
        {
          "title": "Taste & make biltong + Afrikaans culture",
          "price": 30,
          "rating": 4.99,
          "url": "https://www.airbnb.com/s/Cape-Town--South-Africa/experiences?query=biltong"
        },
        {
          "title": "Franschhoek Wine Tram — hop-on/hop-off wine route",
          "price": null,
          "rating": null,
          "url": "https://winetram.co.za/"
        },
        {
          "title": "Wine estate long lunch (book in advance)",
          "price": null,
          "rating": null
        },
        {
          "title": "Chocolate + wine pairing (kid-friendly alternative: chocolate tasting)",
          "price": null,
          "rating": null
        },
        {
          "title": "Farm/animals estate stop (kids)",
          "price": null,
          "rating": null
        },
        {
          "title": "Kirstenbosch Botanical Gardens + canopy walkway",
          "price": null,
          "rating": null
        },
        {
          "title": "Constantia valley easy afternoon (wine/chocolate/coffee)",
          "price": null,
          "rating": null
        },
        {
          "title": "Beach time: Camps Bay / Clifton (easy with kids)",
          "price": null,
          "rating": null
        },
        {
          "title": "Day trip alternatives: Hermanus (whales in season) / Stellenbosch (if you want more wine)",
          "price": null,
          "rating": null
        },
        {
          "title": "Kelp Forest Snorkeling (Kelptown)",
          "url": "https://kelptown.com/products/kelp-forest-snorkeling"
        }
      ],
      "itinerary": [
        {
          "date": "2026-04-05",
          "city": "Franschhoek (arrival day)",
          "activities": [
            "06:15 Land CPT • 07:00 car pickup",
            "Drive to Franschhoek + coffee stop",
            "11:30 Brunch/lunch in village (kid-friendly)",
            "14:00 Check-in (Lisa) + unpack/rest",
            "16:00 Village stroll + market/shops + gelato/chocolate",
            "17:30 Sunset viewpoint / photos (easy)",
            "19:00 Dinner: great food (fish preferred, BBQ fallback)"
          ]
        },
        {
          "date": "2026-04-06",
          "city": "Franschhoek (Wine Tram day)",
          "activities": [
            "09:30 Breakfast in Franschhoek village",
            "10:15 Arrive Wine Tram ticket office + first departure",
            "10:30–11:45 Stop 1: fun estate (animals/farm vibe) — kids-friendly",
            "12:15–14:15 Stop 2: lunch estate (long lunch booking) — big gardens/picnic lawn",
            "14:45–16:00 Stop 3: chocolate / dessert pairing (kids-friendly)",
            "16:30 Back to Franschhoek village",
            "19:00 Dinner: fish-focused place if available, else SA BBQ"
          ]
        },
        {
          "date": "2026-04-07",
          "city": "Franschhoek (Safari day trip)",
          "activities": [
            "05:30–06:00 Early pickup/drive to private reserve",
            "Morning game drive",
            "Lunch at reserve",
            "Optional second drive (time/availability)",
            "Return to Franschhoek early evening",
            "Easy dinner in village"
          ]
        },
        {
          "date": "2026-04-08",
          "city": "Simon’s Town / Boulders (move day)",
          "activities": [
            "10:00 Checkout Franschhoek (leave bags in car)",
            "Drive to Simon’s Town / Boulders",
            "Lunch stop en route (Noordhoek Farm Village OR Cape Point Vineyards)",
            "15:00 Check-in Boulders base",
            "Late afternoon: Boulders Penguins boardwalk (move penguins to 08/04)",
            "Easy dinner near Simon’s Town / Kalk Bay"
          ]
        },
        {
          "date": "2026-04-09",
          "city": "Cape Peninsula (Cape Point day)",
          "activities": [
            "Start early: Cape Point + Cape of Good Hope",
            "Lunch option: ostrich / farm-style stop OR Cape Point Vineyards (if returning via Noordhoek)",
            "Afternoon: Scratch Patch / Mineral World (kids)",
            "Dinner option: Kalk Bay seafood (Harbour House) or casual Simon’s Town"
          ]
        },
        {
          "date": "2026-04-10",
          "city": "Boulders base (flex day)",
          "activities": [
            "10:00–12:00 Kelp forest snorkeling (bookings: Airbnb exp 399480 or Kelptown)",
            "Option B: Boat trip / harbour + craft market",
            "Option C: Muizenberg beach (kids) + ice cream",
            "Sunset: Chapman’s Peak viewpoint / Noordhoek beach"
          ]
        },
        {
          "date": "2026-04-11",
          "city": "Cape Town (switch base day)",
          "activities": [
            "Checkout Boulders base",
            "Scenic drive via Chapman’s Peak Drive (if open)",
            "Lunch in Hout Bay: Chapman’s Peak Hotel — calamari stop",
            "Continue to Camps Bay / Central Drive check-in",
            "Sunset walk + easy dinner"
          ]
        },
        {
          "date": "2026-04-12",
          "city": "Cape Town (Table Mountain day)",
          "activities": [
            "Morning: Table Mountain Cableway (check wind/weather)",
            "Morning option B: Platteklip Gorge hike with kids (weather/energy dependent)",
            "Lunch: Kloof Street / Gardens area (easy access from Table Mountain)",
            "Afternoon: Company's Garden + museum (kid-friendly)",
            "Evening: V&A Waterfront stroll"
          ]
        },
        {
          "date": "2026-04-13",
          "city": "Cape Town (Kirstenbosch day)",
          "activities": [
            "Morning: Kirstenbosch Botanical Gardens (family-friendly)",
            "Lunch: Kirstenbosch tea room / nearby Constantia/Wynberg",
            "Afternoon option: Constantia wine valley (easy) or beaches",
            "Evening: sushi night at V&A Waterfront (book ahead)"
          ]
        },
        {
          "date": "2026-04-14",
          "city": "Cape Town",
          "activities": [
            "Buffer day / weather day"
          ]
        },
        {
          "date": "2026-04-15",
          "city": "Cape Town",
          "activities": [
            "Robben Island tour (book early; wind dependent)",
            "Waterfront lunch"
          ]
        },
        {
          "date": "2026-04-16",
          "city": "Cape Town",
          "activities": [
            "Last big activity"
          ]
        },
        {
          "date": "2026-04-17",
          "city": "Cape Town",
          "activities": [
            "Checkout + depart"
          ]
        }
      ],
      "todos": [
        {
          "id": "za-car",
          "text": "Decide car rental + insurance",
          "day": "2026-04-05"
        },
        {
          "id": "za-sim",
          "text": "eSIM/SIM plan for South Africa",
          "day": "2026-04-05"
        },
        {
          "id": "za-book-wine",
          "text": "Book 1–2 winery tastings (Franschhoek)",
          "day": "2026-04-06"
        },
        {
          "id": "za-book-cape",
          "text": "Choose Cape Point + Penguins tour option",
          "day": "2026-04-09"
        },
        {
          "id": "za-book-kelp",
          "text": "Confirm kelp forest snorkel slot + wetsuit sizes",
          "day": "2026-04-10"
        },
        {
          "id": "za-flight-app",
          "text": "Install SWISS app + add booking YNZ5Y5",
          "day": "2026-03-15"
        },
        {
          "id": "za-checkin",
          "text": "Online check-in ~23h before ZRH→CPT",
          "day": "2026-04-03"
        },
        {
          "id": "za-car-docs",
          "text": "Bring physical driver license + credit card (driver name)",
          "day": "2026-04-04"
        },
        {
          "id": "za-car-pay",
          "text": "Pay at desk ZAR 15621.48 + ensure deposit capability",
          "day": "2026-04-05"
        },
        {
          "id": "za-winetram-book",
          "text": "Book Wine Tram tickets + choose line with kids-friendly estates (animals/gardens/chocolate)",
          "day": "2026-03-15"
        },
        {
          "id": "za-lunch-book",
          "text": "Reserve long lunch at selected estate for 06/04",
          "day": "2026-03-20"
        },
        {
          "id": "za-dinner-fish",
          "text": "Pick/Reserve fish restaurant in Franschhoek (fallback: SA BBQ)",
          "day": "2026-04-05"
        },
        {
          "id": "za-rest-0504-lunch",
          "text": "Pick/book Franschhoek lunch spot for arrival day (05/04)",
          "day": "2026-04-01"
        },
        {
          "id": "za-rest-0504-dinner",
          "text": "Pick/book amazing dinner 05/04 (fish preferred; BBQ fallback)",
          "day": "2026-04-01"
        },
        {
          "id": "za-safari-day",
          "text": "Choose reserve + book private safari day trip (07/04 recommended)",
          "day": "2026-03-10"
        },
        {
          "id": "za-cape-point",
          "text": "Decide Cape Point tour self-drive vs guided (09/04)",
          "day": "2026-03-20"
        },
        {
          "id": "za-robben",
          "text": "Book Robben Island ferry/tour slot (wind dependent)",
          "day": "2026-03-25"
        },
        {
          "id": "za-table-mtn",
          "text": "Book/plan Table Mountain cableway slot + check weather",
          "day": "2026-03-25"
        },
        {
          "id": "za-sushi-waterfront",
          "text": "Pick + book 1 sushi night at V&A Waterfront (Nobu/Willoughby etc.)",
          "day": "2026-04-12"
        },
        {
          "id": "za-seafood-kalkbay",
          "text": "Pick 1 seafood meal near Kalk Bay/Simon’s Town (Harbour House etc.)",
          "day": "2026-04-09"
        },
        {
          "id": "za-houtbay-lunch",
          "text": "Book/confirm lunch at Chapman’s Peak Hotel (Hout Bay) for base switch day",
          "day": "2026-04-11"
        },
        {
          "id": "za-lunch-0804",
          "text": "Pick/plan lunch stop on 08/04 drive to Boulders (Noordhoek Farm Village vs Cape Point Vineyards)",
          "day": "2026-04-08"
        },
        {
          "id": "za-cape-point-lunch",
          "text": "Pick lunch stop for Cape Point day (09/04) and reserve if needed",
          "day": "2026-04-09"
        },
        {
          "id": "za-dinner-0904",
          "text": "Book dinner for 09/04 (Kalk Bay seafood suggested)",
          "day": "2026-04-09"
        },
        {
          "id": "za-ideas-1004",
          "text": "Choose 10/04 activity option (snorkel / Muizenberg / coastal walk)",
          "day": "2026-04-10"
        },
        {
          "id": "za-lunch-1204",
          "text": "Pick/book lunch after Table Mountain (Kloof Street House or Dineplan shortlist)",
          "day": "2026-04-12"
        },
        {
          "id": "za-kirstenbosch",
          "text": "Plan Kirstenbosch day + choose lunch spot (Constantia area) for 13/04",
          "day": "2026-04-13"
        },
        {
          "id": "za-esim",
          "text": "Decide eSIM for South Africa (Holafly or alternative) + install before departure",
          "day": "2026-04-03"
        },
        {
          "id": "za-book-kelp-provider",
          "text": "Choose/book kelp snorkel provider: Airbnb Experience vs Kelptown (Boulders/Simon's Town).",
          "day": "2026-04-09"
        }
      ],
      "resources": [
        {
          "category": "wine",
          "title": "Franschhoek Wine Tram — official tickets & lines",
          "url": "https://winetram.co.za/",
          "notes": "Best for kids-friendly hop-on/hop-off wine day (tram+bus). Book line + lunch stop."
        },
        {
          "category": "safari",
          "title": "Aquila Private Game Reserve — day safari options",
          "url": "https://www.aquilasafari.com/",
          "notes": "Closest popular private-reserve day safari from the Cape (early start)."
        },
        {
          "category": "safari",
          "title": "Inverdoorn Game Reserve — day safari options",
          "url": "https://inverdoorn.com/",
          "notes": "Alternative private reserve day safari option."
        },
        {
          "category": "table-mountain",
          "title": "Table Mountain Aerial Cableway — tickets + status",
          "url": "https://www.tablemountain.net/",
          "notes": "Check wind/weather status; consider booking time slot."
        },
        {
          "category": "robben-island",
          "title": "Robben Island Museum — tours",
          "url": "https://www.robben-island.org.za/",
          "notes": "Book early; sailings can cancel with wind."
        },
        {
          "category": "scratch-patch",
          "title": "Scratch Patch / Mineral World (Simon’s Town area)",
          "url": "https://scratchpatch.co.za/",
          "notes": "Great kids activity near Boulders Beach."
        },
        {
          "category": "food-franschhoek",
          "title": "Dineplan — Franschhoek restaurants (bookings hub)",
          "url": "https://www.dineplan.com/",
          "notes": "Search for Franschhoek and book lunch/dinner. Use this as the reliable booking hub."
        },
        {
          "category": "food-franschhoek",
          "title": "Protégé (Franschhoek) — modern, great food",
          "url": "https://protege.restaurant/",
          "notes": "High-end casual; good for a special first night with kids (faster than a long tasting menu)."
        },
        {
          "category": "food-franschhoek",
          "title": "Reuben's Restaurant & Bar (Franschhoek) — family-friendly",
          "url": "https://reubens.co.za/",
          "notes": "Good all-rounder for lunch/dinner with kids."
        },
        {
          "category": "food-franschhoek",
          "title": "The Hussar Grill Franschhoek — SA BBQ/steak fallback",
          "url": "https://hussargrill.com/",
          "notes": "Solid BBQ/steak option if fish/seafood is limited in Franschhoek."
        },
        {
          "category": "food-boulders",
          "title": "Harbour House Kalk Bay (near Boulders) — seafood option",
          "url": "https://harbourhouse.co.za/",
          "notes": "Great seafood near your Boulders base; good candidate for a fish-focused meal."
        },
        {
          "category": "food-cpt",
          "title": "Nobu (One&Only Cape Town) — sushi / Japanese (reservations recommended)",
          "url": "https://www.oneandonlyresorts.com/cape-town/dining/nobu",
          "notes": "Premium waterfront sushi; book ahead for good tables."
        },
        {
          "category": "food-cpt",
          "title": "Willoughby & Co (V&A Waterfront) — sushi (often queues)",
          "url": "https://willoughbyandco.co.za/",
          "notes": "Very popular; go early or reserve/queue plan."
        },
        {
          "category": "food-boulders",
          "title": "Harbour House Kalk Bay — seafood (great near Simon’s Town/Boulders)",
          "url": "https://harbourhouse.co.za/kalk-bay/",
          "notes": "Strong fish/seafood option near your Boulders base."
        },
        {
          "category": "food-boulders",
          "title": "Salty Sea Dog (Simon’s Town harbour) — fish & chips / casual",
          "url": "https://saltyseadog.co.za/",
          "notes": "Casual and kid-friendly, good harbour vibe."
        },
        {
          "category": "food-boulders",
          "title": "Chapman’s Peak Hotel (Hout Bay) — calamari lunch stop",
          "url": "https://chapmanspeakhotel.co.za/",
          "notes": "Great lunch stop when driving Chapman’s Peak. Consider booking ahead in season."
        },
        {
          "category": "food-boulders",
          "title": "Noordhoek Farm Village — lunch stop (family-friendly)",
          "url": "https://noordhoekfarmvillage.co.za/",
          "notes": "Good lunch stop on scenic route via Noordhoek/Chapman’s Peak."
        },
        {
          "category": "food-boulders",
          "title": "Cape Point Vineyards — lunch/picnic option",
          "url": "https://capepointvineyards.co.za/",
          "notes": "Great views; check booking/picnic availability."
        },
        {
          "category": "food-cpt",
          "title": "Kloof Street House (Cape Town) — lunch/dinner booking",
          "url": "https://kloofstreethouse.co.za/",
          "notes": "Good lunch after Table Mountain; book ahead."
        },
        {
          "category": "food-cpt",
          "title": "Dineplan — Cape Town restaurants booking hub",
          "url": "https://www.dineplan.com/cape-town",
          "notes": "Use filters (Kloof Street / Gardens / Waterfront) and reserve."
        },
        {
          "category": "kirstenbosch",
          "title": "Kirstenbosch National Botanical Garden — info/tickets",
          "url": "https://www.sanbi.org/gardens/kirstenbosch/",
          "notes": "Plan 3–4 hours; great for kids."
        },
        {
          "category": "food-cpt",
          "title": "Dineplan — Constantia / Southern Suburbs restaurants",
          "url": "https://www.dineplan.com/cape-town?query=Constantia",
          "notes": "Use to book lunch near Kirstenbosch/Constantia."
        },
        {
          "category": "food-franschhoek",
          "title": "Dineplan — Franschhoek search",
          "url": "https://www.dineplan.com/?query=Franschhoek",
          "notes": "Use to book 05/04 lunch + dinner + winery lunch."
        },
        {
          "category": "cape-point-lunch",
          "title": "Cape Point Ostrich Farm — farm stop",
          "url": "https://capepointostrichfarm.com/",
          "notes": "Farm-style visit; good with kids."
        },
        {
          "category": "cape-point-lunch",
          "title": "Imhoff Farm (Kommetjie) — farm-style stop",
          "url": "https://imhoff.co.za/",
          "notes": "Farm village stop en route; good lunch + kids activities."
        },
        {
          "category": "connectivity",
          "title": "eSIM South Africa (Holafly) — 13 days",
          "url": "https://esim.holafly.com/esim-south-africa/?selectedDays=13&startDate=2026-04-05&endDate=2026-04-17",
          "notes": "Consider for arrival day. Check coverage + hotspot policy."
        },
        {
          "category": "table-mountain",
          "title": "Table Mountain Aerial Cableway — tickets / online booking",
          "url": "https://www.tablemountain.net/buy-tickets/",
          "notes": "Buy tickets online; check weather/wind status day-of."
        },
        {
          "category": "food-boulders",
          "title": "Airbnb Experience — near Boulders Beach / Simon's Town",
          "url": "https://www.airbnb.com/experiences/399480?c=.pi0.pk21690586450_168862475244&gad_source=1&gad_campaignid=21690586450&gbraid=0AAAAADz55LnQboAkAW2gvr6tDddg15xNO",
          "notes": "Use when around Boulders Beach / Simon's Town."
        },
        {
          "category": "boulders-experiences",
          "title": "Kelptown — Kelp Forest Snorkeling (Simon's Town / Boulders area)",
          "url": "https://kelptown.com/products/kelp-forest-snorkeling",
          "notes": "From fetched page: private guided experience, ~2h total / ~1h water, starts in Simon's Town, suitable from age 6+, listed at R 2,500."
        }
      ],
      "notes": [
        "Kelp snorkel compare: Airbnb is cheaper/social and has stronger public review signal; Kelptown is private/family-flex with younger kids (6+)."
      ],
      "weatherPrognosis": {
        "title": "Cape Town 10-day forecast (yr.no)",
        "source": "yr.no (api.met.no locationforecast)",
        "location": "Cape Town",
        "lat": -33.9249,
        "lon": 18.4241,
        "updatedAt": "2026-03-31T04:32:07.265551+00:00",
        "days": [
          {
            "date": "2026-03-31",
            "symbolCode": "clearsky_night",
            "tempMinC": 13.1,
            "tempMaxC": 28.7,
            "precipMm": 0.0,
            "windMaxKmh": 16.9
          },
          {
            "date": "2026-04-01",
            "symbolCode": "fog",
            "tempMinC": 17.9,
            "tempMaxC": 26.5,
            "precipMm": 10.6,
            "windMaxKmh": 29.9
          },
          {
            "date": "2026-04-02",
            "symbolCode": "rain",
            "tempMinC": 17.6,
            "tempMaxC": 29.0,
            "precipMm": 81.5,
            "windMaxKmh": 20.9
          },
          {
            "date": "2026-04-03",
            "symbolCode": "cloudy",
            "tempMinC": 19.5,
            "tempMaxC": 25.3,
            "precipMm": 0.1,
            "windMaxKmh": 10.4
          },
          {
            "date": "2026-04-04",
            "symbolCode": "fair_night",
            "tempMinC": 15.2,
            "tempMaxC": 22.7,
            "precipMm": 0.0,
            "windMaxKmh": 12.2
          },
          {
            "date": "2026-04-05",
            "symbolCode": "rainshowers_night",
            "tempMinC": 14.5,
            "tempMaxC": 20.3,
            "precipMm": 2.3,
            "windMaxKmh": 17.6
          },
          {
            "date": "2026-04-06",
            "symbolCode": "fair_night",
            "tempMinC": 13.6,
            "tempMaxC": 22.2,
            "precipMm": 0.0,
            "windMaxKmh": 18.4
          },
          {
            "date": "2026-04-07",
            "symbolCode": "clearsky_night",
            "tempMinC": 11.7,
            "tempMaxC": 29.5,
            "precipMm": 0.0,
            "windMaxKmh": 7.2
          },
          {
            "date": "2026-04-08",
            "symbolCode": "cloudy",
            "tempMinC": 19.4,
            "tempMaxC": 27.6,
            "precipMm": 0.4,
            "windMaxKmh": 9.0
          },
          {
            "date": "2026-04-09",
            "symbolCode": "clearsky_night",
            "tempMinC": 18.1,
            "tempMaxC": 26.7,
            "precipMm": 0.0,
            "windMaxKmh": 12.2
          }
        ]
      }
    },
    {
      "id": "it-2026-aug",
      "title": "Italy — Edolo",
      "country": "Italy",
      "startDate": "2026-08-01",
      "endDate": "2026-08-08",
      "bookings": [
        {
          "type": "airbnb",
          "place": "Condominium in Edolo",
          "host": "Daniela",
          "address": "Via Togni, Edolo, Lombardia 25048, Italy",
          "checkIn": "2026-08-01T15:00:00",
          "checkOut": "2026-08-08T11:00:00"
        }
      ],
      "experiencesIdeas": [
        {
          "title": "Garda Lake pasta cooking class",
          "price": 69,
          "rating": 5.0
        },
        {
          "title": "Winery tour + organic tasting (Trentino)",
          "price": 32,
          "rating": 4.96
        },
        {
          "title": "Wine tasting at Como Lake winery",
          "price": 54,
          "rating": 4.86
        }
      ],
      "itinerary": [],
      "todos": [
        {
          "id": "it-car",
          "text": "Decide rental car vs train logistics",
          "day": "2026-08-01"
        },
        {
          "id": "it-1day",
          "text": "Pick 2 day trips (Como / Trentino / Garda)",
          "day": "2026-08-02"
        }
      ],
      "weatherPrognosis": {
        "title": "Edolo 10-day forecast (yr.no)",
        "source": "yr.no (api.met.no locationforecast)",
        "location": "Edolo",
        "lat": 46.1796,
        "lon": 10.3325,
        "updatedAt": "2026-03-31T04:32:08.023933+00:00",
        "days": [
          {
            "date": "2026-03-31",
            "symbolCode": "fog",
            "tempMinC": -6.5,
            "tempMaxC": 5.0,
            "precipMm": 6.8,
            "windMaxKmh": 17.3
          },
          {
            "date": "2026-04-01",
            "symbolCode": "partlycloudy_night",
            "tempMinC": -5.6,
            "tempMaxC": 8.5,
            "precipMm": 0.0,
            "windMaxKmh": 10.8
          },
          {
            "date": "2026-04-02",
            "symbolCode": "cloudy",
            "tempMinC": -5.5,
            "tempMaxC": 10.7,
            "precipMm": 0.0,
            "windMaxKmh": 8.6
          },
          {
            "date": "2026-04-03",
            "symbolCode": "clearsky_night",
            "tempMinC": -1.4,
            "tempMaxC": 10.4,
            "precipMm": 0.0,
            "windMaxKmh": 5.0
          },
          {
            "date": "2026-04-04",
            "symbolCode": "clearsky_night",
            "tempMinC": 0.1,
            "tempMaxC": 13.6,
            "precipMm": 0.0,
            "windMaxKmh": 4.3
          },
          {
            "date": "2026-04-05",
            "symbolCode": "clearsky_night",
            "tempMinC": 2.7,
            "tempMaxC": 15.0,
            "precipMm": 0.0,
            "windMaxKmh": 2.2
          },
          {
            "date": "2026-04-06",
            "symbolCode": "partlycloudy_night",
            "tempMinC": 4.5,
            "tempMaxC": 15.4,
            "precipMm": 0.0,
            "windMaxKmh": 1.8
          },
          {
            "date": "2026-04-07",
            "symbolCode": "clearsky_night",
            "tempMinC": 4.7,
            "tempMaxC": 17.4,
            "precipMm": 2.3,
            "windMaxKmh": 5.8
          },
          {
            "date": "2026-04-08",
            "symbolCode": "partlycloudy_night",
            "tempMinC": 2.7,
            "tempMaxC": 17.2,
            "precipMm": 0.1,
            "windMaxKmh": 7.9
          },
          {
            "date": "2026-04-09",
            "symbolCode": "cloudy",
            "tempMinC": 6.7,
            "tempMaxC": 13.7,
            "precipMm": 0.2,
            "windMaxKmh": 6.5
          }
        ]
      }
    },
    {
      "id": "jp-2027",
      "title": "Japan — Sakura + hidden regions + Tokyo (research)",
      "country": "Japan",
      "startDate": "2027-03-26",
      "endDate": "2027-04-11",
      "bookings": [],
      "experiencesIdeas": [
        {
          "title": "Route ideas: Tokyo → Kyoto/Osaka → Hakone/Onsen → Alps",
          "price": null,
          "rating": null
        },
        {
          "title": "Food: izakaya crawl + ramen map",
          "price": null,
          "rating": null
        }
      ],
      "itinerary": [
        {
          "date": "2027-03-26",
          "city": "Tokyo (arrival)",
          "activities": [
            "Arrive + check-in",
            "Light walk + dinner",
            "Early night"
          ]
        },
        {
          "date": "2027-03-27",
          "city": "Tokyo",
          "activities": [
            "Buffer day / recovery",
            "Local neighborhood exploration"
          ]
        },
        {
          "date": "2027-03-28",
          "city": "(Hidden region 1)",
          "activities": [
            "Travel day (rail/flight)",
            "Onsen + quiet town"
          ]
        },
        {
          "date": "2027-03-29",
          "city": "(Hidden region 1)",
          "activities": [
            "Village / rural experience",
            "Local food"
          ]
        },
        {
          "date": "2027-03-30",
          "city": "(Okinawa / islands: beaches)",
          "activities": [
            "Move toward warm coast / island",
            "Beach day"
          ]
        },
        {
          "date": "2027-03-31",
          "city": "(Okinawa / islands: beaches)",
          "activities": [
            "Beach / snorkeling",
            "Sunset dinner"
          ]
        },
        {
          "date": "2027-04-01",
          "city": "(Sakura focus)",
          "activities": [
            "Cherry blossoms day",
            "Photo spots"
          ]
        },
        {
          "date": "2027-04-02",
          "city": "Tokyo",
          "activities": [
            "Return to Tokyo",
            "Settle into Tokyo base"
          ]
        },
        {
          "date": "2027-04-03",
          "city": "Tokyo",
          "activities": [
            "Museums / districts"
          ]
        },
        {
          "date": "2027-04-04",
          "city": "Tokyo",
          "activities": [
            "Day trip option (Kamakura / Nikko / Kawagoe)"
          ]
        },
        {
          "date": "2027-04-05",
          "city": "Tokyo",
          "activities": [
            "Neighborhood scouting for long stay"
          ]
        },
        {
          "date": "2027-04-06",
          "city": "Tokyo",
          "activities": [
            "Universities / language schools research day"
          ]
        },
        {
          "date": "2027-04-07",
          "city": "Tokyo",
          "activities": [
            "Food + culture"
          ]
        },
        {
          "date": "2027-04-08",
          "city": "Tokyo",
          "activities": [
            "Shopping / prep / rest"
          ]
        },
        {
          "date": "2027-04-09",
          "city": "Tokyo",
          "activities": [
            "Free day / make-up day"
          ]
        },
        {
          "date": "2027-04-10",
          "city": "Tokyo",
          "activities": [
            "Pack + final dinner"
          ]
        },
        {
          "date": "2027-04-11",
          "city": "Tokyo (depart)",
          "activities": [
            "Checkout + depart"
          ]
        }
      ],
      "todos": [
        {
          "id": "jp-window",
          "text": "Pick month + duration (spring vs autumn)",
          "day": null
        },
        {
          "id": "jp-cities",
          "text": "Decide route + must-see cities",
          "day": null
        },
        {
          "id": "flights-track",
          "text": "Track flight price options ZRH→TYO (NRT/HND) + return (alerts)",
          "day": "2027-09-01"
        },
        {
          "id": "route-draft",
          "text": "Draft route outside hotspots (2–3 regions) + sakura timing",
          "day": "2026-10-01"
        },
        {
          "id": "stay-tokyo",
          "text": "Shortlist Tokyo neighborhoods for 1-week base + university/guesthouse options",
          "day": "2026-10-15"
        },
        {
          "id": "teen-year",
          "text": "Research 1-year study/work pathways + housing (sharehouse vs apt) + visa basics",
          "day": "2026-11-01"
        },
        {
          "id": "jp-stays-okinawa",
          "text": "Shortlist/choose Okinawa island base(s): Okinawa main vs Miyakojima vs Ishigaki (compare resorts + flights)"
        },
        {
          "id": "jp-flights-open",
          "text": "Start long-haul flight search (ZRH→Tokyo) once booking windows open (~12 months): earliest 26 Mar 2026",
          "day": "2026-03-26"
        },
        {
          "id": "jp-domestic-flights",
          "text": "If using JAL, check whether free/discount domestic add-on flights apply; plan island hops accordingly"
        },
        {
          "id": "jp-jal-eligibility",
          "text": "When flights open (26 Mar 2026+), check JAL booking path for “free domestic add-on” eligibility and which domestic legs are included.",
          "day": "2026-03-26"
        },
        {
          "id": "jp-hidden1-choice",
          "text": "Pick “Hidden region 1”: Sapporo (Hokkaido) vs Kanazawa vs Hiroshima based on vibe + flight connectivity."
        }
      ],
      "resources": [
        {
          "category": "stay-okinawa",
          "title": "Halekulani Okinawa",
          "url": "https://trip.tpx.lt/pWRUIeIH",
          "notes": "Resort option (Okinawa)."
        },
        {
          "category": "stay-okinawa",
          "title": "Iraph Sui (Miyakojima)",
          "url": "https://trip.tpx.lt/2O3v9rvw",
          "notes": "Resort option (Miyakojima)."
        },
        {
          "category": "stay-okinawa",
          "title": "Shigira Bayside Suite Allamanda (Miyakojima)",
          "url": "https://trip.tpx.lt/lmlHOVKl",
          "notes": "Resort option (Miyakojima)."
        },
        {
          "category": "stay-okinawa",
          "title": "ANA InterContinental Ishigaki Resort",
          "url": "https://trip.tpx.lt/uk5o1otI",
          "notes": "Resort option (Ishigaki)."
        },
        {
          "category": "stay-okinawa",
          "title": "Hoshinoya Okinawa",
          "url": "https://trip.tpx.lt/p3wyYmGy",
          "notes": "Resort option (Okinawa)."
        },
        {
          "category": "flights",
          "title": "JAL route map / destinations (planning)",
          "url": "https://www.jal.co.jp/jp/en/",
          "notes": "Use as starting point; final eligibility for the incentive must be confirmed at booking time."
        },
        {
          "category": "housing",
          "title": "Oakhouse (sharehouses / social residences)",
          "url": "https://www.oakhouse.jp/eng/",
          "notes": "Good for private room in managed sharehouse; easy move-in."
        },
        {
          "category": "housing",
          "title": "Sakura House (apartments + sharehouses)",
          "url": "https://www.sakura-house.com/",
          "notes": "Foreigner-friendly; apartments + sharehouses; flexible terms."
        },
        {
          "category": "housing",
          "title": "XROSS House (sharehouses)",
          "url": "https://x-house.co.jp/en/",
          "notes": "Budget sharehouses; filter for newer/managed properties."
        },
        {
          "category": "school",
          "title": "Temple University Japan Campus (TUJ)",
          "url": "https://www.tuj.ac.jp/",
          "notes": "English-taught; Tokyo-based."
        }
      ],
      "notes": [
        "Flights: ZRH→Tokyo searches/booking typically open ~12 months out; do not start before 26 Mar 2026 for a 26 Mar 2027 departure window.",
        "Consider JAL tourism incentive: some international tickets into Japan may allow adding complimentary domestic flights to many JAL destinations (taxes/fees may apply). Verify eligibility at booking time."
      ],
      "domesticFlightOptions": {
        "schema": "jp-2027.domesticFlightOptions.v1",
        "jalIncentive": {
          "name": "JAL international + complimentary domestic add-on (verify eligibility)",
          "summary": "If you book the long-haul into Japan on Japan Airlines (JAL) under the incentive, you may be able to add a domestic JAL flight to one of ~64 destinations for no extra airfare (taxes/fees may apply). Availability/terms can change; verify at booking time.",
          "howToUse": [
            "Book ZRH→Tokyo on JAL (codeshare possible; confirm it is marketed/eligible as JAL).",
            "In the same booking flow or via multi-city itinerary, add domestic sectors (e.g., Tokyo→Okinawa).",
            "Check baggage rules and connections; plan 2–3 hour buffers."
          ],
          "links": [
            {
              "title": "Background article (AFAR) — free domestic flights program",
              "url": "https://www.afar.com/magazine/japan-airlines-is-giving-away-free-domestic-flights"
            }
          ]
        },
        "routeIdeas": [
          {
            "title": "Option 1 (matches current placeholders): North + Beaches + Tokyo",
            "legs": [
              "Tokyo (HND/NRT) → Sapporo (CTS) — 2 nights (Hidden region 1)",
              "Sapporo (CTS) → Okinawa (OKA) OR Ishigaki (ISG) — 2 nights (Hidden region 2: beaches)",
              "Okinawa/Ishigaki → Tokyo (HND) — return for Sakura focus + Tokyo days"
            ],
            "notes": "Most flight-efficient if you can do CTS→OKA/ISG direct or via HND."
          },
          {
            "title": "Option 2: Culture + Beaches + Tokyo",
            "legs": [
              "Tokyo → Kanazawa/Komatsu (KMQ) — 2 nights (Hidden region 1)",
              "KMQ → Okinawa (OKA) — 2 nights (beaches)",
              "OKA → Tokyo — Sakura + Tokyo"
            ],
            "notes": "Kanazawa is a great “Kyoto alternative” for culture without the crowds."
          },
          {
            "title": "Option 3: Islands focus (Okinawa main + Miyako + Ishigaki)",
            "legs": [
              "Tokyo → Okinawa (OKA) — base 1–2 nights",
              "OKA → Miyako (MMY) — 2–3 nights (Iraph Sui / Allamanda)",
              "MMY → Ishigaki (ISG) — 2–3 nights (InterContinental)",
              "ISG → Tokyo"
            ],
            "notes": "More domestic hops, but fits your resort shortlist best."
          }
        ]
      },
      "scouting": {
        "schema": "jp-2027.scouting.v1",
        "tripPurpose": "April 2027 scouting trip for summer 2027 move-in (age 18) + school/housing exploration.",
        "candidateCities": [
          {
            "city": "Tokyo",
            "why": "Most English-taught options + largest housing market; best for first-time Japan base.",
            "neighborhoods": [
              "Bunkyo (Hongo/Myogadani/Nezu)",
              "Yotsuya/Ichigaya/Iidabashi",
              "Ueno/Taito",
              "Nakano",
              "Kichijoji/Mitaka"
            ],
            "links": {
              "English-taught universities / programs": [
                {
                  "title": "Temple University Japan (TUJ) — English-taught",
                  "url": "https://www.tuj.ac.jp/"
                },
                {
                  "title": "Sophia University (Tokyo) — English-taught options",
                  "url": "https://www.sophia.ac.jp/eng/"
                },
                {
                  "title": "Waseda University — English-based degree programs",
                  "url": "https://www.waseda.jp/top/en/"
                },
                {
                  "title": "International Christian University (ICU) — Mitaka (Tokyo area)",
                  "url": "https://www.icu.ac.jp/en/"
                }
              ],
              "Intensive Japanese (daily) / language schools": [
                {
                  "title": "ISI Japanese Language School (Tokyo/Kyoto/Osaka)",
                  "url": "https://www.isi-education.com/"
                },
                {
                  "title": "GenkiJACS (Tokyo/Kyoto/Fukuoka) — Japanese language school",
                  "url": "https://www.genkijacs.com/"
                },
                {
                  "title": "Go! Go! Nihon — school + accommodation help (directory)",
                  "url": "https://gogonihon.com/en/"
                },
                {
                  "title": "Akamonkai (Tokyo) — Japanese language school",
                  "url": "https://www.akamonkai.ac.jp/en/"
                }
              ],
              "Housing (USD 2–3k/mo target)": [
                {
                  "title": "Sakura House (apartments + sharehouses)",
                  "url": "https://www.sakura-house.com/"
                },
                {
                  "title": "Oakhouse (managed sharehouses)",
                  "url": "https://www.oakhouse.jp/eng/"
                },
                {
                  "title": "XROSS House (sharehouses)",
                  "url": "https://x-house.co.jp/en/"
                },
                {
                  "title": "GTN (guarantor / foreigner support) — info",
                  "url": "https://gtn.co.jp/en/"
                },
                {
                  "title": "HousingJapan (higher-end rentals; good for reference)",
                  "url": "https://housingjapan.com/"
                }
              ]
            }
          },
          {
            "city": "Yokohama",
            "why": "Calmer living with easy access to Tokyo; good compromise.",
            "neighborhoods": [
              "Minato Mirai",
              "Yokohama Station area",
              "Kannai"
            ],
            "links": {
              "English-taught universities / programs": [
                {
                  "title": "Keio University (some English programs; campuses vary)",
                  "url": "https://www.keio.ac.jp/en/"
                },
                {
                  "title": "Yokohama City University (international programs info)",
                  "url": "https://www.yokohama-cu.ac.jp/english/"
                }
              ],
              "Intensive Japanese (daily) / language schools": [
                {
                  "title": "ISI Japanese Language School (Tokyo/Kyoto/Osaka)",
                  "url": "https://www.isi-education.com/"
                },
                {
                  "title": "GenkiJACS (Tokyo/Kyoto/Fukuoka) — Japanese language school",
                  "url": "https://www.genkijacs.com/"
                },
                {
                  "title": "Go! Go! Nihon — school + accommodation help (directory)",
                  "url": "https://gogonihon.com/en/"
                }
              ],
              "Housing (USD 2–3k/mo target)": [
                {
                  "title": "Sakura House (apartments + sharehouses)",
                  "url": "https://www.sakura-house.com/"
                },
                {
                  "title": "Oakhouse (managed sharehouses)",
                  "url": "https://www.oakhouse.jp/eng/"
                },
                {
                  "title": "XROSS House (sharehouses)",
                  "url": "https://x-house.co.jp/en/"
                }
              ]
            }
          },
          {
            "city": "Kyoto",
            "why": "Major student city; strong culture; can be calmer than Tokyo (tourism peaks).",
            "neighborhoods": [
              "Kawaramachi",
              "Imadegawa (near unis)",
              "Kyoto Station area (transit)"
            ],
            "links": {
              "English-taught universities / programs": [
                {
                  "title": "Kyoto University (international programs)",
                  "url": "https://www.kyoto-u.ac.jp/en/education-campus/international-programs"
                },
                {
                  "title": "Doshisha University (international/English programs)",
                  "url": "https://www.doshisha.ac.jp/english/"
                }
              ],
              "Intensive Japanese (daily) / language schools": [
                {
                  "title": "ISI Japanese Language School (Tokyo/Kyoto/Osaka)",
                  "url": "https://www.isi-education.com/"
                },
                {
                  "title": "GenkiJACS (Tokyo/Kyoto/Fukuoka) — Japanese language school",
                  "url": "https://www.genkijacs.com/"
                },
                {
                  "title": "Go! Go! Nihon — school + accommodation help (directory)",
                  "url": "https://gogonihon.com/en/"
                }
              ],
              "Housing (USD 2–3k/mo target)": [
                {
                  "title": "Sakura House (apartments + sharehouses)",
                  "url": "https://www.sakura-house.com/"
                },
                {
                  "title": "Oakhouse (managed sharehouses)",
                  "url": "https://www.oakhouse.jp/eng/"
                },
                {
                  "title": "XROSS House (sharehouses)",
                  "url": "https://x-house.co.jp/en/"
                }
              ]
            }
          },
          {
            "city": "Osaka",
            "why": "Big city energy, excellent food; often better value housing; strong university ecosystem.",
            "neighborhoods": [
              "Umeda",
              "Tennoji",
              "Namba (busy)"
            ],
            "links": {
              "English-taught universities / programs": [
                {
                  "title": "Osaka University (international programs)",
                  "url": "https://www.osaka-u.ac.jp/en/education/international"
                },
                {
                  "title": "Kansai University (international programs)",
                  "url": "https://www.kansai-u.ac.jp/English/"
                }
              ],
              "Intensive Japanese (daily) / language schools": [
                {
                  "title": "ISI Japanese Language School (Tokyo/Kyoto/Osaka)",
                  "url": "https://www.isi-education.com/"
                },
                {
                  "title": "GenkiJACS (Tokyo/Kyoto/Fukuoka) — Japanese language school",
                  "url": "https://www.genkijacs.com/"
                },
                {
                  "title": "Go! Go! Nihon — school + accommodation help (directory)",
                  "url": "https://gogonihon.com/en/"
                }
              ],
              "Housing (USD 2–3k/mo target)": [
                {
                  "title": "Sakura House (apartments + sharehouses)",
                  "url": "https://www.sakura-house.com/"
                },
                {
                  "title": "Oakhouse (managed sharehouses)",
                  "url": "https://www.oakhouse.jp/eng/"
                },
                {
                  "title": "XROSS House (sharehouses)",
                  "url": "https://x-house.co.jp/en/"
                }
              ]
            }
          },
          {
            "city": "Fukuoka",
            "why": "High livability + value; less crowded; great for students.",
            "neighborhoods": [
              "Tenjin",
              "Hakata"
            ],
            "links": {
              "English-taught universities / programs": [
                {
                  "title": "Kyushu University (international programs)",
                  "url": "https://www.kyushu-u.ac.jp/en/education/"
                }
              ],
              "Intensive Japanese (daily) / language schools": [
                {
                  "title": "ISI Japanese Language School (Tokyo/Kyoto/Osaka)",
                  "url": "https://www.isi-education.com/"
                },
                {
                  "title": "GenkiJACS (Tokyo/Kyoto/Fukuoka) — Japanese language school",
                  "url": "https://www.genkijacs.com/"
                },
                {
                  "title": "Go! Go! Nihon — school + accommodation help (directory)",
                  "url": "https://gogonihon.com/en/"
                }
              ],
              "Housing (USD 2–3k/mo target)": [
                {
                  "title": "Sakura House (apartments + sharehouses)",
                  "url": "https://www.sakura-house.com/"
                },
                {
                  "title": "Oakhouse (managed sharehouses)",
                  "url": "https://www.oakhouse.jp/eng/"
                },
                {
                  "title": "XROSS House (sharehouses)",
                  "url": "https://x-house.co.jp/en/"
                }
              ]
            }
          },
          {
            "city": "Sapporo",
            "why": "Distinct north vibe and good value; weather is tradeoff.",
            "neighborhoods": [
              "Odori/Susukino",
              "Sapporo Station area"
            ],
            "links": {
              "English-taught universities / programs": [
                {
                  "title": "Hokkaido University (international programs)",
                  "url": "https://www.global.hokudai.ac.jp/"
                }
              ],
              "Intensive Japanese (daily) / language schools": [
                {
                  "title": "ISI Japanese Language School (Tokyo/Kyoto/Osaka)",
                  "url": "https://www.isi-education.com/"
                },
                {
                  "title": "GenkiJACS (Tokyo/Kyoto/Fukuoka) — Japanese language school",
                  "url": "https://www.genkijacs.com/"
                },
                {
                  "title": "Go! Go! Nihon — school + accommodation help (directory)",
                  "url": "https://gogonihon.com/en/"
                }
              ],
              "Housing (USD 2–3k/mo target)": [
                {
                  "title": "Sakura House (apartments + sharehouses)",
                  "url": "https://www.sakura-house.com/"
                },
                {
                  "title": "Oakhouse (managed sharehouses)",
                  "url": "https://www.oakhouse.jp/eng/"
                },
                {
                  "title": "XROSS House (sharehouses)",
                  "url": "https://x-house.co.jp/en/"
                }
              ]
            }
          },
          {
            "city": "Okinawa (Naha / islands)",
            "why": "Lifestyle + beaches; fewer academic options; good as lifestyle extension.",
            "neighborhoods": [
              "Naha",
              "Onna (resort area)"
            ],
            "links": {
              "English-taught universities / programs": [
                {
                  "title": "University of the Ryukyus (international / exchange info)",
                  "url": "https://www.u-ryukyu.ac.jp/en/"
                }
              ],
              "Intensive Japanese (daily) / language schools": [
                {
                  "title": "ISI Japanese Language School (Tokyo/Kyoto/Osaka)",
                  "url": "https://www.isi-education.com/"
                },
                {
                  "title": "GenkiJACS (Tokyo/Kyoto/Fukuoka) — Japanese language school",
                  "url": "https://www.genkijacs.com/"
                },
                {
                  "title": "Go! Go! Nihon — school + accommodation help (directory)",
                  "url": "https://gogonihon.com/en/"
                }
              ],
              "Housing (USD 2–3k/mo target)": [
                {
                  "title": "Sakura House (apartments + sharehouses)",
                  "url": "https://www.sakura-house.com/"
                },
                {
                  "title": "Oakhouse (managed sharehouses)",
                  "url": "https://www.oakhouse.jp/eng/"
                },
                {
                  "title": "XROSS House (sharehouses)",
                  "url": "https://x-house.co.jp/en/"
                }
              ]
            }
          }
        ],
        "checklist": {
          "decisionsToMake": [
            "Choose school track: language school vs English-taught uni vs pathway",
            "Choose living format: serviced apartment first vs lease vs managed sharehouse",
            "Pick 1–2 home-base neighborhoods/cities based on commute + safety + lifestyle"
          ],
          "appointmentsToBook": [
            "2× housing consults (foreigner-friendly leasing agent/platform)",
            "2× serviced apartment/monthly mansion tours (landing plan)",
            "1× managed sharehouse visit (private room option)",
            "1–2× school admissions/info meetings (language + uni)"
          ],
          "questionsToAskHousing": [
            "Total monthly cost: rent + utilities + internet",
            "Upfront fees itemized: deposit, key money, agency, guarantor, cleaning, lock change",
            "Contract length + early termination penalties",
            "Furnishing: what is included vs what you must buy",
            "Laundry: in-unit vs shared; kitchen equipment included?",
            "House/building rules: guests, quiet hours, smoking",
            "Docs required for 18-year-old foreign student + visa timing"
          ],
          "questionsToAskSchool": [
            "English support level + student services",
            "Visa sponsorship + required documents",
            "Attendance/intensity expectations (language schools)",
            "Housing assistance/partners and recommended agencies",
            "Total yearly cost estimate (tuition + fees)"
          ],
          "budgetNotes": [
            "Budget target: USD 2–3k/month housing.",
            "Normal leases can require 2–5 months equivalent upfront (varies).",
            "Serviced apartments are simpler but higher monthly."
          ]
        }
      },
      "weatherPrognosis": {
        "title": "Tokyo 10-day forecast (yr.no)",
        "source": "yr.no (api.met.no locationforecast)",
        "location": "Tokyo",
        "lat": 35.6764,
        "lon": 139.65,
        "updatedAt": "2026-03-31T04:32:08.559641+00:00",
        "days": [
          {
            "date": "2026-03-31",
            "symbolCode": "heavyrain",
            "tempMinC": 13.9,
            "tempMaxC": 19.3,
            "precipMm": 36.3,
            "windMaxKmh": 33.1
          },
          {
            "date": "2026-04-01",
            "symbolCode": "cloudy",
            "tempMinC": 9.8,
            "tempMaxC": 18.1,
            "precipMm": 296.4,
            "windMaxKmh": 24.1
          },
          {
            "date": "2026-04-02",
            "symbolCode": "rain",
            "tempMinC": 6.2,
            "tempMaxC": 13.2,
            "precipMm": 7.5,
            "windMaxKmh": 20.2
          },
          {
            "date": "2026-04-03",
            "symbolCode": "clearsky_day",
            "tempMinC": 12.8,
            "tempMaxC": 17.0,
            "precipMm": 0.0,
            "windMaxKmh": 14.8
          },
          {
            "date": "2026-04-04",
            "symbolCode": "rain",
            "tempMinC": 15.6,
            "tempMaxC": 17.0,
            "precipMm": 6.4,
            "windMaxKmh": 24.5
          },
          {
            "date": "2026-04-05",
            "symbolCode": "lightrain",
            "tempMinC": 13.3,
            "tempMaxC": 18.5,
            "precipMm": 12.6,
            "windMaxKmh": 5.0
          },
          {
            "date": "2026-04-06",
            "symbolCode": "cloudy",
            "tempMinC": 13.6,
            "tempMaxC": 21.0,
            "precipMm": 0.1,
            "windMaxKmh": 8.6
          },
          {
            "date": "2026-04-07",
            "symbolCode": "cloudy",
            "tempMinC": 13.4,
            "tempMaxC": 21.4,
            "precipMm": 0.0,
            "windMaxKmh": 13.7
          },
          {
            "date": "2026-04-08",
            "symbolCode": "rainshowers_day",
            "tempMinC": 8.6,
            "tempMaxC": 19.5,
            "precipMm": 5.7,
            "windMaxKmh": 16.6
          },
          {
            "date": "2026-04-09",
            "symbolCode": "partlycloudy_day",
            "tempMinC": 10.4,
            "tempMaxC": 16.3,
            "precipMm": 0.0,
            "windMaxKmh": 15.5
          }
        ]
      }
    },
    {
      "id": "ch-2027-ski-nendaz",
      "title": "Ski — Nendaz (Rêves des Alpes)",
      "country": "Switzerland",
      "startDate": "2027-02-06",
      "endDate": "2027-02-13",
      "bookings": [
        {
          "type": "interhome",
          "place": "Rêves des Alpes",
          "host": "Interhome",
          "address": "Nendaz, Valais, Switzerland",
          "checkIn": "2027-02-06T00:00:00",
          "checkOut": "2027-02-13T00:00:00",
          "reservationNumber": "204827100216",
          "guests": "6 adults",
          "payment": {
            "total": 3999.0,
            "paid": 800.0,
            "dueDate": "2027-01-08"
          },
          "notes": "Online check-in available from 2027-01-09. Key handover/address visible within 28 days + after full payment."
        }
      ],
      "experiencesIdeas": [],
      "itinerary": [],
      "todos": [
        {
          "id": "checkin",
          "text": "Complete Interhome online check-in (available from 09/01/2027)",
          "day": "2027-01-09"
        },
        {
          "id": "pay",
          "text": "Pay remaining CHF 3,199 before due date",
          "day": "2027-01-08"
        },
        {
          "id": "docs",
          "text": "Download travel documents (available up to 4 weeks before)",
          "day": "2027-01-09"
        },
        {
          "id": "keyholder",
          "text": "Contact keyholder once details are released",
          "day": "2027-01-10"
        }
      ],
      "weatherPrognosis": {
        "title": "Nendaz 10-day forecast (yr.no)",
        "source": "yr.no (api.met.no locationforecast)",
        "location": "Nendaz",
        "lat": 46.1843,
        "lon": 7.3045,
        "updatedAt": "2026-03-31T04:32:09.169774+00:00",
        "days": [
          {
            "date": "2026-03-31",
            "symbolCode": "cloudy",
            "tempMinC": -8.9,
            "tempMaxC": -0.1,
            "precipMm": 0.1,
            "windMaxKmh": 10.8
          },
          {
            "date": "2026-04-01",
            "symbolCode": "fog",
            "tempMinC": -11.3,
            "tempMaxC": 1.4,
            "precipMm": 0.0,
            "windMaxKmh": 9.0
          },
          {
            "date": "2026-04-02",
            "symbolCode": "clearsky_night",
            "tempMinC": -9.6,
            "tempMaxC": 3.8,
            "precipMm": 0.0,
            "windMaxKmh": 7.9
          },
          {
            "date": "2026-04-03",
            "symbolCode": "partlycloudy_night",
            "tempMinC": -6.4,
            "tempMaxC": 4.7,
            "precipMm": 0.0,
            "windMaxKmh": 2.5
          },
          {
            "date": "2026-04-04",
            "symbolCode": "fair_night",
            "tempMinC": -3.9,
            "tempMaxC": 7.6,
            "precipMm": 0.0,
            "windMaxKmh": 1.4
          },
          {
            "date": "2026-04-05",
            "symbolCode": "clearsky_night",
            "tempMinC": -1.8,
            "tempMaxC": 9.6,
            "precipMm": 0.0,
            "windMaxKmh": 2.2
          },
          {
            "date": "2026-04-06",
            "symbolCode": "cloudy",
            "tempMinC": 1.1,
            "tempMaxC": 10.8,
            "precipMm": 0.0,
            "windMaxKmh": 1.8
          },
          {
            "date": "2026-04-07",
            "symbolCode": "clearsky_night",
            "tempMinC": 0.7,
            "tempMaxC": 12.4,
            "precipMm": 0.0,
            "windMaxKmh": 4.0
          },
          {
            "date": "2026-04-08",
            "symbolCode": "partlycloudy_night",
            "tempMinC": 1.0,
            "tempMaxC": 11.1,
            "precipMm": 0.3,
            "windMaxKmh": 5.8
          },
          {
            "date": "2026-04-09",
            "symbolCode": "cloudy",
            "tempMinC": 1.0,
            "tempMaxC": 10.3,
            "precipMm": 0.0,
            "windMaxKmh": 4.0
          }
        ]
      }
    }
  ]
}