Seal exact native Homeworld Reinforcements costs and plan sources

This commit is contained in:
Quintine committed 2026-10-16 13:07:49 +11:00
1 parent 05c4c8c7fb
commit c64c08af89
32 files changed
+1484 -119

No files matched your search

+29 -4
View File
@@ -29,6 +29,31 @@ optional skill bands, combinations and public expansion starts remain open.
Rules implementation continues; comprehensive assurance and administration
remain deferred until all rules are implemented.
**Exact native Homeworld Reinforcements — 16 October.** Clean classic2–6
Basic/Advanced independent36-card setup now connects the native fee on Arrakis,
foreign Worlds and own Worlds. Exact normal-first source allocations seal in
the plan; ambiguous omission rejects and a unique source may derive. Reserve
fees never borrow visitors, allies or future Harass returns. On an own World,
exclude its fee from the physical dial/casualty pool while retaining original
pre-fee face/support. Nested plan sources and explosion-face receipt preserve
the actual allocation without a new game root or an invented own-World ban.
Canonical independent card names now work in existing current/named-slot
Truthtrance controls. Native question logging/preview/history no longer calls
an Arrakis-only lookup. A real named R+dial3 promise finds the needed off-World
fee, and private reviews/form filling preserve it. Six actual390px journeys
finish Collection, including physical0 own defense, threshold explosion,
three-Fedaykin fee before15 Harass returns and entitled whole-plan source read.
32 fresh four-policy programmes accept114 continuations and separately
validate1682 R candidates against the actual engine.
Frozen41-file464/464, types/lint and build pass. CLI help executes;218 evidence
paths/source anchors/related IDs resolve, with three coverage topics Partial.
Eight initial Vite dependency aborts and automation selector limitations are
recorded; no overflow/application exception. Owned hosts/tabs/scaffolds removed.
Other rosters/overlays, saved-game conversion, public/deploy gates, calibration,
whole-mode and final recovery/privacy/custody certification remain open.
**Current-rate Homeworld Recruits — 16 October.** Clean classic2–6 Basic and
Advanced independent36-card setup now admits native Revival. Reuse current
free rates/low bonuses, recorded usage and typed deposits, not a new saved
@@ -48,15 +73,15 @@ by a passing10-case rerun. CLI help and207 guide evidence paths/source anchor
pass. Initial QA middleware ordering and eight Vite dependency aborts are
recorded, not called zero diagnostics. No overflow/application exception.
Owned hosts/tab/scaffolds removed; no games/DBs/human services touched.
Reinforcements retains its explicit Homeworld gate. Other overlays/rosters,
public starts, whole-mode/final assurance and deployment remain gated.
Reinforcements uses its separate exact native-source composition above. Other
overlays/rosters, public starts, whole-mode/final assurance and deployment stay gated.
**Classic Homeworld Harass — 16 October.** Fresh classic2–6 Basic/Advanced
Homeworlds can compose the original independent36-card variant. Harass works
on Arrakis or a foreign World, never any own World, including both Emperor
Worlds in Advanced. Recruits uses the separate native-rate composition above;
Reinforcements keeps its World guard. No other overlays, expansion rosters,
public starts or played-save conversion open.
Reinforcements uses its separate native fee contract. No other overlays,
expansion rosters, public starts or played-save conversion open.
Actual undialed counters return through one native custody quote: Basic
original primary retains typed elites; Advanced normal→Kaitain/elite→Salusa.
+4 -2
View File
@@ -145,8 +145,10 @@ physical cards before original classic2–6 Basic/Advanced setup: base33+3.
Harass composes on Arrakis and foreign Homeworlds. The printed own-World
prohibition remains, including both Advanced Emperor Worlds. Expansion
rosters, other overlays, public starts and played-game conversion stay closed.
Reinforcements retains its Homeworld guard; Recruits has a separate
[native current-rate composition](RECRUITS_RUNTIME.md#classic-homeworld-composition--16-october-2026).
Recruits has a separate
[native current-rate composition](RECRUITS_RUNTIME.md#classic-homeworld-composition--16-october-2026);
Reinforcements now uses an
[exact native fee before these returns](REINFORCEMENTS_RUNTIME.md#classic-homeworld-reserve-fees--16-october-2026).
This is not certification of the entire three-card variant.
Arrakis returns remove exact ordinary/elite board counters and use the
+70
View File
@@ -1,5 +1,75 @@
# Dune implementation status
## 16 October 2026 — Exact native Homeworld Reinforcements fees
Original fresh own-Salusa play rejects the blanket R module gate before a
plan, reserve or card changes. Extend only clean classic2–6 Basic/Advanced
Homeworlds with independent36-card setup. All three bounded effects now compose;
this does not certify the whole variant or open other overlays, expansion
rosters, public starts or played-save conversion.
One focused native quote enumerates exact normal-first World source choices
and validates the selected three counters through original custody. Visitors,
other players and later Harass returns do not fund it. A unique source may
derive; ambiguous omission and malformed/foreign/wrong-type/overdraw source
maps reject. Seal `Plan.reinforcementsSources`, excluded from ordinary
Prescience fields; no early payment or game root. Source ownership remains
the actual card user, not a selected leader/ally.
On an own World, fee counters and native army overlap physically. Explicitly
choose the disjoint pre-fee reserved-pool interpretation: subtract the on-World
fee from physical dial/casualties, not original face/support traits. An off-World
fee leaves that army. Native explosion receipts keep optional nested
`faceAtResolution`; split1K/2S at Kaitain5 crosses low at4 but still loses the
original2, not post-fee3. Exact typed fee commits before Harass/casualties and
counts existing battle losses on every revealed outcome. No own-World ban,
support/bonus pawn, waiver or retroactive rescore is invented. These are visibly
provisional compositions of the printed reserve cost and original native rules,
not newly retrieved FAQ answers.
Both slot controls display finite exact native choices and a wrapping selected
caption. Own-World dial/support bounds, sealed guidance, earned full-plan read,
private compliant review and fill carry source metadata. Four policies generate
legal source-bearing actions; unchanged normal-score strategy is not calibrated.
Two workers supplied independent genuine Arrakis/World fixture/regression
slices; parent reviewed all bodies, removed incidental stage/default/DTO-copy
pins and integrated alone. Actual setup/shipment/native movement produces
normal/mixed/star fee pools without counter/wallet/phase/history assignment.
Hands, original Traitors and unopened first-Blow cards are positioned explicitly.
Constrained-plan smoke exposed two real pre-existing blockers: independent
names omitted from the old whitelist, then battle question formatting calling
Arrakis `territory()` for a World. Move the single canonical registry to
`truthtrance-card-names.ts` and migrate every consumer without re-export;
ordinary/Ix/cache/independent names do not select/deal a family or reclassify a
utility. Require explicit canonical location resolution for logging, active
preview/answer and history. A real named R+dial3 promise now answers Yes, finds
the off-World source and executes it. Its completion fill replaces the invalid
on-World fee draft too. Delete obsolete registry/parse echoes and incidental
spice/knowledge wording assertions, preserving their actual action outcomes.
Six real390px GameTable journeys reach phase7 with battle/decision/World loss
clear: foreign split2K/1S, native3K/physical0, split1K/2S threshold explosion,
Fremen3E fee before15N Harass returns, private Atreides source inspection, and
the actual compound named-card promise. Physical0 bounds are both0. Private
inspection leaves opponent unsealed, shows complete fee only to its entitled
reader, then continues normally. The named legal-plan fill changes stale source3
to0 and physical max0 to3, completing reserves14/Tanks6/spice7 with Salusa9N5E.
Thirty-two fresh programmes/four policies accept114 plan/vote/loss actions and
separately engine-validate1682 generated R candidates; no false continuation
count. Initial inspection probe needed original elite-strength priority passes,
not a timing-rule change.
Frozen41 offline files464/464; types/lint and production build pass. Existing
module-register/large-chunk/Unknown-route warnings remain. Actual CLI help
executes; guide import resolves218 unique evidence paths, source anchors and
related IDs. All three topic coverages remain Partial. Eight Vite startup
dependency aborts and selector limitations are retained in private proof,
not called zero diagnostics; no overflow/application exception. Fresh screenshot
after the fade is the accepted private-panel visual proof. Owned hosts/tabs/
scaffolds removed. Games/DBs/human services remain untouched. No deployment or
whole-mode, recovery/privacy/custody certification is claimed.
## 16 October 2026 — Recruits with current native Homeworld rates
Final types/lint pass after narrowing the test helper's nullable World view;
+3 -3
View File
@@ -34,9 +34,9 @@ The fresh `ecaz-treachery --homeworlds` entry now admits Recruits during
original classic2–6 Basic/Advanced Revival, with its original36-card inventory.
Reuse native current free rates and typed revival deposits. No rate snapshot,
new saved field, seven extra counters, automatic refund, generic module
activation or played-save conversion is added. Reinforcements keeps its own
explicit Homeworld gate; other optional overlays and expansion rosters stay
outside this clean composition.
activation or played-save conversion is added. Reinforcements has a separate
[native-source fee composition](REINFORCEMENTS_RUNTIME.md#classic-homeworld-reserve-fees--16-october-2026);
other optional overlays and expansion rosters stay outside this clean entry.
Publisher Ecaz & Moritani printed pp11/16 specifically gives low Fremen4,
doubled but capped at7. Under the standing choose-recommended instruction,
+100 -6
View File
@@ -2,17 +2,17 @@
The separate Ecaz Treachery Cards variant shuffles one physical Reinforcements
card independently of choosing the Ecaz faction. Its bounded handler supports
Basic or Advanced classic-faction tables and clean Ecaz/Moritani expansion
tables without other optional modules. The fresh opted-in Advanced Occupy
profile additionally composes co-present armies and native Ixian/Tleilaxu/CHOAM
families; Basic/unprofiled co-side use stays guarded. The
holder may commit it in either Battle Plan card slot. It is neither a weapon
Basic/Advanced classic-faction tables and clean Ecaz/Moritani expansion tables.
Fresh clean classic Homeworlds use the native-source composition below; other
optional modules retain their guards. The selected Advanced Occupy profile also
composes co-present armies and native Ixian/Tleilaxu/CHOAM families.
The holder may commit it in either Battle Plan card slot. It is neither a weapon
nor a defense: Prescience of a category receives **None**, while the physical
slot stays occupied and hidden until reveal. A named-card inspection still
fixes the exact card. Harass & Withdraw may share the plan under the
[provisional original-cost-first policy](#combined-utility-plan--16-october-2026).
Original or copied Stone Burner composes in the existing native Advanced Occupy
envelope; Homeworld, other profile and optional-module boundaries remain.
envelope. Other roster/profile/optional-module boundaries remain.
The [combined-army follow-up](ECAZ_OCCUPY_RULES.md#independent-cards-with-combined-armies--2-october-2026)
retains own-holder reserve cost and selected lead card/payment ownership.
@@ -144,3 +144,97 @@ D1, deployment, public profile or new broad/HTTP/recovery/privacy/custody
assurance campaign changed. Owned hosts/scripts are removed; private proof
artifacts stay outside Git.
## Classic Homeworld reserve fees — 16 October 2026
Fresh `ecaz-treachery --homeworlds` composes original classic2–6 Basic/Advanced
and all three independent physical cards (base33+3). Reinforcements may be
used on Arrakis, a foreign World **or an own World**; it does not inherit
Harass's printed own-World ban. Expansion rosters, other overlays, public
starts and played-save conversion remain outside this entry.
### Sources, physical pool and original quote
The existing provisional normal-first/all-outcome fee still consumes exactly3
own native reserve counters into matching normal/special Tanks subpools before
Harass returns and battle casualties. Visitors, an ally and future returns
cannot pay. Canonical native withdrawal updates World custody and aggregate
reserves together, not fake board keys or revival. Population observation
follows the complete typed fee. The +2 remains score-only.
An owner-only finite source list exposes every exact legal split, including
real normal counters moved between Kaitain/Salusa. A unique source may derive;
ambiguous omission, foreign IDs, wrong types, nonphysical counts and overdraw
reject. `Plan.reinforcementsSources` records the chosen fee before both seals;
sealing pays nothing early. Sources are not a new ordinary Prescience element.
Named full-plan inspection receives the actual committed sources privately.
On an own World, native reserves and the battle army are the same physical
counters. Under the explicit choose-recommended composition, reserve the
on-location fee from the physical dial/support/casualty pool while retaining
the original pre-fee printed face and combat traits. An off-World fee does
not shrink that army. This is provisional composition, not a newly retrieved
card-specific FAQ or permission to spend one counter twice.
For example, Kaitain3 paying3 here can still play its printed-strength/leader
plan at physical dial0, but not dial1. Taking3 normal from Salusa instead
leaves those three Kaitain natives available. With Kaitain5, a split1 Kaitain/
2 Salusa fee crosses low at4; its explosion still loses the original high2,
not the later low3. The optional nested World-loss `faceAtResolution` keeps
that exact original choice through mandatory disposal. No new game root is
added; the new nested source/face fields are not described as no saved fields.
Controls show exact allocations and a wrapped selected-fee caption, project
the own-World physical maximum, retain sealed source guidance, and carry the
whole source choice when filling a legal completion. Private full-plan and
compliant-plan reviews display the same real source map. Four minimal policies
generate explicit legal source-bearing plans and native-only continuations.
### Canonical named questions and native locations
The constrained-plan smoke found the old whitelist omitted the independent
cards. `game/truthtrance-card-names.ts` now supplies canonical ordinary/Ix,
Richese-cache and independent names to current hand/count controls and named
battle conditions. Every consumer moved; no obsolete re-export remains.
Names do not select/deal a family or change a utility card into a weapon.
A real Reinforcements-and-dial3 question then exposed the formatter's
Arrakis-only lookup. Server logging, active preview/answer and history now
provide canonical combat-location names explicitly. A real Kaitain promise
can answer Yes, find the necessary off-World Salusa fee and execute it. Its
legal-completion button replaces an invalid own-World fee draft as well as
the dial/support/cards. Old copied-registry and incidental wording assertions
are deleted, not re-pinned; native action/physical-outcome regressions replace
that evidence.
### Scoped native proof
Six actual390px GameTable journeys reach Collection with no battle/decision/
World-loss frame: foreign split2K/1S, scarce own3K/physical0, split1K/2S
threshold explosion, Fremen three-Fedaykin fee before15 normal Harass returns,
entitled full-plan source inspection, and the named R+dial3 Kaitain promise.
The source review/selection stays readable; its current metadata never pays
early. Native-only votes, original support, exact Tanks and mandatory discard
are observed.
Thirty-two fresh programmes/four policies validate1682 generated R candidates
against the actual engine and accept114 plan/vote/loss continuation actions,
including the underfunded-card fallback. These are separate counts, not1682
continuations. Actual setup, shipment, native movement and battles produce
the positions; only conserved hands/Traitors/unopened first-Blow cards are
positioned explicitly. This is not unstaged full-game card acquisition.
The original inspection probe initially stopped before native elite-strength
priority passed; completing that original response fixed the probe without
changing timing rules. The named-question failures above were real runtime
gaps and are repaired. Across two owned Vite startups, eight old dependency
requests abort before rendered journeys; no overflow/application exception.
Owned hosts/tabs/scaffolds are removed and proof artifacts remain outside Git.
No saved game, DB, human service, public gate or deployment changed. Whole
mode/variant acceptance, calibration and final assurance remain unfinished.
Frozen related41 offline files464/464, types/lint and production build pass.
Existing module-register/large-chunk/Unknown-route warnings remain. CLI help
executes;218 unique guide evidence paths, both new anchors and related IDs
resolve. Homeworlds, Reinforcements and Truthtrance coverage remains Partial.
No HTTP route or DB boundary changed; no broad/final assurance campaign ran.
+3 -2
View File
@@ -662,8 +662,9 @@ dedicated retrieved worked FAQs. [Contract and remaining limits](HOMEWORLD_OCCUP
| Mixed No-Field Occupy | Extend the existing provisional additive ordinary-plus-reserve-capped-marker pool into selected native Advanced coalition battles, as ally or opponent. Original fixed Ecaz strength, support payer/counter owners, Traitor/actual reveal and history stay; prevention restores selected-lead-only pool. Selected Ecaz plan controls the ally's private variable quote, not its own ordinary maximum; rivals get no concealed increment. The FAQ mixed-cap ambiguity remains unresolved, not newly adjudicated. Basic mixed-co-side and other profile/module gates remain. | [Exact composition](RICHESE_NO_FIELD_RULES.md#mixed-native-occupy-pool--16-october-2026) |
| No-Field / Atreides special plan | Supplied physical p27 C bars ordinary dial Prescience; distinct p27 F grants an entire-plan special Karama and p36 B names Prescience, not separately F. Under standing choose-recommended, provisionally allow F's actual complete private plan read, retaining C's dial bar. Original target-first commitment is not public No-Field revelation; both seals still materialize once, including zero/caps, then original costs/losses/history run. No token inventory or automatic allied inspection entitlement is granted. This is explicit textual/timing composition, not a new combined FAQ/user answer or mode opening. | [Exact source and scope](ATREIDES_FULL_PLAN_TIMING.md#supplied-source-no-field-composition--16-october-2026) |
| No-Field / current Truthtrance fact | Broad game-related yes/no-fact authority supports the distinct current concealed printed-value predicate0/3/5. No marker/revealed history is No even for0; capped/exhausted5 remains printed5. Read the respondent's own model, never an ally or planned shipment. Publish only aggregate Yes/No after the private expected answer; information disclosure is not physical revelation or future-use obligation. This is explicit composition, not a dedicated No-Field FAQ. Existing physical-counter exclusion, native disposal/parent and mode gates remain. | [Source and current-fact scope](RICHESE_NO_FIELD_RULES.md#current-concealed-value-truthtrance--16-october-2026) |
| Harass / classic Homeworlds | Fresh classic2–6 Basic/Advanced independent36-card/Homeworld composition admits Arrakis and foreign-World returns, never an own World. Return exact typed board/visitor counters through native custody: Basic primary; Advanced Emperor normal→Kaitain/elite→Salusa. This destination/timing composition is explicit, not a new card FAQ or separate Nexus ruling. Original sealed commitment/support remains; subsequent population observations cannot rescore it. Homeworld loss receipts retain fully-committed Harass complements; native-only Traitors, late defense/explosion and after-use discard stay. Recruits has the separate current-rate composition below; Reinforcements/faction/overlay/public gates remain. | [Source and native routing](HARASS_WITHDRAW_RUNTIME.md#classic-homeworld-reserve-routing--16-october-2026) |
| Recruits / classic Homeworlds | Publisher E3 pp11/16 gives low Fremen4 doubled but capped7. Under choose-recommended, compose original separate-request native population observations: current rate at acceptance, retained accepted group price/free classification, then later requests use changed population and recorded free usage. Bulk7 versus split1+5 is provisional timing, not a new FAQ/user answer. Fremen still cannot buy a seventh without Tleilaxu; typed native deposits and original special-force caps remain. Prior paid/ready returns retain payment and opportunity while phase4 stays open. Clean classic2–6 Basic/Advanced only; Reinforcements and other roster/overlay/public gates stay. | [Current-rate scope and proof](RECRUITS_RUNTIME.md#classic-homeworld-composition--16-october-2026) |
| Harass / classic Homeworlds | Fresh classic2–6 Basic/Advanced independent36-card/Homeworld composition admits Arrakis and foreign-World returns, never an own World. Return exact typed board/visitor counters through native custody: Basic primary; Advanced Emperor normal→Kaitain/elite→Salusa. This destination/timing composition is explicit, not a new card FAQ or separate Nexus ruling. Original sealed commitment/support remains; subsequent population observations cannot rescore it. Homeworld loss receipts retain fully-committed Harass complements; native-only Traitors, late defense/explosion and after-use discard stay. Recruits and Reinforcements have their separate native compositions below; other faction/overlay/public gates remain. | [Source and native routing](HARASS_WITHDRAW_RUNTIME.md#classic-homeworld-reserve-routing--16-october-2026) |
| Recruits / classic Homeworlds | Publisher E3 pp11/16 gives low Fremen4 doubled but capped7. Under choose-recommended, compose original separate-request native population observations: current rate at acceptance, retained accepted group price/free classification, then later requests use changed population and recorded free usage. Bulk7 versus split1+5 is provisional timing, not a new FAQ/user answer. Fremen still cannot buy a seventh without Tleilaxu; typed native deposits and original special-force caps remain. Prior paid/ready returns retain payment and opportunity while phase4 stays open. Clean classic2–6 Basic/Advanced only; Reinforcements uses its separate native fee contract and other roster/overlay/public gates stay. | [Current-rate scope and proof](RECRUITS_RUNTIME.md#classic-homeworld-composition--16-october-2026) |
| Reinforcements / classic Homeworlds | Under standing choose-recommended, seal exact native normal-first sources for the existing three-reserve/all-outcome fee. Ambiguous omission rejects; a unique source may derive. Native reserves on an own World are also its army, so that fee cannot fund the same physical dial/casualties; an off-World fee leaves the pool. Keep original pre-fee traits/printed face, including explosion loss choices across a threshold, then typed Tanks, Harass return and original casualties. This is explicit provisional physical-pool composition, not a new FAQ or own-World ban. Source-aware full/complying plan reviews and named independent-card conditions use canonical names and actual combat locations. Other rosters/overlays/public starts remain gated. | [Native sources and exact proof](REINFORCEMENTS_RUNTIME.md#classic-homeworld-reserve-fees--16-october-2026) |
| Clean Ix Stone / Tooth / Mirror | Reuse the existing CHOAM prototype order: original Stone first, then uncopied Tooth. The earlier priority question is unanswered; standing choose-recommended extends that order provisionally, not as a publisher ruling or user answer. Printed Mirror copy-first and user-selected physical retention stay independent. Clean selected Ix/Richese supports native Ixians/Tleilaxu in both modes; Ecaz/Moritani stays Advanced-only. Typed winner ambiguity, new Ix Tech/Stronghold and other module bands remain guarded. | [Source and profile distinction](MIRROR_WEAPON_ENGINE_AUDIT.md#clean-selected-ix-composition--16-october-2026) |
| Expansion-faction setup | Selecting Ecaz/Moritani factions does not select their independent three-card variant. Ordinary decks contain 33/35/47 cards; Richese's ten-card cache stays separate. Ecaz allocates six total forces within Imperial Basin sectors 9–11, retaining fourteen reserves. Flexible sector allocation is the literal printed territory constraint; Fremen→Ecaz→Advanced BG order is an implementation inference, while Moritani-last is printed. | [Source and profile contract](EXPANSION_FACTIONS_PROTOTYPE.md) |
| Ixian Technology on Richese lots | Superseded 8 October by the authorized supplied Advanced physical p34, which expressly excludes Richese auctions from Ixian Technology. Richese cache/Black Market lots now open directly; the once-per-round Technology use remains for ordinary lots. The temporary per-lot decline scaffolding and its tests were deleted. | [Auction source boundary](RICHESE_AUCTION_RULES.md#13-september-saved-per-lot-technology-decline--superseded-8-october) |
+9
View File
@@ -18,6 +18,15 @@ The new leaf inside the existing fact question is:
`value` must be a nonnegative safe integer. Thresholds are not artificially limited by a current hand limit or battle dial. Names use the same exact canonical `TRUTH_CARD_NAMES` membership as existing hand facts. Case variants and unknown names are rejected; no new alias or combat-role inference is introduced. Shield Snooper and Portable Snooper do not count as Shield or Snooper.
The 16 October canonical registry lives in `game/truthtrance-card-names.ts`.
Ordinary/Ix, separate Richese cache and all three independent Ecaz names feed
the same exact current-fact and named-slot condition controls. Recognizing a
name does not select/deal its family or reclassify a special as a weapon.
The actual named Reinforcements/native-dial continuation is recorded in the
[native fee contract](REINFORCEMENTS_RUNTIME.md#canonical-named-questions-and-native-locations).
Native battle question previews, answers/history and server logs receive
canonical combat-location labels, not an Arrakis-only territory lookup.
`game/truthtrance-card-count.ts` provides the pure parser, matcher and sentence formatter. The engine adapter catches parser failures as `TruthError`, preserving the existing rejected-action path. It evaluates physical entries in the respondent's actual current hand when answering. A used card retained in hand counts; cards already in a deck, discard or on-table effect do not. The helper relies on the engine's physical inventory contract rather than deduplicating or repairing corrupted hands.
The shared Truthtrance engine handles priority, ownership, answer validation, exact single discard, history and interrupted-state continuation. A dishonest or unknown answer to this knowable leaf is rejected. In composed expressions, existing three-valued AND/OR rules still apply when another clause is unknown. Only the aggregate expected answer is projected to the target; other seats get no matching-card IDs, counts or per-clause answers. The published question and answer intentionally reveal their logical consequence.