"itinerary 앱이 아냐. 여행이 끝난 뒤에도 그 여행을 기억하는 물건이야."
한 문장으로
Waystone은 구조화된 여행 state를 소유하는 엔진이야. journey, plan, day, place, route, 추천, 결정, 그리고 실제로 무슨 일이 있었는지 남는 기록까지. 근데 그걸 다 해석하는 뇌는 아예 딴 데 있어. 이 분리, 소리 내서 한번 말해봐. 이게 설계 전부거든. Waystone은 여행 사실을 소유하고, cwkPippa는 판단을 소유해. 이 퀘스트 나머지가 전부 그 경계 하나를 진지하게 밀고 간 결과야.
Waystone이 일부러 안 되는 것들을 봐. 두 번째 Pippa가 아냐. 자기 soul도, memory vault도, model router도 없어. rich-text 에디터도 아냐. 긴 글은 Rekindle로 왕복해. 미디어 아카이브도 아냐. 바이너리는 그걸 소유한 시스템에 남아. 지도 앱도 아냐. 지도는 canonical state를 그릴 뿐 자기 데이터는 안 가져. 형제가 이미 소유한 걸 다 걷어내면, 남는 게 진짜 제품이야. 정직하게 지켜진 여행 도메인.
정의 문장 셋
Waystone 아키텍처 문서는 문장 세 개로 시작해. 그리고 이 퀘스트 전체가 그걸 손에 넣으려고 지어졌어.
문장 하나가 트랙 하나가 돼. 대화가 곧 계획은 Track 2야. 폼을 채우는 게 아니라 Pippa랑 말하면서 계획하는 거. 구조화된 state가 durable memory는 Track 4랑 5고. plan, revision, 실제 여정이 따로 보존되고, 네트워크가 있기도 전에 현장에서 캡처돼. 지리는 projection은 Track 3이야. globe, journey map, place lens가 다 하나의 canonical state를 비추는 view지, 따로 노는 marker DB가 아니야.
왜 앱이 아니라 엔진이야
Waystone을 앱 대신 엔진이라 부르는 건 폼 잡는 게 아냐. 앱은 화면으로 정의되고, 엔진은 뭘 소유하느냐로 정의돼. 화면은 갈아끼울 수 있어. 모바일 캡처 표면이든 데스크톱 plan 에디터든 지도든, 다 같은 여행 state의 클라이언트야. Waystone을 지금 UI로 정의해두면 화면 바뀔 때마다 정의를 다시 그려야 해. 소유로 정의하면(여정, 날, 결정, lineage) 어떤 리디자인에도 안 흔들리는 경계가 생겨. Ember를 이미지 엔진으로, Bonfire를 음악 엔진으로 만든 거랑 똑같은 렌즈야. model이 제품이고, view는 output이야.