CH_03_quests.md

chapters/CH_03/quests/main_story/CH_03_quests.md

CH_03 Quest Set — Flores Island / Manggarai Highlands (Quest-Writing Spike)

CANON SUBORDINATION — this document is PROPOSAL-TIER: it serves canon and never outranks it.
The canon: the CVD · the T1 foundation docs · the T0 registries (registries/) · the spine
(docs/spine/CH_*.md) · the region pages (_source/02_Tier_2_Region_Pages/). Authority order: docs/DOC_MAP.md § 0.
Canon served (scanned from this document's own citations — widen it by hand where it is thin):
CVD §13 · CVD §17 · T1_Build_Pipeline_Contracts · T0_Antagonist_Network_Registry · T0_Boss_Encounter · T0_Character_Index · T0_Quest_Definition_Registry · (+5 more t0) · docs/spine/CH_03.md · _source/02_Tier_2_Region_Pages/flores_island.md
READ THAT CANON FIRST — open it and derive from it before you build anything from this document.
If this document disagrees with canon, CANON WINS and this document is the defect — fix the
document, never the canon. Nothing here is applied until it is ratified into canon.

Status: SPIKE DRAFT — validation artifact, not canon. This file exists to prove whether the ratified quest, scene, and dialogue schema holds real authored content derived from the executed v3.1 spine, BEFORE book-gated production quest writing. Nothing here is canonical; it is a proposal-tier draft. The cardinal do-not-invent rule binds: every quest field is joined FROM the spine's typed layer, the region page, and the schema — where the schema demands a value no source provides, the gap is recorded in the Contract Gaps section rather than invented.

Front block

How the spine maps onto the quest chain

The chapter is one main through-line: lift the lingko land-pressure, calm the roused land, and restore the untwisted proverb tradition, resolved by exposing the broker at the caci ground and returning the land-contract (the spine main_quest_beat line). It is realized here as six main-story quests covering all twelve beats, plus the three side-questline advances the spine's §11 rows carry, plus the two region-page side-quest seeds. Beat-to-quest allocation:

Field-mapping convention used throughout (and audited in Contract Gaps): quest_id and quest_name and quest_type and path_bucket and participant_entity_refs and hard_line_relevance are §6.5 fields carried directly; the objectives sequence is the §6.5 quest_beat_structure expressed as one dashed bullet per spine beat with the beat_id cited; completion conditions and ws.* writes are lifted from the cited beats' typed in/out deltas (never minted); rewards are lifted from the spine's own reward lines (the §9 boss win/death clauses, the mechanical-anchors rewards line, and the §11 SQ reward columns); fail/branch handling is lifted from the spine's reward-both-ways boss outcomes and the no-dead-end progression guarantee.

Main-story quest chain

QS_CH_03_01 — The Cloth Over the Ears

QS_CH_03_02 — The Emptied Vessel

QS_CH_03_03 — The Unasked Land

QS_CH_03_04 — The Twisted Word

QS_CH_03_05 — A Place in the Ring

QS_CH_03_06 — The Land Made Whole

Side quests (spine §11 SQ advances)

Each row is carried from the spine's §11 side-questline rows (sq_id, questline, stage, gate condition-expression, beat list, reward), typed to the same block shape. SQ gates are state-conditions, non-gating on the main spine.

SQ_CH_03_SQ1 — The Owed Land (fairy_tale_folklore, ADVANCE)

SQ_CH_03_SQ4 — The Unsigned Marks (mystery_detective, SEED)

SQ_CH_03_SQ2 — The Kept Count (military_history, SEED)

Region-scope side-quest seeds (flores_island.md Section 13)

These are region-page-sourced, not spine §11 rows. They carry premise, NPC, integrity implication, and reward from the region page, but they have no beat_id landing in the spine's §10 graph — recorded as a contract gap below. Authored here at seed grain only.

SQ_CH_03_R1 — The Rival-Village Lingko (region seed)

SQ_CH_03_R2 — Merchant Siti's Rumor Chain (region seed)

Dialogue dataset sample — QS_CH_03_05 A Place in the Ring

The chapter's most character-heavy quest. In production this splits into per-character files per §6.4 (DD_CHAR_0017_QS_CH_03_05 for Ana, DD_CHAR_0009_QS_CH_03_05 for Elder Rato, DD_KABA_LOMES_QS_CH_03_05 for the champion, DD_CHAR_0022_QS_CH_03_05 for Pak Kornelius); the merged table below is the validation view. Lines L11a–L11f are one six_option_voice_response node per CVD §13 (the six fixed slots), exercising the six_option_array schema. All text obeys the reveal ceiling (the antagonist is the local broker and his bought champion only) and the HL_0005 care posture (the caci as the tradition holds it). The player-facing register is Childhood, gender-neutral for the protagonist.

line_idspeakertrigger / beattextlocalization-ready FText note
L01AnaCH03_B08 · dialogue_initiationYou stand at the edge of every circle. Come stand in one.ns=CH03_CACI key=ana_vouch_01; register warm-peer; no gendered player pronoun
L02AnaCH03_B08 · beat_transitionI will speak for you to the elders. They grant a place the way they grant a guest a seat — you ask, they give, no one takes.ns=CH03_CACI key=ana_vouch_02; "caci" concept implicit, glossary-linked on first UI surface
L03Elder RatoCH03_B08 · dialogue_initiationThe child hides the ears and thinks we do not see the stillness. We see. Stillness is welcome here too, if it comes asking.ns=CH03_CACI key=rato_reception_01; honorific tua golo preserved in glossary, not flattened
L04Elder RatoCH03_B08 · dialogue_initiationThe larik is the whip. The nggiling is the shield. What is danced here is not a fight for a life. It is a contest for a place, and the first blood belongs to the ground.ns=CH03_CACI key=rato_reception_02; "larik"/"nggiling" glossary terms, kept untranslated with tooltip
L05AnaCH03_B08 · dialogue_initiationSay what you want, outsider. The circle does not read minds.ns=CH03_CACI key=ana_prompt_player; cues the six-option node below
L11aProtagonistCH03_B08 · six_option_voice_response slot=truly_goodI would be glad of a place. Teach me the courtesy of it, and I will keep it.ns=CH03_CACI key=player_entry_truly_good; slot append → WS_018; no gendered pronoun
L11bProtagonistCH03_B08 · six_option_voice_response slot=truly_badGive me the whip. I have turned worse than a rattan cord.ns=CH03_CACI key=player_entry_truly_bad; slot append → WS_018; boastful register
L11cProtagonistCH03_B08 · six_option_voice_response slot=sympatheticYour village is pressed at its fields. If a place in your circle helps, I will stand in it.ns=CH03_CACI key=player_entry_sympathetic; slot append → WS_018; ties to land-pressure, no who-frame
L11dProtagonistCH03_B08 · six_option_voice_response slot=detachedA contest for a place. Fine. Show me the count.ns=CH03_CACI key=player_entry_detached; slot append → WS_018; flat affect
L11eProtagonistCH03_B08 · six_option_voice_response slot=curiousFirst blood to the ground — why the ground? What does the earth owe you back?ns=CH03_CACI key=player_entry_curious; slot append → WS_018; opens the agricultural-meaning lore
L11fProtagonistCH03_B08 · six_option_voice_response slot=defiantI stand where the firelight does not reach. Put me in the light, then, and see if it burns me.ns=CH03_CACI key=player_entry_defiant; slot append → WS_018; concealment motif carried
L12Elder RatoCH03_B08 · branch_decision_pointThen you have a place, guest. Ana answers for you. Do not make her answer twice.ns=CH03_CACI key=rato_grant_entry; convergent across all six slots; ws.relationship_history +ana_caci_peer_bond
L13AnaCH03_B08 · beat_transitionDo not make me answer twice, either. Now — the shield first. Read my step before you feel the cord.ns=CH03_CACI key=ana_bond_coach; peer-bond seal
L14Pak KorneliusCH03_B09 · scene_entryThe gong holds the count. The drum holds the breath. Turn on the count, not on your fear.ns=CH03_CACI key=kornelius_drum_01; "gong-waning" ensemble glossary-linked; Thread 21
L15Kaba LomesCH03_B09 · dialogue_initiationI was bought to dance, small one, not to hate you. The one who pays me wants your friends off their fields. That is his want, not mine.ns=CH03_CACI key=kaba_greeting_01; antagonist stays the local broker only — no wider chain, no pattern
L16Kaba LomesCH03_B09 · dialogue_initiationSo we keep it clean. Whip and shield, count and turn. If you are good, the circle will know it before I do.ns=CH03_CACI key=kaba_greeting_02; courtesy-with-teeth register
L17AnaCH03_B09 · beat_transitionThere — the arc comes high on his third step. Shield high, turn it down into the ground. Kept count.ns=CH03_CACI key=ana_coach_shield; combat-tutorial line, non-gating
L18Kaba LomesCH03_B09 · beat_transitionGood turn. Now answer me — take the whip. A courtesy is not owed until it is returned.ns=CH03_CACI key=kaba_trade_whip; cues the whip-pass; WPN_033 shield-to-whip trade
L19Pak KorneliusCH03_B09 · beat_transitionBlood. Hold — that is the elders' now. To the ground with it, where it feeds.ns=CH03_CACI key=kornelius_first_blood; HL_0005 agricultural meaning surfaced in-fiction
L20Kaba LomesCH03_B09 · beat_transitionClean count, small one. You fought for a place and won it, not for my skin.ns=CH03_CACI key=kaba_concede; win-branch; reward-both-ways gift follows
L21Kaba LomesCH03_B09 · dialogue_initiationTake this turn from me — the read-and-answer, the way I set my weight before the cord flies. Whoever paid me cannot buy that back.ns=CH03_CACI key=kaba_gift_technique; caci technique reward; gifted on win AND loss (both branches point here)
L22Elder RatoCH03_B09 · beat_transitionThe count is kept. The blood is the ground's. The guest danced as a guest should. That, we remember.ns=CH03_CACI key=rato_close; feeds the FORK_CH03_A community-read at QS_CH_03_06
L23AnaCH03_B09 · beat_transitionYou read my step before you felt the cord. That is the whole of it. You will do.ns=CH03_CACI key=ana_close_bond; recurring-peer seed (Ch 27/28/41)

Dialogue line count: 23 rows (including the six-slot node L11a–L11f as six variant lines under one dialogue node).

Contract gaps

Each gap is a place where the §5 or §6 schema demanded something the corpus does not provide, or where the join from the spine's typed layer into the Quest Spec Schema has no landing. A gap surfaced is the spike succeeding at its job.

Generated by harness/site/structure_site.py — the URL path is the repo path. review root