โครงร่างความคิด (low-fi) ของทั้งระบบ — ตั้งแต่เปิดแอปครั้งแรก เลือกโหมดการอ่าน รับปกประจำเมือง ปรับตามบทบาท จนถึงบริการที่ลื่นไหลตามขณะนั้น และการ “ให้คืน” หลังจบทริป · ทุกจอผูกกับ contract เดียวกับหน้าจริง
A low-fidelity blueprint of the whole system — from first open, choosing a reading mode, receiving the city's cover, adapting to your role, to context-aware service and giving back after the trip · every screen maps to the same contract as the live build.
เส้นทางหลักเป็นเชิงเส้น แต่แตกกิ่งที่ “เครือข่าย” — locale · narrator · gateway ทับซ้อนบน descriptor เดียว แล้วบรรจบที่โซน Give-Back หลังทริป
The spine is linear, but it branches at the network layer — locale · narrator · gateway overlay one descriptor, then converge at the post-trip Give-Back zone.
Splash · auth · กู้ค่า prefs จาก DB
Splash · auth · restore prefs from DB
สูงอายุ · มือใหม่ · ทั่วไป · ผู้บริหาร
Senior · guided · standard · exec
พัทยา · เชียงราย · อุดร
Pattaya · Chiang Rai · Udon
อารมณ์ · ภารกิจ · ระดับ · ความอยากใหม่
Feeling · mission · mastery · novelty
Place · Time · Context · Intent
Place · Time · Context · Intent
สกุลเงิน · เขตเวลา · ภาษา · วัฒนธรรม
Currency · timezone · language · culture
8 ผู้เล่า สลับเลนส์เล่าเรื่อง
8 narrators, switchable lens
BRICS · EU · MICE · นักศึกษา · EV
BRICS · EU · MICE · students · EV
บริจาคโปร่งใส · ขอบคุณคนไทย · เล่าความทรงจำกลับเข้า feed เมือง (network moat)
Transparent donations · thank locals · stories flow back into the city feed (network moat)
ผู้ใช้ใหม่เดินผ่าน wizard ทีละขั้น (1 คำถามต่อจอ ดีกับมือใหม่/ผู้สูงวัย) — เก็บครบทั้ง 4D + access + อารมณ์ ก่อนจะ compose หน้าแรกที่ "ตรงกับเขา" · ผู้ใช้เก่าข้ามทั้งหมดเพราะ prefs อยู่ใน DB
New users step through a wizard (one question per screen — friendly for low-IT/senior) capturing the full 4D + access + mood before the home is composed for them · returning users skip it entirely since prefs live in the DB.
1 คำถามต่อจอ + แถบความคืบหน้า = ภาระคิดต่ำ เหมาะกับ มือใหม่/ผู้สูงวัย · ทุกขั้น ข้ามได้ และมีค่า default · จบแล้ว backend จึง compose หน้าแรกที่ตรงกับ 4D + access + อารมณ์ทันที · ผู้ใช้เก่า prefs อยู่ใน DB → ข้าม wizard ทั้งหมด
One question per screen + a progress bar = low cognitive load, ideal for low-IT/senior users · every step is skippable with a sensible default · on finish the backend composes a home matching the full 4D + access + mood · returning users have prefs in the DB and skip the wizard.
โหมดไม่เปลี่ยนเนื้อหา (descriptor เดิม) — เปลี่ยนแค่ ขนาดอักษร · ความหนาแน่น · จำนวนบล็อกต่อจอ · วิธีนำทาง
Modes never change content (same descriptor) — only type scale · density · blocks-per-screen · navigation.
data-access="elder | guided | smart | exec" ปรับ font-scale · density · จำนวนบล็อก · โหมดนำทาง โดยไม่แตะ backend · แกนนี้ผสมอิสระกับ tenant + persona เช่น “พัทยา × ผู้สูงอายุ × โหมดเที่ยว”
data-access="elder | guided | smart | exec" tunes font-scale · density · block count · navigation without touching the backend · it mixes freely with tenant + persona, e.g. "Pattaya × Senior × Explore".
โครงเหมือนกัน (descriptor เดียว) แต่ theme token ต่างกัน — สี · อักษรหัว · เรื่องเด่น · issue no. เปลี่ยนตามเมือง
Same skeleton (one descriptor), different theme tokens — colour · display type · cover story · issue no. change per city.
แตะไอคอนเมืองบน header เพื่อสลับ tenant — ปก สี และ accent เปลี่ยนทั้งฉบับทันที พัทยา (Magenta/Gold · ทะเล·ราตรี·MICE) · เชียงราย (Teal · Spartan) · อุดร (Terracotta · พืชสวนโลก)
Tap the city icon in the header to switch tenant — cover, colour and accent reskin the whole issue instantly. Pattaya (Magenta/Gold · sea·night·MICE) · Chiang Rai (Teal · Spartan) · Udon (Terracotta · Horti Expo).
อารมณ์ (Feeling) · ภารกิจ (Mission) · ประสบการณ์สั่งสม (Mastery) · ความอยากใหม่ (Novelty) — บทบาทที่กำลังสวมอยู่ตัดสินว่าบล็อกไหนลอยขึ้นหน้าแรก · ทุกการเลือกของ AI มี “Why this?” chip กำกับเหตุผล
Feeling · Mission · Mastery · Novelty — the role you currently wear decides which block floats to the top · every AI choice carries a "Why this?" chip explaining itself.
Place · Time · Context · Intent — AI ไม่ยัดทุกบริการพร้อมกัน แต่จัดลำดับให้สิ่งที่ “พอดีขณะนั้น” ลอยขึ้นก่อน เช่น 17:30 ฝนเริ่มตก กำลังเดินกลับโรงแรม คอลัมน์ “วิ่งหนีฝน” ขึ้นหน้าแรกโดยไม่ต้องค้นหา
Place · Time · Context · Intent — AI never dumps every service at once; it ranks what fits the moment first. At 17:30 with rain starting on the walk home, the "beat the rain" column rises to the top with no search.
ทั้งสามจอข้างล่างคือ sc-1-home ตัวเดียวกัน และ บล็อกชุดเดียวกัน — แต่ POST /layout/compose จัดลำดับ/เน้น/ซ่อน ต่างกันตาม persona · อารมณ์ · โหมดการอ่าน ที่ได้จาก wizard · ทุกบล็อกที่ลอยขึ้นมีป้าย “Why this?” กำกับเหตุผล
All three below are the same sc-1-home with the same block set — but POST /layout/compose ranks/emphasises/hides them differently per persona · mood · reading mode from the wizard · every surfaced block carries a "Why this?" chip.
Frontend ส่ง 4D + access + mood ไปที่ POST /layout/compose → backend คืน descriptor tree ที่ จัดลำดับบล็อกใหม่ + ตั้ง flag เน้น/ซ่อน · Frontend แค่ render ตามนั้น (ไม่มี business logic ใน client) · เนื้อหาแต่ละบล็อกมาจาก GET /blocks/{surface}/{block_id} เสียบเข้า data-slot · เหตุผลการจัดลำดับ = ป้าย “Why this?” ที่ลอยมากับ descriptor
The frontend sends 4D + access + mood to POST /layout/compose → the backend returns a descriptor tree that re-orders blocks and sets emphasise/hide flags · the frontend just renders it (no client business logic) · per-block content comes from GET /blocks/{surface}/{block_id} into the data-slot hooks · the ranking reason is the "Why this?" chip carried in the descriptor.
สามแกนเครือข่ายที่ทับบน descriptor เดียว — ปรับนิตยสารให้ตรงผู้อ่านข้ามชาติ มุมเล่า และกลุ่มที่เข้ามา
Three network axes overlaying one descriptor — tuning the magazine to cross-border readers, narrative lens and the incoming group.
Locale ปรับสกุลเงิน เขตเวลา ภาษา และบริบทวัฒนธรรม (Eat·Talk·Do) สองทาง · Narrator สลับ “ผู้เล่า” 8 บทบาทแล้วทั้งฉบับจัดใหม่ (data/network moat) · Gateway แต่ละประตูคือชุด tenant/persona/locale/service ที่จัดมาพอดีกลุ่ม — เพิ่ม gateway ใหม่ได้โดย backend ประกอบ descriptor เอง
Locale tunes currency, timezone, language and two-way cultural context (Eat·Talk·Do) · Narrator swaps 8 storyteller lenses and the whole issue re-lays out (a data/network moat) · Gateway bundles a tenant/persona/locale/service set per group — new gateways drop in as the backend composes the descriptor.
หลังเช็คเอาท์ โซน “ให้คืน” โผล่ขึ้น — บริจาคให้กองทุนเมือง/วัด/ชุมชนแบบเห็นปลายทาง · ส่งคำขอบคุณถึงคนหรือร้านที่ประทับใจ · เล่าความทรงจำกลับเข้า feed เมือง กลายเป็นเนื้อหาจริงที่ลอกไม่ได้ (network moat) · มี trust ribbon กำกับปลายทางบริจาค
After checkout a Give-Back zone appears — donate to city/temple/community funds with a visible destination · thank the people or shops that delighted you · tell your story back into the city feed, becoming authentic content rivals can't copy (network moat) · a trust ribbon vouches for every donation endpoint.
เอกสารนี้คือชั้น Wireframe + Screen flow · ดูชั้น หน้าจริง (hi-fi, bilingual, brand CI) ได้ที่ home.html · และแก่นแนวคิด/Brand CI ที่ concept.html
This document is the Wireframe + Screen flow layer · see the live screen layer (hi-fi, bilingual, brand CI) at home.html · and the concept / Brand CI at concept.html
ลำดับ default ที่ /layout/compose คืนมา (A1a→A11s) จัดเป็นโซน — ตรงกับ home.html ทุกบล็อก · persona/mood แค่สลับลำดับภายใน ไม่เพิ่ม/ลบ block_id
The default order returned by /layout/compose (A1a→A11s) grouped by zone — 1:1 with home.html · persona/mood only re-rank within this, never add/remove block_ids.