trips/mock
Greg Pomerantz 6457501520 Unified leg system: every movement is a first-class leg + fix 4 in-the-sea coordinates
Legs:
- day.firstLeg (hotel -> first stop) is now a first-class leg object exactly
  like retLeg/transferIn: own mode/dur/geometry, same leg-row rendering, same
  click-to-edit L3 card (drag waypoint + walk/taxi toggle), same router +
  sanity guards, same strip/budget/context accounting
- hotel rendered as a timeline NODE on every day: 'arrive HH:MM - drop bags'
  on the arrival day (after the airport->hotel leg row), 'depart HH:MM'
  (startMin minus the out-leg) on ordinary days; the arrival drop-off is a
  stand-alone leg row instead of being embedded in the flight card
- arrival day: the first stop starts at hotel-arrival + out-leg; ordinary
  days keep startMin = time AT the first stop (the out-leg happens before)
- out-leg suppressed when the day doesn't start at the base hotel: travel
  days (city change, first stop > 25km away) and breakfast-at-hotel days
  (< 120m); stale firstLeg objects self-heal
- set_start tool shifts arrLandingMin on arrival days so the whole chain
  (hotel arrival, first stop, ...) follows the new landing time

Coordinates (verified on land via Nominatim + tile coastline scan):
- S14 Castillo San Diego -> Bodeguita promontory [10.4205,-75.5517]
- S16 Malecon de Bocagrande -> seawall [10.43545,-75.539]
- S18 Punta Canoa -> sandbar beach [10.4403,-75.530]
- S19 beachside lunch -> same sandbar [10.4402,-75.5294]
healCoordinates syncs saved plans from data.js on load
2026-09-11 00:46:08 -04:00
..
scripts Move runtime artifacts out of the source tree to ~/trips 2026-09-10 10:03:04 -04:00
app.js Unified leg system: every movement is a first-class leg + fix 4 in-the-sea coordinates 2026-09-11 00:46:08 -04:00
data.js Unified leg system: every movement is a first-class leg + fix 4 in-the-sea coordinates 2026-09-11 00:46:08 -04:00
index.html Fix arrival/return transfer legs + plan restore + router guards 2026-09-10 22:46:07 -04:00
server.js Fix arrival/return transfer legs + plan restore + router guards 2026-09-10 22:46:07 -04:00
styles.css Fix arrival/return transfer legs + plan restore + router guards 2026-09-10 22:46:07 -04:00