// Julius Caesar: The Struggle for Rome — complete Ink edition. // Migrated once from pack 0.25.0. This is now the executable source for Ink mode. // The original JSON remains the metadata/evidence/voice contract and legacy edition. // Build directly from this file; do not regenerate it during normal builds. VAR seed = 17 VAR scene_id = "" VAR ending_id = "" VAR counterfactual = false VAR resolver_id = "" VAR outcome_id = "" VAR outcome_weight = 0 VAR outcome_total = 0 VAR v_caesar_trust = 5 VAR v_timeline_drift = 0 VAR v_knowledge_discovered = 0 VAR v_peace_credibility = 0 VAR v_campaign_readiness = 0 EXTERNAL draw_weight(total) ~ SEED_RANDOM(seed) Stay close. That narrow river is the Rubicon, and crossing it with my soldiers could deepen Rome's crisis into civil war. The choice is yours: should we cross now, or pause north of the river for one last peace attempt? -> s_riverbank === s_riverbank === ~ scene_id = "riverbank" # scene: riverbank // The riverbank · January 49 BCE, before dawn · setup // Caesar must choose whether to cross an armed boundary or risk one more attempt at compromise. + [Ask why the river matters # id: river-ask-stakes] -> i_river_ask_stakes + [Cross the Rubicon now. # id: river-urge-cross # decision: true] -> i_river_urge_cross + [Pause and send one more peace message. # id: river-urge-delay # decision: true] -> i_river_urge_delay + [Play an interactive story with the child # id: river-child-story] -> i_river_child_story + [Tell a complete story without questions # id: river-child-story-listen] -> i_river_child_story_listen + [Greet the child or identify Caesar # id: river-greet-identify] -> i_river_greet_identify + [Pause and explain what is happening # id: river-clarify-moment] -> i_river_clarify_moment + [Give the child one clear next step # id: river-give-one-step] -> i_river_give_one_step + [Let Caesar choose and move the story forward # id: river-caesar-chooses] -> i_river_caesar_chooses + [Respond to an unexpected idea # id: river-unexpected-idea] -> i_river_unexpected_idea + [Ask about the soldiers waiting in the dark # id: river-ask-soldiers] -> i_river_ask_soldiers + [Ask why Caesar will not simply give up his army # id: river-ask-why-not-quit] -> i_river_ask_why_not_quit === i_river_ask_stakes === ~ resolver_id = "" ~ outcome_id = "" ~ v_caesar_trust = MAX(0, MIN(10, v_caesar_trust + (1))) ~ v_knowledge_discovered = MAX(0, MIN(10, v_knowledge_discovered + (1))) # intent: river-ask-stakes # frame: historical_record # facts: fact-rubicon-boundary,fact-crossing-civil-war # cues: The water is small, but the boundary is not. Crossing with soldiers carries our dispute into Italy. What would you advise? -> s_riverbank === i_river_urge_cross === ~ resolver_id = "" ~ outcome_id = "" ~ v_caesar_trust = MAX(0, MIN(10, v_caesar_trust + (1))) # intent: river-urge-cross # frame: historical_record # facts: fact-crossing-civil-war # cues: river-crossing Then we cross. Cold water folds around our boots as the column enters the Rubicon; there is no cheering, because this advance risks Romans fighting Romans. From the shallows, you can tell me to keep moving or turn back into an imagined path. -> s_rubicon_crossing === i_river_urge_delay === ~ resolver_id = "" ~ outcome_id = "" ~ counterfactual = true ~ v_timeline_drift = MAX(0, MIN(10, v_timeline_drift + (3))) # intent: river-urge-delay # frame: counterfactual # facts: fact-rubicon-boundary # cues: decision-pulse Very well. In our imagined timeline, we wait and write. Recorded history took another path, so we must test what your change might cause. At camp, you can propose equal disarmament, protected talks, or simply wait. -> s_waiting_camp === i_river_child_story === ~ resolver_id = "" ~ outcome_id = "" # intent: river-child-story # frame: plausible_reconstruction # facts: # cues: horse-tack Imagine this: you slip between the reeds as my young courier, carrying a message no soldier may read. A horse sneezes and nearly reveals you. At the road fork, do you choose the moonlit path or the muddy hidden trail? -> s_riverbank === i_river_child_story_listen === ~ resolver_id = "" ~ outcome_id = "" # intent: river-child-story-listen # frame: plausible_reconstruction # facts: fact-rubicon-boundary # cues: portal-open,horse-tack Here is an imagined adventure. You were Caesar's smallest courier—not because you were unimportant, but because you could slip through reeds unnoticed. On the night beside the Rubicon, a sealed message vanished from your satchel. You followed muddy hoofprints and found a guilty-looking horse chewing the ribbon. Instead of shouting, you traded it an apple, rescued the message, and hurried back. The Rubicon marked a boundary Roman generals were not supposed to cross with troops. You placed the message in Caesar's hand before dawn, and even the horse seemed proud of you. -> s_riverbank === i_river_greet_identify === ~ resolver_id = "" ~ outcome_id = "" # intent: river-greet-identify # frame: historical_record # facts: fact-rubicon-boundary,fact-political-crisis # cues: Hello. I am Julius Caesar, speaking with you beside the Rubicon during Rome's political crisis in January 49 BCE. -> s_riverbank === i_river_clarify_moment === ~ resolver_id = "" ~ outcome_id = "" # intent: river-clarify-moment # frame: historical_record # facts: fact-rubicon-boundary,fact-crossing-civil-war # cues: I am deciding whether to cross the Rubicon with my soldiers, a step that could deepen Rome's conflict. You do not need to perform a mission—you can simply talk with me or ask what you want to know. -> s_riverbank === i_river_give_one_step === ~ resolver_id = "" ~ outcome_id = "" # intent: river-give-one-step # frame: plausible_reconstruction # facts: # cues: Stay beside me and listen for a moment. I will explain the decision, and you can interrupt whenever something is unclear. -> s_riverbank === i_river_caesar_chooses === ~ resolver_id = "" ~ outcome_id = "" ~ v_caesar_trust = MAX(0, MIN(10, v_caesar_trust + (1))) # intent: river-caesar-chooses # frame: historical_record # facts: fact-crossing-civil-war # cues: river-crossing Then I will lead. We enter the cold Rubicon, knowing this armed advance could bring Romans against Romans. Stay close: should we keep moving, or turn back in our imagined path? -> s_rubicon_crossing === i_river_unexpected_idea === ~ resolver_id = "" ~ outcome_id = "" # intent: river-unexpected-idea # frame: plausible_reconstruction # facts: # cues: A bold idea, young courier. Could it help us scout the road, send a message, or keep the soldiers calm? Choose one—or tell me whether we should cross or wait. -> s_riverbank === i_river_ask_soldiers === ~ resolver_id = "" ~ outcome_id = "" ~ v_knowledge_discovered = MAX(0, MIN(10, v_knowledge_discovered + (1))) # intent: river-ask-soldiers # frame: historical_record # facts: fact-thirteenth-legion-size,fact-army-italy-law # cues: One legion waits with me, the Thirteenth: about five thousand men on foot and three hundred riders, if the counts are right. The rest of my army is still in Gaul. Leading even these across the boundary breaks the law that keeps armies out of Italy. Listen to how quiet they are. What do you think they are thinking? -> s_riverbank === i_river_ask_why_not_quit === ~ resolver_id = "" ~ outcome_id = "" ~ v_knowledge_discovered = MAX(0, MIN(10, v_knowledge_discovered + (1))) ~ v_caesar_trust = MAX(0, MIN(10, v_caesar_trust + (1))) # intent: river-ask-why-not-quit # frame: historical_record # facts: fact-command-dispute,fact-political-crisis # cues: If I send my soldiers home before I am consul again, I become a private citizen, and my enemies can drag me into court. I offered to lay down my army if Pompey laid down his. The Senate refused and ordered only me to disarm. My opponents call that lawful; I call it a trap. Does my offer sound fair to you? -> s_riverbank === s_rubicon_crossing === ~ scene_id = "rubicon-crossing" # scene: rubicon-crossing // Crossing the Rubicon · January 49 BCE, before dawn · rising_action // The crossing commits troops to the conflict, but does not settle who will control Rome. + [Complete the crossing and keep moving. # id: crossing-continue # decision: true] -> i_crossing_continue + [Notice the crossing around you # id: crossing-look-around] -> i_crossing_look_around + [Ask what the crossing changes # id: crossing-ask-stakes] -> i_crossing_ask_stakes + [Play a courier moment during the crossing # id: crossing-child-story] -> i_crossing_child_story + [Tell the complete crossing without questions # id: crossing-child-story-listen] -> i_crossing_child_story_listen + [Turn back before the crossing is complete. # id: crossing-choose-no-cross # decision: true] -> i_crossing_choose_no_cross + [Ask whether Caesar says the famous words # id: crossing-ask-words] -> i_crossing_ask_words === i_crossing_continue === ~ resolver_id = "" ~ outcome_id = "" # intent: crossing-continue # frame: historical_record # facts: fact-ariminum # cues: river-crossing The far bank rises beneath us; the Rubicon is behind. At dawn Ariminum's gates appear. Should we continue south, send a peace proposal, or ask why this town matters? -> s_ariminum === i_crossing_look_around === ~ resolver_id = "" ~ outcome_id = "" # intent: crossing-look-around # frame: plausible_reconstruction # facts: # cues: horse-tack In our imagined crossing, cold water curls around your boots while reeds brush your cloak. The soldiers speak in low voices, and even the horses step carefully. -> s_rubicon_crossing === i_crossing_ask_stakes === ~ resolver_id = "" ~ outcome_id = "" ~ v_knowledge_discovered = MAX(0, MIN(10, v_knowledge_discovered + (1))) # intent: crossing-ask-stakes # frame: historical_record # facts: fact-rubicon-boundary,fact-crossing-civil-war # cues: Crossing this boundary with soldiers carries military power into Italy and deepens the crisis. It does not make every later event inevitable, but it makes retreat and compromise much harder. -> s_rubicon_crossing === i_crossing_child_story === ~ resolver_id = "" ~ outcome_id = "" # intent: crossing-child-story # frame: plausible_reconstruction # facts: # cues: horse-tack In our imagined adventure, you spot a message ribbon drifting toward the reeds while the column crosses. Do you catch it with a stick or ask the nearest rider to help? -> s_rubicon_crossing === i_crossing_child_story_listen === ~ resolver_id = "" ~ outcome_id = "" # intent: crossing-child-story-listen # frame: plausible_reconstruction # facts: fact-ariminum # cues: horse-tack The crossing itself belongs to the historical record; your secret task belongs to our imagined adventure. You step into the cold water beside Caesar and keep a sealed message dry beneath your cloak. Halfway across, a horse shakes river drops over everyone, and one solemn soldier sneezes. You reach the far bank with the seal unbroken. Behind you lies the Rubicon; ahead, the dark road leads toward Ariminum. -> s_rubicon_crossing === i_crossing_choose_no_cross === ~ resolver_id = "" ~ outcome_id = "" ~ counterfactual = true ~ v_timeline_drift = MAX(0, MIN(10, v_timeline_drift + (3))) # intent: crossing-choose-no-cross # frame: counterfactual # facts: fact-rubicon-boundary # cues: portal-open Yes—your choice can change our adventure. In this counterfactual path, I halt the column in the shallows and lead everyone back to camp north of the Rubicon; recorded history crossed, but your timeline now waits. At camp, you can shape a new message or decide to return to history. -> s_waiting_camp === i_crossing_ask_words === ~ resolver_id = "" ~ outcome_id = "" ~ v_knowledge_discovered = MAX(0, MIN(10, v_knowledge_discovered + (1))) # intent: crossing-ask-words # frame: historical_record # facts: fact-famous-words,fact-greek-quote # cues: evidence-chime Writers born long after tonight will say I spoke a famous line here, one in Greek from a play, another in Latin. My own account of these days will mention no speech at the river at all. So listen instead to the water, which is certainly real. -> s_rubicon_crossing === s_ariminum === ~ scene_id = "ariminum" # scene: ariminum // The rapid advance · Soon after the crossing, 49 BCE · rising_action // Speed wins ground while the rivals still hold armies and political claims. + [Press south along the recorded route. # id: ariminum-continue # decision: true] -> i_ariminum_continue + [Ask why the advance matters # id: ariminum-ask-next] -> i_ariminum_ask_next + [Clarify an unclear response without changing the story # id: ariminum-clarify] -> i_ariminum_clarify + [Challenge Caesar's version # id: ariminum-question-caesar] -> i_ariminum_question_caesar + [Send another peace proposal while we march. # id: ariminum-seek-peace # decision: true] -> i_ariminum_seek_peace + [Play an interactive story with the child # id: ariminum-child-story] -> i_ariminum_child_story + [Tell a complete story without questions # id: ariminum-child-story-listen] -> i_ariminum_child_story_listen + [Rewind and choose not to cross. # id: ariminum-rewind-no-cross # decision: true] -> i_ariminum_rewind_no_cross + [Hear Caesar speak to the soldiers # id: ariminum-address-soldiers] -> i_ariminum_address_soldiers === i_ariminum_continue === ~ resolver_id = "" ~ outcome_id = "" # intent: ariminum-continue # frame: historical_record # facts: fact-ariminum # cues: gate-open We pass through Ariminum's waking gate and continue deeper into Italy. Shall we follow the recorded road, or pause for news of Rome and Pompey? -> s_road_south === i_ariminum_ask_next === ~ resolver_id = "" ~ outcome_id = "" ~ v_knowledge_discovered = MAX(0, MIN(10, v_knowledge_discovered + (1))) # intent: ariminum-ask-next # frame: historical_record # facts: fact-ariminum,fact-crossing-civil-war # cues: Ariminum matters because it is the first important town on our route after the Rubicon. Reaching it quickly carries my armed advance into Italy and gives Pompey and the senators less time to organise their response. -> s_ariminum === i_ariminum_clarify === ~ resolver_id = "" ~ outcome_id = "" # intent: ariminum-clarify # frame: plausible_reconstruction # facts: # cues: I may not have understood. Nothing has changed here at Ariminum. You can tell me to continue south, send a peace proposal while we march, or ask why this town matters. -> s_ariminum === i_ariminum_question_caesar === ~ resolver_id = "" ~ outcome_id = "" ~ v_caesar_trust = MAX(0, MIN(10, v_caesar_trust + (2))) ~ v_knowledge_discovered = MAX(0, MIN(10, v_knowledge_discovered + (2))) # intent: ariminum-question-caesar # frame: historical_record # facts: fact-competing-stories # cues: evidence-chime You are right to question me. My account argues my case; historians must compare it with other voices and evidence. -> s_ariminum === i_ariminum_seek_peace === ~ resolver_id = "" ~ outcome_id = "" ~ counterfactual = true ~ v_peace_credibility = MAX(-5, MIN(5, v_peace_credibility + (-1))) # intent: ariminum-seek-peace # frame: counterfactual # facts: fact-peace-implementation # cues: message-seal I send another proposal while our advance pauses. In this alternate path, mediators bring us to a final meeting. Soldiers at my back make reassurance harder, so the terms must be convincing. At one final meeting, shall we offer witnessed command transfers, concede my career for protected exile, or resume the armed struggle? -> s_settlement_council === i_ariminum_child_story === ~ resolver_id = "" ~ outcome_id = "" # intent: ariminum-child-story # frame: plausible_reconstruction # facts: # cues: Imagine this: you reach the town gate first, carrying a message beneath your cloak. A sleepy goose blocks the road and honks like a trumpet. Do you distract it with grain or ask the gatekeeper for help? -> s_ariminum === i_ariminum_child_story_listen === ~ resolver_id = "" ~ outcome_id = "" # intent: ariminum-child-story-listen # frame: plausible_reconstruction # facts: fact-ariminum # cues: gate-open Here is an imagined adventure. You reached Ariminum before the sleepy town had properly opened its eyes. Caesar trusted you to carry a peace note through the gate, but a goose stole the red ribbon and marched into the market like a tiny general. You followed without frightening it, copied its proud waddle, and made three bakers laugh so loudly that the goose dropped the ribbon. Caesar's forces really did advance to Ariminum after crossing the Rubicon; your goose chase belongs to our story. You delivered the note, earned a warm honey cake, and became the town's most unlikely hero. -> s_ariminum === i_ariminum_rewind_no_cross === ~ v_caesar_trust = 5 ~ v_timeline_drift = 0 ~ v_knowledge_discovered = 0 ~ v_peace_credibility = 0 ~ v_campaign_readiness = 0 ~ resolver_id = "" ~ outcome_id = "" ~ counterfactual = true ~ v_timeline_drift = MAX(0, MIN(10, v_timeline_drift + (3))) # intent: ariminum-rewind-no-cross # frame: counterfactual # facts: fact-crossing-civil-war,fact-ariminum # cues: portal-open Yes—we can rewind our adventure. Recorded history reached Ariminum, but your new choice takes us back to the Rubicon, where I turn the column away and wait in camp instead. -> s_waiting_camp === i_ariminum_address_soldiers === ~ resolver_id = "" ~ outcome_id = "" ~ v_knowledge_discovered = MAX(0, MIN(10, v_knowledge_discovered + (1))) # intent: ariminum-address-soldiers # frame: historical_record # facts: fact-caesar-speech-soldiers,fact-competing-stories # cues: Soldiers, you know how I have been treated: ordered to disarm while my rival keeps his army, and the tribunes who spoke for me driven from Rome. I ask you to defend your general's honour and your own. That is how I recorded my words; the men shouted that they were ready. Should they have trusted me? -> s_ariminum === s_road_south === ~ scene_id = "road-south" # scene: road-south // The crisis spreads · Soon after the advance to Ariminum, 49 BCE · rising_action // Rome's rival leaders have not surrendered; each town must decide how to respond. + [Keep following the recorded road to Corfinium. # id: road-continue # decision: true] -> i_road_continue + [Ask what news is spreading # id: road-ask-news] -> i_road_ask_news + [Question Caesar's public story # id: road-question-caesar] -> i_road_question_caesar + [Play a courier moment on the road # id: road-child-story] -> i_road_child_story + [Tell the complete road adventure # id: road-child-story-listen] -> i_road_child_story_listen + [Rewind and explore not crossing. # id: road-rewind-no-cross # decision: true] -> i_road_rewind_no_cross + [Ask what Pompey is doing # id: road-ask-pompey] -> i_road_ask_pompey === i_road_continue === ~ resolver_id = "" ~ outcome_id = "" ~ v_knowledge_discovered = MAX(0, MIN(10, v_knowledge_discovered + (1))) # intent: road-continue # frame: historical_record # facts: fact-pompey-leaves-rome,fact-corfinium-clemency # cues: rider-departs Pompey and many senators have left Rome. At Corfinium, captured leaders await my decision. Should I release them as an act of mercy, or keep them guarded? -> s_corfinium === i_road_ask_news === ~ resolver_id = "" ~ outcome_id = "" ~ v_knowledge_discovered = MAX(0, MIN(10, v_knowledge_discovered + (1))) # intent: road-ask-news # frame: historical_record # facts: fact-rome-response # cues: Messengers report that Pompey and many senators are preparing to leave Rome as our advance continues. I can describe their public actions, but not thoughts they never recorded. -> s_road_south === i_road_question_caesar === ~ resolver_id = "" ~ outcome_id = "" ~ v_caesar_trust = MAX(0, MIN(10, v_caesar_trust + (1))) # intent: road-question-caesar # frame: historical_record # facts: fact-competing-stories # cues: evidence-chime Yes, I argued my own case, and my opponents presented theirs. Both sides used the language of defending the Republic, so neither account should stand alone. -> s_road_south === i_road_child_story === ~ resolver_id = "" ~ outcome_id = "" # intent: road-child-story # frame: plausible_reconstruction # facts: # cues: road-transition In our imagined adventure, a messenger drops a map that begins tumbling across the road. Do you catch it beneath your sandal or race after it on horseback? -> s_road_south === i_road_child_story_listen === ~ resolver_id = "" ~ outcome_id = "" # intent: road-child-story-listen # frame: plausible_reconstruction # facts: fact-ariminum # cues: road-transition Caesar's rapid advance belongs to the record; your last courier task belongs to our story. A gust catches a messenger's map and rolls it between marching sandals like a runaway wheel. You chase it without knocking over a single soldier, pin it gently beneath your boot, and return it to its embarrassed owner. By noon, the map is safe, the messenger is on his way, and you have earned a quiet salute before the imagined road fades. -> s_road_south === i_road_rewind_no_cross === ~ v_caesar_trust = 5 ~ v_timeline_drift = 0 ~ v_knowledge_discovered = 0 ~ v_peace_credibility = 0 ~ v_campaign_readiness = 0 ~ resolver_id = "" ~ outcome_id = "" ~ counterfactual = true ~ v_timeline_drift = MAX(0, MIN(10, v_timeline_drift + (3))) # intent: road-rewind-no-cross # frame: counterfactual # facts: fact-crossing-civil-war,fact-ariminum # cues: portal-open Yes—your choice rewinds our adventure. The recorded army continued beyond Ariminum, but your alternate timeline returns us to the Rubicon, where I turn back and wait in camp. -> s_waiting_camp === i_road_ask_pompey === ~ resolver_id = "" ~ outcome_id = "" ~ v_knowledge_discovered = MAX(0, MIN(10, v_knowledge_discovered + (1))) # intent: road-ask-pompey # frame: historical_record # facts: fact-pompey-leaves-rome,fact-stamp-foot # cues: road-transition Riders say Pompey, the consuls, and many senators have left Rome and are heading south toward the port of Brundisium. Later writers will tell how he once boasted he need only stamp his foot on Italy to raise armies, and how the senators asked him to start stamping. What he is thinking now, I cannot know. -> s_road_south === s_corfinium === ~ scene_id = "corfinium" # scene: corfinium // The mercy decision · February 49 BCE · rising_action // The treatment of surrendered opponents will shape the campaign, but the central struggle remains unresolved. + [Release the surrendered leaders. # id: corfinium-release-leaders # decision: true] -> i_corfinium_release_leaders + [Keep the leaders under guard. # id: corfinium-hold-leaders # decision: true # weights: guarded-order={MAX(1, 55)};fear-spreads={MAX(1, 45)}] -> i_corfinium_hold_leaders + [Ask whether mercy is sincere or strategic # id: corfinium-question-mercy] -> i_corfinium_question_mercy + [Continue through Caesar's recorded decision # id: corfinium-continue-recorded] -> i_corfinium_continue_recorded + [Explain the decision at Corfinium # id: corfinium-clarify] -> i_corfinium_clarify === i_corfinium_release_leaders === ~ resolver_id = "" ~ outcome_id = "" ~ v_peace_credibility = MAX(-5, MIN(5, v_peace_credibility + (1))) # intent: corfinium-release-leaders # frame: historical_record # facts: fact-corfinium-clemency,fact-brundisium-war-continues # cues: gate-open I release the surrendered leaders, as recorded at Corfinium. Mercy may win support, but the war continues. At council, should we prepare supplies and rest, or press onward quickly? -> s_brundisium === i_corfinium_hold_leaders === ~ resolver_id = "corfinium-hold-leaders" ~ temp w0 = MAX(1, 55) ~ temp w1 = MAX(1, 45) ~ outcome_total = w0 + w1 ~ temp roll = draw_weight(outcome_total) {roll <= w0: ~ outcome_id = "guarded-order" ~ outcome_weight = w0 -> i_corfinium_outcome_guarded_order } {roll <= w0 + w1: ~ outcome_id = "fear-spreads" ~ outcome_weight = w1 -> i_corfinium_outcome_fear_spreads } -> END === i_corfinium_outcome_guarded_order === ~ counterfactual = true ~ v_timeline_drift = MAX(0, MIN(10, v_timeline_drift + (2))) # intent: corfinium-outcome-guarded-order # frame: counterfactual # facts: fact-corfinium-clemency # cues: detention-bar In this imagined result, the leaders remain guarded and the courtyard stays calm. They cannot immediately join another army, but we cannot command how distant towns will react. History records that I released them instead. At the town gate, we must now decide whether this local order is worth making detention our rule. -> s_corfinium_aftermath === i_corfinium_outcome_fear_spreads === ~ counterfactual = true ~ v_timeline_drift = MAX(0, MIN(10, v_timeline_drift + (3))) # intent: corfinium-outcome-fear-spreads # frame: counterfactual # facts: fact-corfinium-clemency,fact-panic-in-italy # cues: rider-departs In this imagined result, a messenger carries news of the detention beyond Corfinium, and fear grows in nearby towns. That may stiffen resistance, but it is our plausible invention; history records that I released the leaders. The rider vanishes over the hill, and we must decide whether to reverse course or make detention the rule of the road ahead. -> s_corfinium_aftermath === i_corfinium_question_mercy === ~ resolver_id = "" ~ outcome_id = "" ~ v_knowledge_discovered = MAX(0, MIN(10, v_knowledge_discovered + (1))) # intent: corfinium-question-mercy # frame: historical_record # facts: fact-clemency-letter,fact-competing-stories # cues: evidence-chime Both motives can exist together. In a surviving letter, I say I want to win through mercy and generosity; that may spare people and also make my side look safer to join. You should still question my account. Would you release the leaders or keep them guarded? -> s_corfinium === i_corfinium_continue_recorded === ~ resolver_id = "" ~ outcome_id = "" ~ v_peace_credibility = MAX(-5, MIN(5, v_peace_credibility + (1))) # intent: corfinium-continue-recorded # frame: historical_record # facts: fact-corfinium-clemency,fact-brundisium-war-continues # cues: gate-open I release the surrendered leaders, as recorded at Corfinium. Mercy may win support, but the war continues. At council, should we prepare supplies and rest, or press onward quickly? -> s_brundisium === i_corfinium_clarify === ~ resolver_id = "" ~ outcome_id = "" # intent: corfinium-clarify # frame: plausible_reconstruction # facts: # cues: The leaders at Corfinium have surrendered. Shall I release them to seek support through mercy, or keep them guarded? This choice shapes the campaign; the struggle for Rome is still ahead. -> s_corfinium === s_corfinium_aftermath === ~ scene_id = "corfinium-aftermath" # scene: corfinium-aftermath // The road beyond Corfinium · February 49 BCE · rising_action // A local reaction forces Caesar to weigh releasing opponents against diverting troops to guard them. + [Reverse the order and release the leaders. # id: aftermath-release-leaders # decision: true] -> i_aftermath_release_leaders + [Keep them guarded and leave a garrison. # id: aftermath-enforce-detention # decision: true] -> i_aftermath_enforce_detention + [Explain what the final policy choice changes # id: aftermath-clarify] -> i_aftermath_clarify === i_aftermath_release_leaders === ~ resolver_id = "" ~ outcome_id = "" ~ counterfactual = true ~ v_peace_credibility = MAX(-5, MIN(5, v_peace_credibility + (1))) # intent: aftermath-release-leaders # frame: counterfactual # facts: fact-corfinium-clemency,fact-brundisium-war-continues # cues: gate-open I reverse the imagined detention and release the leaders. That final release matches the Corfinium record, but our detour remains invented. We have chosen clemency, not settled the war. The campaign will carry us beyond Italy. At our campaign council, should we prepare supplies and rest the troops, or press onward quickly? -> s_brundisium === i_aftermath_enforce_detention === ~ resolver_id = "" ~ outcome_id = "" ~ counterfactual = true ~ v_campaign_readiness = MAX(-3, MIN(3, v_campaign_readiness + (-1))) ~ v_peace_credibility = MAX(-5, MIN(5, v_peace_credibility + (-1))) # intent: aftermath-enforce-detention # frame: counterfactual # facts: fact-corfinium-clemency,fact-brundisium-war-continues # cues: detention-bar In our imagined path I keep the leaders guarded and leave a garrison. Those troops cannot march with us, so our campaign readiness falls. This policy does not decide who wins Rome. The struggle expands beyond Italy. At our campaign council, should we prepare supplies and rest the troops, or press onward quickly? -> s_brundisium === i_aftermath_clarify === ~ resolver_id = "" ~ outcome_id = "" ~ counterfactual = true # intent: aftermath-clarify # frame: counterfactual # facts: # cues: We have seen the first reaction to detention. Shall I release the leaders after all, or leave a garrison to guard them while we continue the campaign? -> s_corfinium_aftermath === s_waiting_camp === ~ scene_id = "waiting-camp" # scene: waiting-camp // The timeline that paused · An imagined January night in 49 BCE · rising_action // An offer needs credibility while each side fears giving up its protection first. + [Offer mutual disarmament. # id: waiting-write-message # decision: true] -> i_waiting_write_message + [Request protected peace talks. # id: waiting-safe-conduct # decision: true] -> i_waiting_safe_conduct + [Wait without adding concessions. # id: waiting-hold-position # decision: true] -> i_waiting_hold_position + [Return to the recorded crossing. # id: waiting-change-mind # decision: true] -> i_waiting_change_mind + [Predict the consequences # id: waiting-predict] -> i_waiting_predict + [Play an interactive story with the child # id: waiting-child-story] -> i_waiting_child_story + [Tell a complete story without questions # id: waiting-child-story-listen] -> i_waiting_child_story_listen + [Confirm the child's alternate timeline # id: waiting-confirm-branch] -> i_waiting_confirm_branch + [Ask whether Caesar already offered peace # id: waiting-ask-offer] -> i_waiting_ask_offer === i_waiting_write_message === ~ resolver_id = "" ~ outcome_id = "" ~ counterfactual = true ~ v_timeline_drift = MAX(0, MIN(10, v_timeline_drift + (2))) ~ v_knowledge_discovered = MAX(0, MIN(10, v_knowledge_discovered + (1))) ~ v_peace_credibility = MAX(-5, MIN(5, v_peace_credibility + (3))) # intent: waiting-write-message # frame: counterfactual # facts: fact-caesar-offer,fact-command-dispute # cues: message-seal We offer a fair exchange: I dismiss my soldiers when Pompey dismisses his, and neither side advances while envoys meet. I seal the message and send the rider. You chose our action; Pompey and the Senate will choose theirs. -> s_waiting_dawn === i_waiting_safe_conduct === ~ resolver_id = "" ~ outcome_id = "" ~ counterfactual = true ~ v_timeline_drift = MAX(0, MIN(10, v_timeline_drift + (2))) ~ v_peace_credibility = MAX(-5, MIN(5, v_peace_credibility + (2))) # intent: waiting-safe-conduct # frame: counterfactual # facts: fact-courier-messages,fact-political-crisis # cues: message-seal We invite both sides to send protected envoys to neutral ground, with no arrests and no advance while they speak. The safer meeting may help, but it guarantees nothing. I seal your proposal and the rider carries it into the dark. -> s_waiting_dawn === i_waiting_hold_position === ~ resolver_id = "" ~ outcome_id = "" ~ counterfactual = true ~ v_timeline_drift = MAX(0, MIN(10, v_timeline_drift + (1))) ~ v_peace_credibility = MAX(-5, MIN(5, v_peace_credibility + (-1))) # intent: waiting-hold-position # frame: counterfactual # facts: fact-caesar-offer,fact-political-crisis # cues: We hold north of the river and add no promise to the offer already rejected. Waiting creates time, but it may look like a tactic rather than trust. The camp settles into uneasy silence until dawn. -> s_waiting_dawn === i_waiting_change_mind === ~ resolver_id = "" ~ outcome_id = "" ~ v_timeline_drift = MAX(0, MIN(10, v_timeline_drift + (-2))) # intent: waiting-change-mind # frame: plausible_reconstruction # facts: fact-crossing-civil-war # cues: decision-pulse Then our imagined pause ends. We return to the recorded path and step into the cold Rubicon, beginning the armed advance into Italy. -> s_rubicon_crossing === i_waiting_predict === ~ resolver_id = "" ~ outcome_id = "" ~ counterfactual = true ~ v_knowledge_discovered = MAX(0, MIN(10, v_knowledge_discovered + (1))) # intent: waiting-predict # frame: counterfactual # facts: fact-political-crisis # cues: Two outcomes are possible in our imagined timeline: waiting might create room to negotiate, or it might make my rivals think I am weak. We cannot know. Shall we send a message or return to history? -> s_waiting_camp === i_waiting_child_story === ~ resolver_id = "" ~ outcome_id = "" ~ counterfactual = true # intent: waiting-child-story # frame: counterfactual # facts: # cues: In our imagined timeline, you guard the peace message when a gust lifts it into the horse lines. One horse catches the ribbon in its teeth. Do you trade an apple for it or try a daring rescue? -> s_waiting_camp === i_waiting_child_story_listen === ~ resolver_id = "" ~ outcome_id = "" ~ counterfactual = true # intent: waiting-child-story-listen # frame: counterfactual # facts: # cues: In our counterfactual story—an alternate path, not recorded history—you guarded Caesar's peace message while the camp waited north of the Rubicon. A gust snatched it from the table and sent it sailing between the horses. You raced after it, ducked beneath a washing line, and landed inside an empty grain basket. One curious horse lowered its head, lifted the basket by its handle, and carried you straight to the runaway message. You rescued the paper, returned it to Caesar, and tied it down with three spoons. The soldiers cheered quietly, the horse received an apple, and your peaceful timeline survived the windy night. -> s_waiting_camp === i_waiting_confirm_branch === ~ resolver_id = "" ~ outcome_id = "" ~ counterfactual = true # intent: waiting-confirm-branch # frame: counterfactual # facts: fact-crossing-civil-war # cues: Yes—your decision changed our adventure. Recorded history crossed the Rubicon, but in your counterfactual timeline we are waiting north of the river, and you can now shape the message I send to Rome. -> s_waiting_camp === i_waiting_ask_offer === ~ resolver_id = "" ~ outcome_id = "" ~ counterfactual = true ~ v_knowledge_discovered = MAX(0, MIN(10, v_knowledge_discovered + (1))) # intent: waiting-ask-offer # frame: counterfactual # facts: fact-caesar-offer,fact-courier-messages # cues: I already tried. My letter offered to lay down my army if Pompey laid down his, and the Senate answered by ordering only me to disarm. A rider needs days to reach Rome and days to return. In this imagined pause we cannot know whether new words would change anything. What would you change in the message? -> s_waiting_camp === s_waiting_dawn === ~ scene_id = "waiting-dawn" # scene: waiting-dawn // Dawn in the timeline that paused · An imagined dawn in January 49 BCE · crisis // The reply may open talks, impose difficult terms or refuse the offer; none of these replies settles the conflict. + [Open the sealed reply. # id: dawn-continue # decision: true # weights: cautious-talks={MAX(1, 20 + v_peace_credibility * (5))};difficult-counteroffer={MAX(1, 50 + v_peace_credibility * (1))};proposal-refused={MAX(1, 30 + v_peace_credibility * (-4))}] -> i_dawn_continue + [Help with an acknowledgement or uncertainty # id: dawn-consider-options] -> i_dawn_consider_options + [Review our proposal # id: dawn-review-offer] -> i_dawn_review_offer + [Close the reply and return to the crossing. # id: dawn-change-mind # decision: true] -> i_dawn_change_mind + [Leave the reply sealed and withdraw from the river. # id: dawn-end-unopened # decision: true] -> i_dawn_end_unopened + [Continue an interactive courier story at dawn # id: dawn-child-story] -> i_dawn_child_story + [Tell the complete alternate-dawn story # id: dawn-child-story-listen] -> i_dawn_child_story_listen === i_dawn_continue === ~ resolver_id = "dawn-continue" ~ temp w0 = MAX(1, 20 + v_peace_credibility * (5)) ~ temp w1 = MAX(1, 50 + v_peace_credibility * (1)) ~ temp w2 = MAX(1, 30 + v_peace_credibility * (-4)) ~ outcome_total = w0 + w1 + w2 ~ temp roll = draw_weight(outcome_total) {roll <= w0: ~ outcome_id = "cautious-talks" ~ outcome_weight = w0 -> i_dawn_outcome_talks } {roll <= w0 + w1: ~ outcome_id = "difficult-counteroffer" ~ outcome_weight = w1 -> i_dawn_outcome_counteroffer } {roll <= w0 + w1 + w2: ~ outcome_id = "proposal-refused" ~ outcome_weight = w2 -> i_dawn_outcome_refused } -> END === i_dawn_consider_options === ~ resolver_id = "" ~ outcome_id = "" ~ counterfactual = true # intent: dawn-consider-options # frame: counterfactual # facts: # cues: You choose what we try, but not how everyone else reacts. We can open the sealed reply and discover the result, review the proposal you sent, or return to what really happened. -> s_waiting_dawn === i_dawn_outcome_talks === ~ counterfactual = true ~ v_timeline_drift = MAX(0, MIN(10, v_timeline_drift + (1))) # intent: dawn-outcome-talks # frame: counterfactual # facts: fact-peace-implementation # cues: message-open In our imagined result, the reply accepts a guarded meeting, but no settlement has been signed. Your assurances helped open the door. Shall we negotiate the terms of mutual withdrawal, or explicitly rejoin the recorded advance? -> s_truce_talks === i_dawn_outcome_counteroffer === ~ counterfactual = true ~ v_timeline_drift = MAX(0, MIN(10, v_timeline_drift + (1))) # intent: dawn-outcome-counteroffer # frame: counterfactual # facts: fact-command-dispute # cues: message-open In this invented result, the reply offers talks only if I withdraw from the Rubicon first. They have not accepted our equal terms, but they have not closed the door. We can accept the risk and leave the river, ask again for equal steps, or return to recorded history. -> s_peace_counteroffer === i_dawn_outcome_refused === ~ counterfactual = true ~ v_timeline_drift = MAX(0, MIN(10, v_timeline_drift + (1))) # intent: dawn-outcome-refused # frame: counterfactual # facts: fact-command-dispute # cues: message-refused In this invented result, the reply is no. Your proposal was reasonable, but other people still made their own choice. We can disband, withdraw the organised army from the Rubicon, or return to the recorded crossing. -> s_peace_refused === i_dawn_review_offer === ~ resolver_id = "" ~ outcome_id = "" ~ counterfactual = true # intent: dawn-review-offer # frame: counterfactual # facts: fact-caesar-offer,fact-command-dispute # cues: Our message asks both sides to pause and make reciprocal concessions rather than trusting only one side to surrender first. In this story model, clearer and fairer terms improve the chance of talks, but never guarantee them. The sealed reply is ready when you are. -> s_waiting_dawn === i_dawn_change_mind === ~ resolver_id = "" ~ outcome_id = "" ~ v_timeline_drift = MAX(0, MIN(10, v_timeline_drift + (-3))) # intent: dawn-change-mind # frame: plausible_reconstruction # facts: fact-crossing-civil-war # cues: portal-open Then we close the imagined reply and return to the recorded path. The cold Rubicon is before us again, and we step into the water knowing this armed advance risks civil war. -> s_rubicon_crossing === i_dawn_end_unopened === ~ resolver_id = "" ~ outcome_id = "" ~ counterfactual = true ~ v_peace_credibility = MAX(-5, MIN(5, v_peace_credibility + (1))) # intent: dawn-end-unopened # frame: counterfactual # facts: fact-peace-implementation # cues: The letter stays sealed and I move away from the river while retaining command. That withdrawal alone settles nothing about Rome. In our imagined path, mediators arrange a last meeting. At one final meeting, shall we offer witnessed command transfers, concede my career for protected exile, or resume the armed struggle? -> s_settlement_council === i_dawn_child_story === ~ resolver_id = "" ~ outcome_id = "" ~ counterfactual = true # intent: dawn-child-story # frame: counterfactual # facts: # cues: horse-tack In our imagined dawn, you hear the returning horse before anyone else. Its rider has two mud-splashed message tubes and cannot remember which is ours. Do you inspect the seals or ask the horse which road it travelled? -> s_waiting_dawn === i_dawn_child_story_listen === ~ resolver_id = "" ~ outcome_id = "" ~ counterfactual = true # intent: dawn-child-story-listen # frame: counterfactual # facts: # cues: horse-tack In our invented dawn, you spotted the returning rider while the camp still slept. His horse had collected so much road dust that one sneeze covered Caesar's map in a perfect grey circle. You checked the seal, rescued the reply, and carried it to the message table. The letter proposed one more meeting rather than a battle. We could never know whether such a reply would truly have come, but in your story both camps waited while envoys spoke. You tied the map down, gave the horse an apple for its service, and watched the sun rise over an army that had not crossed the river. -> s_waiting_dawn === s_truce_talks === ~ scene_id = "truce-talks" # scene: truce-talks // Cautious talks begin · An imagined morning in January 49 BCE · crisis // The rivals will talk, but have not yet agreed how to disarm without surrendering to one another. + [Accept a temporary pause # id: talks-accept-pause] -> i_talks_accept_pause + [Negotiate terms for mutual withdrawal. # id: talks-mutual-withdrawal # decision: true] -> i_talks_mutual_withdrawal + [Rejoin the recorded advance. # id: talks-return-history # decision: true] -> i_talks_return_history + [Explain the next decisions # id: talks-clarify] -> i_talks_clarify === i_talks_accept_pause === ~ resolver_id = "" ~ outcome_id = "" ~ counterfactual = true ~ v_timeline_drift = MAX(0, MIN(10, v_timeline_drift + (1))) # intent: talks-accept-pause # frame: counterfactual # facts: # cues: We keep the guarded pause while considering the terms. Nothing has yet resolved the rivalry. Shall we negotiate enforceable mutual withdrawal, or explicitly rejoin the recorded advance? -> s_truce_talks === i_talks_mutual_withdrawal === ~ resolver_id = "" ~ outcome_id = "" ~ counterfactual = true ~ v_peace_credibility = MAX(-5, MIN(5, v_peace_credibility + (1))) # intent: talks-mutual-withdrawal # frame: counterfactual # facts: fact-peace-implementation # cues: treaty-ratified We agree to work toward reciprocal withdrawal. A promise is not yet peace: we still need dates, protections and a way to confirm both sides have acted. At one final meeting, shall we offer witnessed command transfers, concede my career for protected exile, or resume the armed struggle? -> s_settlement_council === i_talks_return_history === ~ resolver_id = "" ~ outcome_id = "" # intent: talks-return-history # frame: historical_record # facts: fact-political-crisis # cues: road-transition We let the imagined talks fade and rejoin the recorded road. I crossed the Rubicon and advanced into Italy; the guarded table belonged to the path you created. Hooves strike the winter road again, and Corfinium lies ahead. -> s_road_south === i_talks_clarify === ~ resolver_id = "" ~ outcome_id = "" ~ counterfactual = true # intent: talks-clarify # frame: counterfactual # facts: # cues: The imagined reply allows a guarded meeting, not a settled peace. Shall we negotiate enforceable terms, or explicitly rejoin the recorded advance? -> s_truce_talks === s_peace_counteroffer === ~ scene_id = "peace-counteroffer" # scene: peace-counteroffer // A difficult counteroffer · An imagined morning in January 49 BCE · crisis // The rivals demand Caesar move first; he must decide what he can concede without losing all leverage. + [Withdraw first, then negotiate the safeguards. # id: counteroffer-disarm-first # decision: true] -> i_counteroffer_disarm_first + [Insist on equal steps at a final meeting. # id: counteroffer-equal-steps # decision: true] -> i_counteroffer_equal_steps + [Rejoin the recorded advance. # id: counteroffer-return-history # decision: true] -> i_counteroffer_return_history + [Explain the counteroffer choices # id: counteroffer-clarify] -> i_counteroffer_clarify === i_counteroffer_disarm_first === ~ resolver_id = "" ~ outcome_id = "" ~ counterfactual = true ~ v_peace_credibility = MAX(-5, MIN(5, v_peace_credibility + (1))) # intent: counteroffer-disarm-first # frame: counterfactual # facts: fact-peace-implementation # cues: In our imagined path, I move away from the boundary first, without yet giving up command. That concession earns a final meeting but leaves my position exposed. At one final meeting, shall we offer witnessed command transfers, concede my career for protected exile, or resume the armed struggle? -> s_settlement_council === i_counteroffer_equal_steps === ~ resolver_id = "" ~ outcome_id = "" ~ counterfactual = true ~ v_peace_credibility = MAX(-5, MIN(5, v_peace_credibility + (1))) # intent: counteroffer-equal-steps # frame: counterfactual # facts: fact-peace-implementation # cues: We insist on reciprocal steps. The messenger arranges one final meeting to settle dates, protections and enforcement. We will not spend the story repeating unanswered letters. At one final meeting, shall we offer witnessed command transfers, concede my career for protected exile, or resume the armed struggle? -> s_settlement_council === i_counteroffer_return_history === ~ resolver_id = "" ~ outcome_id = "" # intent: counteroffer-return-history # frame: historical_record # facts: fact-command-dispute # cues: road-transition We close the invented reply and rejoin the recorded road. The real dispute over command did not end at this table; I crossed the Rubicon and advanced into Italy. The camp falls behind, wheels turn south, and Corfinium lies ahead. -> s_road_south === i_counteroffer_clarify === ~ resolver_id = "" ~ outcome_id = "" ~ counterfactual = true # intent: counteroffer-clarify # frame: counterfactual # facts: # cues: They want me to withdraw first. Shall we make that concession before a final meeting, insist on reciprocal steps at that meeting, or rejoin the recorded advance? -> s_peace_counteroffer === s_peace_refused === ~ scene_id = "peace-refused" # scene: peace-refused // The proposal is refused · An imagined morning in January 49 BCE · crisis // The first negotiation failed. Caesar must seek a last bargain, concede the contest or resume the armed advance. + [Concede command and seek protected exile. # id: refused-disband # decision: true] -> i_refused_disband + [Withdraw intact and seek one final bargain. # id: refused-withdraw-organised # decision: true] -> i_refused_withdraw_organised + [Return to the recorded crossing. # id: refused-return-crossing # decision: true] -> i_refused_return_crossing + [Explain the refusal choices # id: refused-clarify] -> i_refused_clarify === i_refused_disband === ~ resolver_id = "" ~ outcome_id = "" ~ counterfactual = true # intent: refused-disband # frame: counterfactual # facts: fact-command-dispute # cues: arms-laid-down In this imagined path I offer to stand my army down. I no longer have the leverage to demand a return to office. Mediators secure protected exile in exchange for my command and withdrawal from politics; Pompey's coalition accepts. The concession settles who wins, but we must still carry out the terms. Come to my departure. -> s_exile_settlement === i_refused_withdraw_organised === ~ resolver_id = "" ~ outcome_id = "" ~ counterfactual = true ~ v_peace_credibility = MAX(-5, MIN(5, v_peace_credibility + (-1))) # intent: refused-withdraw-organised # frame: counterfactual # facts: fact-peace-implementation # cues: supply-column I withdraw north with the army intact. The first offer has failed, and moving the camp has not ended the conflict. Mediators obtain one last opportunity to settle it. At one final meeting, shall we offer witnessed command transfers, concede my career for protected exile, or resume the armed struggle? -> s_settlement_council === i_refused_return_crossing === ~ resolver_id = "" ~ outcome_id = "" ~ v_timeline_drift = MAX(0, MIN(10, v_timeline_drift + (-3))) # intent: refused-return-crossing # frame: historical_record # facts: fact-crossing-civil-war # cues: portal-open Then our alternate pause ends. We return to the recorded path: Caesar leads soldiers across the Rubicon and advances into Italy, deepening the danger of civil war. -> s_rubicon_crossing === i_refused_clarify === ~ resolver_id = "" ~ outcome_id = "" ~ counterfactual = true # intent: refused-clarify # frame: counterfactual # facts: # cues: The first offer has been refused. Shall I concede my command and seek protected exile, withdraw with the army for one last negotiation, or resume the recorded crossing? -> s_peace_refused === s_settlement_council === ~ scene_id = "settlement-council" # scene: settlement-council // The Last Negotiating Table · Imagined settlement, 49 BCE · climax // One final bargain remains. Without enforceable terms, the rivals must resume the confrontation or Caesar must concede his career. + [Propose witnessed transfers on fixed dates. # id: council-mutual-guarantees # decision: true # weights: terms-accepted={MAX(1, 65 + v_peace_credibility * (5))};terms-rejected={MAX(1, 35 + v_peace_credibility * (-5))}] -> i_council_mutual_guarantees + [Concede my command in return for protected exile. # id: council-concede # decision: true] -> i_council_concede + [End talks and resume the armed struggle. # id: council-resume-war # decision: true] -> i_council_resume_war + [Explain the decision. # id: settlement-council-clarify] -> i_settlement_council_clarify === i_council_mutual_guarantees === ~ resolver_id = "council-mutual-guarantees" ~ temp w0 = MAX(1, 65 + v_peace_credibility * (5)) ~ temp w1 = MAX(1, 35 + v_peace_credibility * (-5)) ~ outcome_total = w0 + w1 ~ temp roll = draw_weight(outcome_total) {roll <= w0: ~ outcome_id = "terms-accepted" ~ outcome_weight = w0 -> i_council_accepted } {roll <= w0 + w1: ~ outcome_id = "terms-rejected" ~ outcome_weight = w1 -> i_council_rejected } -> END === i_council_concede === ~ resolver_id = "" ~ outcome_id = "" ~ counterfactual = true # intent: council-concede # frame: counterfactual # facts: fact-peace-implementation,fact-command-dispute # cues: arms-laid-down In this imagined settlement, I offer to leave politics and surrender command. Pompey's coalition accepts protected exile in return for my departure. I give up the contest, but those promises must now be carried out. Come with me to the departure. -> s_exile_settlement === i_council_resume_war === ~ resolver_id = "" ~ outcome_id = "" ~ counterfactual = true # intent: council-resume-war # frame: counterfactual # facts: fact-brundisium-war-continues # cues: supply-column The bargain fails in our imagined path. I choose to keep my command and advance into Italy. Months of struggle follow; Pompey gathers his forces across the sea. At our campaign council, should we invest in supplies and rest, or press onward quickly? -> s_brundisium === i_council_accepted === ~ counterfactual = true # intent: council-accepted # frame: counterfactual # facts: fact-peace-implementation,fact-command-dispute # cues: treaty-ratified In our imagined path, both sides sign. The dates match, witnesses are appointed, and legal protections are agreed. Now comes the test that words alone cannot pass: the command transfers and elections must actually happen. Let us see the agreement carried out. -> s_peace_ratified === i_council_rejected === ~ counterfactual = true # intent: council-rejected # frame: counterfactual # facts: fact-peace-implementation,fact-command-dispute # cues: council-breaks In our imagined path, the rival coalition rejects the safeguards. The final attempt at a bargain has failed. I retain my command and the confrontation becomes a wider war. At our campaign council, should we build supplies and rest the troops, or move quickly? -> s_brundisium === i_settlement_council_clarify === ~ resolver_id = "" ~ outcome_id = "" ~ counterfactual = true # intent: settlement-council-clarify # frame: counterfactual # facts: # cues: This is our last attempt at an imagined bargain. Shall we propose fixed dates and witnessed command transfers, give up my career in return for protected exile, or abandon talks and resume the struggle? -> s_settlement_council === s_peace_ratified === ~ scene_id = "peace-ratified" # scene: peace-ratified // The Agreement Is Carried Out · Imagined peace, later in 49 BCE · resolution // The signatures must become actions. Peace is earned only when both rivals surrender their military leverage. + [See the peace agreement carried out. # id: peace-complete # decision: true] -> i_peace_complete + [Explain the decision. # id: peace-ratified-clarify] -> i_peace_ratified_clarify === i_peace_complete === ~ resolver_id = "" ~ outcome_id = "" ~ counterfactual = true # intent: peace-complete # frame: counterfactual # facts: fact-peace-implementation,fact-command-dispute,fact-dictator-for-life # cues: treaty-ratified The witnesses confirm both transfers of command. The agreed elections take place, and I return to civilian politics under the settlement's protections. Neither Pompey nor I becomes Rome's sole ruler. Our story ends here: this confrontation is settled, and republican government continues. We imagined this successful bargain; in recorded history, war followed and I became dictator for life. The price of our peace is real: we both surrender military leverage, and I accept limits on my ambition. The Republic is not promised an effortless future, but this crisis is over. ~ ending_id = "republican-peace" -> END === i_peace_ratified_clarify === ~ resolver_id = "" ~ outcome_id = "" ~ counterfactual = true # intent: peace-ratified-clarify # frame: counterfactual # facts: # cues: We have reached the closing scene. The agreed dates arrive; witnesses wait for both command transfers. Shall we see the agreement carried out and discover what each side must give up? -> s_peace_ratified === s_brundisium === ~ scene_id = "brundisium" # scene: brundisium // A War Beyond Italy · Campaign bridge: March 49–48 BCE · rising_action // Possessing Italy has not defeated Pompey's coalition. The next campaign will test supplies and the army's ability to keep together. + [Prepare supplies and rest the troops. # id: campaign-prepare # decision: true] -> i_campaign_prepare + [Press onward quickly. # id: campaign-hurry # decision: true] -> i_campaign_hurry + [Explain the decision. # id: brundisium-clarify] -> i_brundisium_clarify + [Rewind to camp. # id: campaign-rewind-camp # decision: true] -> i_campaign_rewind_camp === i_campaign_rewind_camp === ~ resolver_id = "" ~ outcome_id = "" ~ counterfactual = true ~ v_caesar_trust = 5 ~ v_timeline_drift = 3 ~ v_knowledge_discovered = 0 ~ v_peace_credibility = 0 ~ v_campaign_readiness = 0 # intent: campaign-rewind-camp # frame: counterfactual # facts: fact-crossing-civil-war # cues: portal-open We rewind our imagined adventure to the camp north of the Rubicon. Earlier supplies, trust and negotiating advantages are reset; you can still remember what you learned. This is a new attempt at peace, not an event added to recorded history. Shall we offer mutual disarmament, request protected talks, or wait without concessions? -> s_waiting_camp === i_campaign_prepare === ~ resolver_id = "" ~ outcome_id = "" ~ v_campaign_readiness = MAX(-3, MIN(3, v_campaign_readiness + (2))) # intent: campaign-prepare # frame: plausible_reconstruction # facts: fact-dyrrhachium-setback # cues: supply-column We take time to prepare. Our imagined preparations strengthen the army's readiness; they do not guarantee victory. The story advances into 48 BCE, near Dyrrhachium, where the recorded Caesar suffered a serious reverse. The camp is shaken. Shall we follow his recorded withdrawal inland, or imagine trying to hold the coastal position? -> s_dyrrhachium === i_campaign_hurry === ~ resolver_id = "" ~ outcome_id = "" ~ v_campaign_readiness = MAX(-3, MIN(3, v_campaign_readiness + (-1))) # intent: campaign-hurry # frame: plausible_reconstruction # facts: fact-dyrrhachium-setback # cues: rider-departs We press onward without enough time for rest or reserves. Near Dyrrhachium, my army suffers a recorded reverse. Should we withdraw inland, or imagine holding the coast? -> s_dyrrhachium === i_brundisium_clarify === ~ resolver_id = "" ~ outcome_id = "" # intent: brundisium-clarify # frame: plausible_reconstruction # facts: # cues: We can pause here; no orders have changed and the army is no better supplied yet. Say “prepare” to spend time on supplies, or “press onward” to move quickly. To try peace again, say “rewind to camp”; that restarts our imagined negotiations without keeping earlier advantages. -> s_brundisium === s_dyrrhachium === ~ scene_id = "dyrrhachium" # scene: dyrrhachium // Dyrrhachium: The Army in Danger · 48 BCE · crisis // A serious setback has exposed the army. Caesar must preserve a force that can continue the struggle or risk its collapse. + [Follow the recorded withdrawal inland. # id: dyrrhachium-withdraw # decision: true] -> i_dyrrhachium_withdraw + [Try to hold the coast and restore supplies. # id: dyrrhachium-hold # decision: true # weights: escape-secured={MAX(1, 35 + v_campaign_readiness * (8))};pursuit-breaks-army={MAX(1, 65 + v_campaign_readiness * (-8))}] -> i_dyrrhachium_hold + [Explain the decision. # id: dyrrhachium-clarify] -> i_dyrrhachium_clarify === i_dyrrhachium_withdraw === ~ resolver_id = "" ~ outcome_id = "" # intent: dyrrhachium-withdraw # frame: historical_record # facts: fact-dyrrhachium-setback,fact-pompey-no-pursuit # cues: supply-column I withdraw inland and keep the army in the contest. That is the recorded direction after Dyrrhachium; the setback did not finish Caesar. We move to the decisive confrontation at Pharsalus. Shall we follow the recorded battle, or imagine delaying it while trying to outlast Pompey's army? -> s_pharsalus === i_dyrrhachium_hold === ~ resolver_id = "dyrrhachium-hold" ~ temp w0 = MAX(1, 35 + v_campaign_readiness * (8)) ~ temp w1 = MAX(1, 65 + v_campaign_readiness * (-8)) ~ outcome_total = w0 + w1 ~ temp roll = draw_weight(outcome_total) {roll <= w0: ~ outcome_id = "escape-secured" ~ outcome_weight = w0 -> i_dyrrhachium_recover } {roll <= w0 + w1: ~ outcome_id = "pursuit-breaks-army" ~ outcome_weight = w1 -> i_dyrrhachium_collapse } -> END === i_dyrrhachium_recover === ~ counterfactual = true # intent: dyrrhachium-recover # frame: counterfactual # facts: fact-dyrrhachium-setback # cues: supply-column In our imagined outcome, supplies arrive before Pompey can close the road. We cannot keep the coast, but the army escapes inland together. The contest will now be settled at Pharsalus. Shall we follow the recorded battle, or imagine delaying it to try to outlast Pompey? -> s_pharsalus === i_dyrrhachium_collapse === ~ counterfactual = true # intent: dyrrhachium-collapse # frame: counterfactual # facts: fact-pompey-no-pursuit # cues: arms-laid-down In our imagined outcome, Pompey attacks before supplies arrive. My army breaks apart, and I surrender command for protected exile. We move to the final settlement. -> s_exile_settlement === i_dyrrhachium_clarify === ~ resolver_id = "" ~ outcome_id = "" # intent: dyrrhachium-clarify # frame: plausible_reconstruction # facts: # cues: Our position has broken and supplies are strained. This is the campaign's crisis. Shall we follow Caesar's recorded withdrawal inland, or imagine holding the coast while trying to restore the supply route? -> s_dyrrhachium === s_pharsalus === ~ scene_id = "pharsalus" # scene: pharsalus // Pharsalus: The Decisive Contest · 48 BCE · climax // The campaign has narrowed to a decisive contest. A victory still needs a political conclusion; a defeat needs a settlement. + [Follow the recorded battle and its aftermath. # id: pharsalus-recorded # decision: true] -> i_pharsalus_recorded + [Delay battle and try to outlast Pompey. # id: pharsalus-outlast # decision: true # weights: caesar-gains-decisive-opening={MAX(1, 55 + v_campaign_readiness * (8))};pompey-cuts-supplies={MAX(1, 45 + v_campaign_readiness * (-8))}] -> i_pharsalus_outlast + [Explain the decision. # id: pharsalus-clarify] -> i_pharsalus_clarify === i_pharsalus_recorded === ~ resolver_id = "" ~ outcome_id = "" # intent: pharsalus-recorded # frame: historical_record # facts: fact-pharsalus-victory,fact-final-campaigns,fact-dictator-for-life # cues: victory-signal We follow the record: Caesar wins at Pharsalus. Yet the war is not over that afternoon. Our epilogue carries us through further campaigns in Africa and Spain, including Munda in 45 BCE. By early 44 BCE I return as Rome's dominant ruler, dictator for life. We have reached the closing scene: come and hear what this victory has cost. -> s_caesar_rome === i_pharsalus_outlast === ~ resolver_id = "pharsalus-outlast" ~ temp w0 = MAX(1, 55 + v_campaign_readiness * (8)) ~ temp w1 = MAX(1, 45 + v_campaign_readiness * (-8)) ~ outcome_total = w0 + w1 ~ temp roll = draw_weight(outcome_total) {roll <= w0: ~ outcome_id = "caesar-gains-decisive-opening" ~ outcome_weight = w0 -> i_pharsalus_alternate_win } {roll <= w0 + w1: ~ outcome_id = "pompey-cuts-supplies" ~ outcome_weight = w1 -> i_pharsalus_alternate_loss } -> END === i_pharsalus_alternate_win === ~ counterfactual = true # intent: pharsalus-alternate-win # frame: counterfactual # facts: fact-dictator-for-life # cues: victory-signal In our imagined campaign, our reserves last and Pompey's army exposes itself while moving for supplies. Caesar wins the decisive encounter. In a compressed alternate epilogue, the remaining opposing armies are defeated and Rome grants me lifetime dictatorship. We reach the same political destination as history through an invented route. Let us enter the closing scene. -> s_caesar_rome === i_pharsalus_alternate_loss === ~ counterfactual = true # intent: pharsalus-alternate-loss # frame: counterfactual # facts: fact-pharsalus-victory # cues: arms-laid-down In our imagined campaign, Pompey's forces cut the supply route before our plan succeeds. The army can no longer hold together; the remaining commanders stand down. Pompey's coalition now has the power to dictate terms. I agree to surrender my command and accept protected exile. Come to the departure, where this struggle finally ends. -> s_exile_settlement === i_pharsalus_clarify === ~ resolver_id = "" ~ outcome_id = "" # intent: pharsalus-clarify # frame: plausible_reconstruction # facts: # cues: This is our decisive turning point. Shall we follow Caesar's recorded battle at Pharsalus and its aftermath, or imagine delaying battle while trying to outlast Pompey's army? -> s_pharsalus === s_caesar_rome === ~ scene_id = "caesar-rome" # scene: caesar-rome // Rome: The Victor's Price · Closing historical milestone: early 44 BCE · resolution // The military contest is resolved. The final reckoning is the price of placing such authority in the victor's hands. + [Hear the conclusion of Caesar's victory. # id: rome-complete # decision: true] -> i_rome_complete + [Explain the decision. # id: caesar-rome-clarify] -> i_caesar_rome_clarify === i_rome_complete === ~ resolver_id = "" ~ outcome_id = "" # intent: rome-complete # frame: historical_record # facts: fact-final-campaigns,fact-dictator-for-life # cues: victory-signal The campaign maps are folded away. By early 44 BCE I stand as dictator for life: Caesar has won the struggle and holds dominant power in Rome. Our story ends here. This political outcome matches the historical record; any invented steps on our journey remain inventions. Victory has not made its cost disappear. Roman fought Roman, and authority is now concentrated in one man rather than shared among competing civilian leaders. I have gained the power I sought. Rome must live with the price. ~ ending_id = "caesar-rules-rome" -> END === i_caesar_rome_clarify === ~ resolver_id = "" ~ outcome_id = "" # intent: caesar-rome-clarify # frame: historical_record # facts: # cues: The campaigning has reached its conclusion. I hold the dictatorship for life; Rome has a victor. We are at the end of this story. Shall we hear what my victory means for the people and their government? -> s_caesar_rome === s_exile_settlement === ~ scene_id = "exile-settlement" # scene: exile-settlement // Caesar's Departure into Exile · Counterfactual closing settlement, 49–48 BCE · resolution // Caesar has conceded the contest. The terms must be honoured and his command relinquished before the story can close. + [See Caesar surrender command and leave. # id: exile-complete # decision: true] -> i_exile_complete + [Explain the decision. # id: exile-settlement-clarify] -> i_exile_settlement_clarify === i_exile_complete === ~ resolver_id = "" ~ outcome_id = "" ~ counterfactual = true # intent: exile-complete # frame: counterfactual # facts: fact-pharsalus-victory,fact-dictator-for-life # cues: arms-laid-down I surrender my command, and my forces stand down. Pompey's coalition sends me into protected exile. This ending is imagined: the historical Caesar recovered, defeated Pompey, and became dictator for life. Here, Rome escapes my dictatorship, but Pompey's military influence remains. Our story ends here. ~ ending_id = "pompey-prevails" -> END === i_exile_settlement_clarify === ~ resolver_id = "" ~ outcome_id = "" ~ counterfactual = true # intent: exile-settlement-clarify # frame: counterfactual # facts: # cues: The contest is decided in Pompey's favour. In our imagined settlement I must give up command and depart under protection. This is the closing scene. Shall we follow the agreement through to my departure? -> s_exile_settlement // Inky and gameplay use seeded Ink randomness. Analysis may substitute a draw. === function draw_weight(total) === ~ return RANDOM(1, total)