# Juice of Sapho: battle aggressor ## Late aggressor and public final opportunity — 18 October 2026 **Prototyped / Partial.** The physical face permits becoming the current battle's aggressor without a before-plans qualifier; see the [primary-source review](JUICE_OF_SAPHO_SOURCE_UPDATE.md#aggressor-and-battle-selection-order). The former mixed-Stone blocker is addressed by the new [physical-total allocation](STONE_BURNER_ENGINE_AUDIT.md#outcome-changing-physical-totals--18-october-2026). Under the standing choose-recommended instruction, this checkpoint selects the following provisional online protocol. The acknowledgement procedure is an implementation interpretation, not an official timing FAQ or new printed rule. Fresh battles with an actual public Richese roster receive `saphoTimingVersion:1`, alongside their existing public preparation window. This follows the physical cache/Sapho producer; merely selecting the E2 family without Richese does not create that cache or a Sapho-dependent prompt. The canonical unreserved holder may become aggressor at a clean boundary before the final opportunity closes, including after one/both sealed plans and revealed weapon/Traitor declarations. Existing nested responses/decisions still finish first. Eligibility does not inspect an opposing hand or sealed plan. The holder's own sealed or inspected card slots reserve the physical card: Sapho cannot be spent while used as a Planetologist Special weapon or another commitment. After all original weapon decisions, Traitor votes/responses and any native Homeworld invader Portable Snooper choice, both physical combatants receive the same **Final battle actions** control. It opens regardless of actual card ownership, tie, Traitor/explosion branch or final winner. Each chooses **Finish final battle actions** using the current public event. This persistent window has no timer and does not replace a suspended decision. Playing Sapho changes public priority and creates a fresh event, clearing both finish marks; both players must finish again. Playing does not itself finish the opportunity. The second acknowledgement closes priority before Stone physical counts, Smuggler/Sandmaster choices, Diplomat retreat, Jacurutu, losses and aftermath. The closed window cannot reopen there. Plans, participants, chooser, Voice, Prescience, Truthtrance promises and chosen weapon/Traitor declarations remain unchanged. Habbanya still precedes ordinary aggressor tie priority on either physical side. New discard continuations bind the late stage and public revision; unstamped old battles retain their exact early conditions/signature format. No existing battle is converted or reset. The table exposes only public identity, revision and readiness. Minimal policies use their existing server-derived Sapho option first, otherwise explicitly finish their own opportunity. This adds legal participation, not strategy calibration. ### Checkpoint evidence and remaining limits Frozen **16 files177/177**, types/lint/build and eight original-action/ rendered-table programmes pass. The source-bound report is retained privately at `/home/quintine/.local/share/dune/checkpoints/20261018-sapho-late/frozen-integrated-2/report.json`: proof base `cb13a4d6748c3b86d5b472bab8d798b49b45af28`, source tree `54889569fdfe483bfdeaffdf85c88127a41afdbceafb32ceb7b7d9dc99a7f75f`. Only checkpoint prose/reference evidence changes after that frozen source. The new original-action fixtures buy Sapho for1 through the actual cache and pay for opposing three-force Arrakeen shipments:40 Basic/47 Advanced source actions. The Advanced mixed branch buys Stone1 on turn1, Sapho1 on turn2 and ships6/1Sard against Richese3:86 actions, including actual original circle4/circle5 choices. Four-to-seven plan/vote/use actions reach the final window; two-to-four actions finish both acknowledgements, real physical count2 and original typed cleanup. Baseline ties go to Richese; one-plan/final-window Sapho changes them to Emperor. A use after the holder's own acknowledgement resets both marks and rejects the old event. Sixteen minimal proposals are legal in actual held/no-card views. Actual GameTable, Sapho and isolated final controls render offered, busy, already-finished and revised states. Framework aliases/CSS stubs mean no browser clicks or visual/deployed acceptance. Pure lifecycle/control tests and controlled own-plan/Prescience reservation probes remain separate evidence; the latter do not claim a full original Planetologist/Sapho setup. Related existing regressions include native Stone, Homeworld defense, Harkonnen Nexus and Semuta early disposal. Bounded review repaired the Harkonnen Nexus final-vote exit to preserve original Homeworld invader defense. Frozen feedback corrected four obsolete fixture assumptions: the historical Stone guard is explicitly unstamped, a human saving Sapho uses explicit controls instead of an eager bot, and Basic/Advanced readiness retains late timing only in fresh battles. The exact failed cases pass8/8, then the entire affected177 pass with types/lint/build/runtime against unchanged source. This does not certify full modes, direct late Semuta claim/capture, a combined World/Nexus/Sapho journey, wider combinations or final assurance. Browser and exact-revision deployed acceptance remain open. No saved-room/database, reset, restart or deployment operation was performed. ## Historical early prototype — 20 September 2026 Connected partial prototype at that checkpoint. The physical face and source precedence remain in the [Sapho audit](JUICE_OF_SAPHO_ENGINE_AUDIT.md); the [battle review](JUICE_OF_SAPHO_BATTLE_REVIEW.md) separates scheduling, physical participants and tie priority. This checkpoint implements the printed aggressor effect during an existing opportunity. It does not adjudicate late timing. ## Connected behavior The holder can play the canonical, unreserved card while their shared `preLeader` opportunity is open, before their readiness declaration and before either plan. The other combatant may already be ready. Actual Voice, Prescience, Nexus/full-plan inspection and Truthtrance commitments prevent this early use, as do suspended interactions and mandatory disposal. Unchosen preparation prompts bind no plan content and may remain. No hidden opposing hand or selected plan determines eligibility. No holder-only pause or new confirmation window is introduced. `scope:'battleAggressor', mode:'aggressor'` binds the battle, turn and use revision. It discards the physical card once and records public priority, without swapping attacker/defender slots, chooser, forces, leaders or later battle scheduling. An already held position is unavailable. A recovered card can change priority again at a fresh opportunity; no extra once-per-battle limit is invented. The validated use history and independent event list survive JSON continuation. Reads, actions and automatic normalization reject mismatched history, event, combatants, turn or physical card custody. Legacy battles retain their original attacker priority and do not reopen closed preparation. The shared tie helper checks both combatants for the effective Habbanya advantage before falling back to aggressor. Engine plan/Voice/prescience checks, public projections, AI calculations and the final battle quote use that priority. Ordinary strength ties and Stone Burner's physical-token ties therefore agree. Early use precedes all commitments, so Stone's existing public finishability guard can evaluate the changed priority before accepting a plan. The unresolved late mixed-allocation hazard from the battle review is not bypassed. The hand panel exposes the real action, the table names aggressor and tie winner, and automatic notices mark a successful use. All four AI profiles can use the same private options and finish through the existing preparation and battle path. Timing strategy and complete Richese-game acceptance remain later work. ## Evidence and limits Focused tests cover actual ordinary/Stone outcomes in Basic and Advanced, Habbanya on either physical side, rejected stale/late/cross-owner submissions, unchanged rejected input, public eligibility with changed private rival holdings, receipt corruption, conserved recovered-card reuse and all four AI continuations. The mixed Emperor/Guild regression changes Stone's pre-commit finishability before any hidden opposing plan exists. Authenticated in-memory SQLite races consume one card; fresh stores restore each private seat through the same battle. Fixtures use genuine CHOAM/Richese setup followed by explicit conserved board/hand staging; they are not full genuine-game evidence or proof of every module combination. The owner-only control and public table text have rendering regressions. Browser, required checks, complete-game samples, preservation and verified Git evidence belong to the source-bound checkpoint report and commit message. Later pre-reveal, post-reveal and final-intervention opportunities remain unfinished, including their privacy-neutral response protocol and Stone allocation work. These are development boundaries, not extra printed prohibitions. Other Sapho timing questions and all mode/publication gates remain unchanged.