"이 지도엔 핀을 못 떨궈. breadcrumb 만 남길 수 있고 — 지도는 breadcrumb 이 이미 아는 걸 그려."
저장 버튼 없는 지도
지리를 정직하게 만드는 invariant 가 여기 있어: 지도는 자기 데이터를 아무것도 저장 안 해. 'marker 추가' 도구도, 손으로 놓은 핀도, 다른 어디에도 안 사는 지도-전용 annotation 레이어도 없어. Journey Map 의 모든 flag 는 여행 truth 가 심어 — breadcrumb 에 붙은 place hint, geocoder 가 좌표로 resolve 한. flag 를 띄우고 싶으면 place 붙은 breadcrumb 을 남겨. flag 를 옮기고 싶으면 breadcrumb 을 고쳐. 지도는 crumb 의 순수 projection 이야. out-of-sync 될 자기 기억이 없어.
crumb 이 flag 가 되는 법
출시된 v0 truth 레이어에서, crumb 의 위치 resolve 는 엄격한 순서를 따라: 아빠가 설정했으면 intended location, 그다음 captured GPS 좌표, 그다음 — 최후 수단으로만 — 텍스트 place hint geocoding. 좌표는 지도로 바로 가고; reverse-geocode 된 이름은 점을 label 할 순 있어도 좌표를 절대 대체 안 해. miss 는 조용히 버려지지 않아 — 'Unplaced' 스트립에 드러나서 resolve 못 한 장소가 없는 척 대신 보여. 위치를 지어내길 거부하는 그게 지도가 아무것도 저장 안 하는 것과 같은 정직함이야: projection 은 truth 가 뒷받침하는 딱 그만큼만 보이고, 못 하는 건 인정해.
왜 이 규율이 이득인가
그릴 수 있는 지도는 두 번째 DB 야. 지도에만 있는 핀을 손으로 놓는 순간, 다른 어떤 view 도 모르는 fact 를 만든 거고 — 이제 지도와 itinerary 가 안 맞을 수 있어. 지도-전용 state 를 금지해서, Waystone 는 지도가 절대 거짓말 못 하게 보장해. 거짓말할 자기 게 없으니까. 이건 편의 하나(지도에 낙서 못 함)를 대가로 보장 하나(지도는 언제나 여행 state 의 충실한 그림)를 사. 기억 엔진한텐, 그 거래는 접전이 아냐.