Files
Dune/docs/ALLIED_TRANSIT_RULES.md
T
Quintine 9c6b2d884b
Verify and publish checkpoint container / container (push) Canceled after 0s
Support Basic allied No-Field transit
2026-10-28 22:53:10 +11:00

298 lines
22 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Allied transit and separation: bounded primary-source audit
Audit: 7 September 2026. Read-only source and code audit, retained by the coordinating agent. Scope is classic GF9 base rules and the applicable November 2020 FAQ, not tournament or movie-game rules.
## Basic allied No-Field transit — 28 October 2026
**Prototyped / Partial.** The November 2020 FAQ p. 2 permits shipment into
an ally's territory followed by departure, subject to stronghold limits. The
printed Richese alliance ability ships its ally's off-planet forces and
immediately reveals the No-Field. Provisionally compose these rules for a
Basic offer to the Richese-occupied territory. The recipient consents, the
native cancellation and payment sequence applies, and the arriving counters
are ordinary physical forces. The pre-arrival physical baseline records only
new visitors; finishing without moving them out sends those visitors to Tanks
under the existing provisional Basic fallback. A zero-force arrival creates no
visitor receipt. The supplier's older marker reveals before this baseline is
recorded. Supplier and recipient see the fallback before offering or accepting;
minimal AI retains its existing legal empty-destination offer path.
This composition and the no-departure fallback are software interpretations,
not publisher rulings. Advanced allied No-Field transit and other transport
combinations remain separate. [FAQ](https://www.gf9games.com/dune/wp-content/uploads/2020/11/Dune-FAQ-Nov-2020.pdf),
[CHOAM & Richese rulebook](https://www.gf9games.com/dune/wp-content/uploads/2021/11/CHOAM-Rulebook-low-res.pdf).
## Concealed No-Field at the separation deadline — 27 October 2026
A deployed marker is one force for all effects, including0, under publisher E2
FAQ printed10 and supplied physical36 B. The supplied Advanced physical15
constraint sends the ending player's shared forces to Tanks. Basic retains
its existing later-player deadline and new-alliance grace. Neither source gives
a dedicated No-Field/alliance-loss worked example.
Under the 14 October recommended-option authority, the selected **provisional
destructive composition** reveals a due marker using the distinct native
`alliedSeparation` cause. Materialize only its original available reserves,
then send the ending player's actual forces in that territory to Tanks. The
native token history/event rotates once;0 adds no counter and no casualty.
The ally's pieces stay. A marker elsewhere, a not-yet-due Basic turn, Polar Sink
and the existing Advanced advisor/native Ecaz exemptions do not reveal or lose
that marker. No optional loss confirmation is introduced.
The old custody refusal could prevent the current player from finishing; native
ending now completes the due consequence and advances the original movement
queue. Printed movement-card continuations use the same final ending function;
this does not certify their broader combinations. Other rejected actions keep
their native guards and no completed turn is reevaluated.
Both modes retain an own clean-turn warning based on the original canonical
quote. Advanced keeps `advancedAllySeparation`; Basic now projects
`basicAllySeparation`. Each carries only public territory names and optional
`noField: true`, never denomination, quantity or token identity. If a marker is
due, the persistent warning explains provisional revelation and loss. The normal
Finish control refers to that warning and submits the same `endMovement`.
Minimal policies use that shared deadline when choosing a physical departure;
full AI strategy and calibration remain deferred.
This connects ending custody, not allied No-Field shipment, special Guild return,
Homeworld or any previously unsupported arrival. Saved games and recorded
alliance timing are not rewritten. Wider interactions and full acceptance remain.
### No-Field focused evidence
A due allied-separation end now reveals the concealed marker through the
selected provisional destructive composition, materializes only available
reserves, then sends the ending player's actual shared group to Tanks.0 adds
no counter. The ally stays unchanged. Basic keeps its later-player deadline
and formation grace; Advanced keeps per-player timing and advisor/Polar/Ecaz
exceptions. Normal Finish advances instead of rejecting concealed custody.
Both modes have a persistent public territory/marker-presence warning, with no
denomination or quantity and no extra confirmation. Minimal policies reuse the
same deadline; full AI refinement remains deferred.
[Source and contract](ALLIED_TRANSIT_RULES.md#concealed-no-field-at-the-separation-deadline--27-october-2026).
Frozen **10-file union, 75/75**, types/lint/build and six original-game programmes
pass. Actual public Richese/Emperor/Atreides +CHOAM-deck starts, dials4+5,
marker shipment2 and physical shipment4 create protected Basin9/11 groups.
An original worm Nexus and two actual alliance consents create co-occupation.
Advanced0/3/5 and Basic0/5 reach due endings; Basic3 uses the recorded earlier
turn2 formation prefix. Runtime records 19 GameTable SSR, 6 warning renders
(5 populated) and 7 actual GameTable Finish callbacks. Source/further recorded
action arrays total549/19. Other controls use native packets directly. No played
hand, purse, army, phase, alliance, marker or event is installed. Browser
hydration/navigation and depleted-reserve native journeys were not operated.
Nine new native/control cases and the expanded pure cause/cap case pass.
All four existing profiles first choose legal voluntary revelation; the test
follows actual legal continuation through ending rather than demanding an
immediate Finish proposal. Quiet source drivers now pass a separate optional
allied shipment and accept the empty Battle phase's native Collection7. The
older source fixture also now follows actual Charity order. Failed v1 evidence
is preserved; v2 reruns the frozen related checks after those source repairs.
Proof: `/home/quintine/.local/share/dune/checkpoints/20261027-no-field-separation-proof-v2/`;
journeys/HTML: adjacent `20261027-no-field-separation-runtime/run-v1/`.
All checks use one frozen source, followed only by a recorded three-document
evidence overlay. Existing server HTTP200, no restart or saved-game/database
operation. Extra-card endings, broader combinations, full modes and final
rules/recovery/privacy/browser/deployed acceptance remain due.
## Advanced ordinary allied shipment follow-up — 8 October 2026
Ordinary physical reserve shipment may now enter an ally's territory on the
shipper's own unused turn before movement, under the same scoped entry
permission as Basic. This composes the November FAQ's shipment/departure
permission with the authorized supplied **physical p15** ending constraint.
Stronghold capacity, storm, price, counters and movement range still apply.
No-Fields, allied No-Field offers, Homeworld and mobile transports keep their
separate guards; normal ground-movement endpoints are not broadened.
Advanced creates no Basic visitor receipt. At ending, the existing native
Advanced quote removes **all the ending player's shared forces**, including
old counters, not just newcomers. Advisor, Polar Sink and native Ecaz
coexistence exemptions remain. Basic keeps its visibly provisional excess-
visitor policy and older co-occupation deadline. No extra move or refund
is granted when departure is unavailable.
The pre-shipment notice explains the mode-specific consequence; the
existing ending warning names the shared territories. Minimal legal AI
prioritizes a native departure and does not leave a city sentinel behind.
Three direct smokes cover paid normal1/special1 arrival and Medium departure,
ending with old5 plus new2 (only the actor's7 go to Tanks), and third-faction
capacity rejection. Chromium observed native GameTable SSR pre-arrival and
ending warnings with enabled finish. No broad suite, recovery campaign or
deployed acceptance was run.
## Basic own No-Field transit — 28 October 2026
**Prototyped / Partial.** Richese may ship its own single concealed No-Field
into an eligible ally-occupied territory, then move it out during its turn.
High Richese Homeworld may include paid physical reserve companions; the whole
group must depart, using its existing combined price and typed reserve custody.
Storm and stronghold capacity remain in force. The owner sees a warning without
revealing the token value to other players. If the marker remains beside the
ally at turn end, the provisional no-departure policy reveals it, places up to
its value from available reserves and sends those newly materialized forces to
Tanks. A zero marker reveals without casualties. Physical visitors use the
same pre-arrival baseline; an earlier voluntary reveal is not repeated.
The source FAQ permits allied shipment transit and the Richese rules count a
concealed marker as one force; their combination and no-exit consequence are
provisional. Paired markers and other
transport compositions remain separate.
## Basic ordinary allied shipment prototype — 8 October 2026
The content-first Basic pass connects the FAQ's ordinary physical
reserve-shipment-then-departure sequence. It is available only before the
shipper's movement, on its own turn, with its ordinary shipment unused.
Storm, stronghold capacity, reserve/payment rules and movement range still
apply. Normal ground-movement endpoints retain the ally guard; Polar Sink
and native Ecaz coexistence need no temporary permission.
`Game.basicAlliedShipment` records the current actor, reciprocal ally,
turn, territory and pre-arrival normal/special physical baseline. The
own-seat `GameView.basicAlliedShipment` warning quotes excess physical
visitors still present there. Normal ending consumes the receipt once.
If the ally has left or the original reciprocal alliance no longer holds,
there is no visitor consequence. Physical counters are fungible: mixed
old/new groups use the aggregate baseline, not invented counter identities.
**Provisional policy, not a publisher ruling:** excess visiting forces
left behind at the end of the shipper's turn go to Tanks, including when
an interruption prevented departure. This implements a non-stalling first
version under the user's Basic-first instruction; it does not adjudicate
the no-exit source gap below. The pre-shipment notice and ending warning
name that policy. Losses do not count as Battle losses. Existing Basic
co-occupation deadlines still resolve separately. AI prioritizes available
native departures and does not retain a stronghold sentinel from a
visiting group.
Mobile/homeworld transports and optional arrival compositions are not expanded
by the ordinary Basic prototype. Allied No-Field arrivals have their own
later scoped prototype above.
Advanced ordinary physical entry is connected in the follow-up above.
Refinement of interrupted and mixed-cohort interactions remains later work.
The unexposed three-member alliance foundation can quote a receipt with
multiple allied witnesses against one physical baseline. It checks current
allied occupants at turn end, including an ally who arrived after the shipment;
this online interpretation remains provisional. The native engine currently
uses the shared receipt and quote only for the existing reciprocal pair.
Group entry, turn-end handling, controls and remaining alliance effects must
be connected before three-member play is offered. The unlimited-size alliance
variant requires separate work beyond the present three-member cap.
**Brief smoke evidence:** paid Basic allied arrival followed by Medium's
native departure and clean ending; ending without departure removes two
new visitors while preserving five old counters and the ally's three;
ally-plus-rival stronghold capacity remains enforced. Actual `GameTable`
SSR markup was observed in Chromium with the provisional count warning
and enabled finish control. This is not deployed browser acceptance.
## Authorized Advanced source cutover — 1 October 2026
The user-supplied root `UNOFFICIAL_Revised_Dune_Rulebook_v.2.3_web.pdf`
is now authorized for Advanced, including its marked unofficial departures.
It has 44 physical PDF pages and SHA-256
`7077aa87a973221d86d4bd2da945b40c4dec3d371caa6a68cb209758ddf1e516`;
metadata says v.2.3, but the visible editorial heading on physical page 3
says Version 2.2. The PDF remains user-owned and is not republished.
**Alliance Constraint, physical PDF page 15:** at the end of either
player's Shipment and Movement, its own forces in a territory shared with
its ally go to Tanks, except Polar Sink. Advisors do not trigger the
constraint. The footnote identifies both per-player timing and advisor
coexistence as intentional departures from the original rules and November
2020 FAQ. **Questions and Answers, physical page 40** explains the aim:
advisor occupation should not lock allies out, and the first acting player
should bear its own departure obligation.
Accordingly, normal Advanced ends no longer wait for the ally's later turn
or exempt an alliance formed this turn. Advisor exemption works in both
directions: sharing with advisors kills neither the advisors nor allied
fighters. BG fighters are not exempt. Native Ecaz peaceful coexistence and
its existing Karama conditions remain unchanged. Homeworlds are not Dune
territories and keep their native allied-entry prohibitions. Basic retains
the existing later-player and formation-turn conditions, including its
non-exempt advisor treatment.
This resolves the **Advanced** timing/advisor and end-turn consequence
questions below. The 8 October follow-up also connects scoped ordinary
allied reserve entry, without granting new shipments or extra moves,
altering alliance formation/breaking windows or settling optional arrivals.
A forced end consequence needs no new loss confirmation; `endMovement`
remains legal even when no escape is available. Native custody removes the
ending player's group once, not its ally's group. The later No-Field follow-up
above supplies provisional destructive revelation at the same deadline.
The own clean-turn warning uses the canonical engine quote via
`GameView.advancedAllySeparation: { territories: string[] } | null`.
It contains public territory names only, not force counts, concealed
values or raw source receipts. Pending response/decision controls retain
priority. Already completed turns are not reevaluated.
**Verification: Partial development verified.** The selected source-wave
checks pass 339/339 across seventeen files; full types/lint and 6,169
offline cases pass. Authenticated SQLite covers restart/CAS/privacy and
unchanged Basic behavior. Genuine unallied Basin groups separated by
Storm subsequently ally at a natural Nexus; native ending sends only the
actor's two physical forces, including one elite, to Tanks. Hajr and
advisor/Ecaz/Polar cases retain their own continuation. Actual 390-pixel
first/later human ending in backed-up `CA6FVKVD` and `U5335T2L` changes
Emperor Tanks from zero to two, leaves Atreides at zero and survives refresh.
Saved physical inventory and all original authenticated seats remain intact.
No allied-entry guard was removed to create the fixture. Basic and wider
public/faction/module gates remain unchanged. The September publisher audit
below is historical comparison, not the current Advanced authority.
The supplied revision is unofficial, not a later publisher FAQ.
## Publisher sources and established facts
**Base rulebook**, printed pp9–10,12,18,23: https://www.gf9games.com/dunegame/wp-content/uploads/Dune-Rulebook.pdf . Read local publisher text `/tmp/dune-rules/base.txt`; official indexed p12 independently corroborates it.
- Shipment precedes that player's ordinary force movement. Each normal movement moves one group, with one or three territories of range as applicable. Storm and stronghold restrictions still apply.
- The alliance constraint expressly exempts Polar Sink. Allies never battle each other.
- The p12 NOTE addresses factions allied during the preceding turn which still share a territory at the next turn's beginning. One must leave during Shipment and Movement. If the first acting ally does not leave, the second must leave or lose its forces there to the Tanks. This supplies a delayed separation deadline for existing co-occupation, not an unconditional entry prohibition.
- Advisors do not prevent another faction's stronghold control or challenge. They remain vulnerable to the listed destruction effects. Their peaceful stance does not make them a different faction.
**November 2020 FAQ**, printed pp2,4: https://www.gf9games.com/dune/wp-content/uploads/2020/11/Dune-FAQ-Nov-2020.pdf . Official indexed full pages were retrieved. No new downloadable binary is claimed.
- Page2 clarifies that allies may be passed through and that shipment into an ally's territory is permitted, provided the entrant moves out to territory without that ally. Ornithopters are not a prerequisite for this permission. The purpose is to prevent ending movement together.
- Page2 separately forbids traversing or shipping into a stronghold containing two other factions; allied transit does not override capacity.
- Page4 expressly requires separation when BG advisors share territory with their ally, referring to the base Alliances NOTE. Advisors therefore are not a permanent allied co-occupation exception.
- Page4 forbids advisors flipping to fighters with an ally. Incoming BG tokens must match the territory's existing BG stance. Advisors becoming alone automatically become fighters.
Exact retrieval queries included the official PDF path plus `"ship into a territory" "ally"` and `"What is the difference between an advisor"`. Searches also checked allied territory, next-turn, Tanks, and advisor/alliance terms. The relevant later clarification is November, not the older April FAQ. Search results for the 2021 movie edition and non-rule forum content were excluded. No later relevant official clarification was located in these bounded searches; that is not proof none exists.
## Historical implementation comparison — 7 September 2026
Line numbers refer to the saved engine read during this audit.
- `game/engine.ts:3421` `allowedEntry` rejects a non-Polar destination containing any allied presence whenever the entering group is not advisors. This prevents the permitted reserve-shipment-then-move-out sequence. It also prevents any separately submitted movement whose endpoint is temporarily allied.
- `:4628` `pathBlocked` considers storm and two-other-faction stronghold capacity, not allied presence. A legal multi-territory path can already transit allied territory while ending elsewhere. Preserve this behavior.
- `:11474` `endMovement` examines total presence, excludes Polar territory, waits until the ally is absent from `movementRemaining`, and skips destruction when both formation markers equal this turn. It then destroys the current player's forces in the shared territory. This is the existing pre-existing-alliance separation mechanism.
- `game/advisors.ts` distinguishes total presence from fighter count. Using total presence for allied separation matches the advisor FAQ. Using fighter count for stronghold capacity matches the base advisor exception. These are intentionally different questions.
- A blanket removal of the entry guard would be incomplete: the current formation-turn exemption is player-wide and the end-turn rule allows the first mover to leave shared forces for the second ally. Neither records whether a specific group entered voluntarily this turn or was present when the alliance formed.
## Historical implementable boundaries and unanswered cases
The clearest supported new behavior is **ship into allied territory, then move the complete visiting group to a legal non-allied destination during the shipper's turn**. A movement path passing through an ally and ending elsewhere is also clear. Permit neither a third fighting faction in a stronghold nor storm traversal under this exception. Preserve Polar Sink's exception. Separate shared territories by their history rather than treating every alliance formed this turn as blanket permission to create new co-occupation.
The following are actual source limits, not established alternative rules:
1. **Voluntary entry cannot be followed by an exit.** The FAQ imposes departure but does not prescribe a software or tabletop remedy if an intervening Karama/entry effect makes departure impossible. Rejecting the original shipment prospectively, reverting/refunding it, automatically killing the entrant, or allowing it to wait for the ally are different outcomes. The p12 Tanks consequence is explicit for its existing-co-occupation case; applying it to every voluntary entrant would be an additional composition.
2. **Separate moves ending on an ally.** Passing through within one multi-territory move is explicit. A first Hajr or two-group Ornithopter action ending on an ally and a second action leaving is not separately addressed by the retrieved text. Do not silently treat those digital action boundaries as either one move or an extra permission. A narrow initial shipment-plus-normal-move implementation can avoid claiming this edge is settled.
3. **New voluntary entry during alliance formation turn.** Distinguish the FAQ departure requirement from the p12 delayed deadline for already shared forces. The precise treatment of mixed old/new cohorts in the same territory is not supplied as a token-level rule. Do not let a blanket `allySinceTurn` check silently waive the new entry's obligation.
4. **Other arrival mechanisms.** Advisor accompaniment has its explicit separation instruction; its timing can differ from BG's own turn. Worm rides, No-Field materialization, Enemy of My Enemy and competing expansion arrivals need their own composition. Homeworlds are outside this base transit permission.
Under the authorized Advanced cutover above, the ending player's shared
fighters are lost even if departure was prevented or the alliance formed
this turn; no old/new cohort exemption is inferred. Thus items 1 and 3 no
longer leave the ordinary **Advanced end-turn consequence** unresolved.
Their Basic-policy and prospective entry-permission questions remain.
Item 4's advisor separation premise is superseded in Advanced, while
independent arrival timing and unsupported combinations stay bounded.
Recommended bounded checks before changing the entry guard: ordinary path transit with a clean endpoint; paid shipment followed by complete legal exit; no legal exit available; temporary city access and remaining movement range; ally-plus-enemy stronghold capacity; Polar co-occupation; advisors versus fighters; old Nexus co-occupation in formation turn and following turn, both action orders; multiple shared territories; serialized continuation and duplicate requests. Bind the no-exit outcome only after its policy is source-supported or explicitly adjudicated. No runtime or tests were changed by this audit.