134 lines
7.8 KiB
Markdown
134 lines
7.8 KiB
Markdown
# Truthtrance current facts and original Traitor declarations
|
|
|
|
## Mixed aggregate prototype — 26 October 2026
|
|
|
|
**Prototyped / Partial.** The packet is
|
|
`{kind:'mixedTraitorCall',target,battle,territory,mixed}`. Fact/action/AND/OR clauses
|
|
use `TraitorActionClaim={call:boolean}`: true Reveal, false Decline. Every action
|
|
leaf concerns the same current original revealed native voter decision. The
|
|
[scalar contract](TRUTHTRANCE_TRAITOR_DECISIONS.md) still owns public source,
|
|
voter/beneficiary, matching physical card, protection and effect timing.
|
|
Original pure questions and faction/module start gates stay unchanged.
|
|
|
|
## Authority and logical meaning
|
|
|
|
Reuse recorded publisher November2020 FAQp8 AND/OR/current-turn and supplied
|
|
Advanced physical39/printed37 compliance/release/unknown authority. The existing
|
|
native declaration interval and shared snapshot/witness interpretation remain
|
|
provisional under standing14October priority. No dedicated publisher mixed
|
|
solver, future matching draw witness or arbitrary promise language is claimed.
|
|
|
|
Current facts all freeze at the actual answer. Later bribes, Traitor draws and
|
|
returns do not reevaluate them. Unknown is false for definite Yes and true for
|
|
No; a remaining native obligation must guarantee the aggregate. No negates the
|
|
whole expression. Unknown FACT correlations are not inferred.
|
|
|
|
Every Reveal/Decline action leaf names one boolean decision, so its correlation
|
|
is exact. `mixedTraitorRequirement` evaluates the complete compiled tree for
|
|
both logical declarations. It returns impossible, one forced choice, or no
|
|
restriction when both values guarantee the selected aggregate. Constants and
|
|
logical tautologies are terminal immediately; this claims no declaration
|
|
receipt. A contradictory action expression can have a guaranteed whole No.
|
|
No to a Decline condition can force Reveal. Smaller subclauses never acquire
|
|
separate public answers or fixed routes.
|
|
|
|
Reduction considers both logical values before native eligibility. A presently
|
|
unmatched/leaderless/protected actor may only Decline, but a new forced Decline
|
|
still binds through later matching-card draws. Eligibility is not used to erase
|
|
the future commitment. If no guaranteed answer has an original native completion,
|
|
unknown/save/change-question remains available.
|
|
|
|
## One native decision and receipt
|
|
|
|
`game/mixed-traitor-question.ts` strictly accepts only one call boolean per leaf.
|
|
Outer groups use the shared16-leaf/depth4 grammar and nested fact budget, with
|
|
no additional battle-plan node/term caps. Invalid metadata/groups cannot hide
|
|
under decisive branches. The original native context must be revealed/current,
|
|
with an actual still-unsubmitted voter and exact battle/territory. This includes
|
|
native Harkonnen ally voting and retains original Homeworld restrictions.
|
|
|
|
A forced choice enters `traitorDecisionPromises` through the original binder,
|
|
with one optional new event link. Old pure records omit that property and
|
|
retain their shape. Validation accepts only a nonempty link when present;
|
|
settlement/reconciliation preserve it. Native choice calculation, matching
|
|
identity, Kwisatz protection, beneficiary, opposing leader and prior promises
|
|
stay authoritative. The mixed helper performs no second native eligibility or
|
|
physical card search.
|
|
|
|
Raw `mixedTraitorQuestions` links original question/answer to the native record.
|
|
Actual declaration settles it before effect prevention or synchronous cleanup.
|
|
A later canceled effect never undoes a receipt. Native impossibility or ended
|
|
unfulfilled source releases pending aggregates; submitted true and false slots
|
|
never reopen. New mixed discard signatures retain raw metadata plus the already
|
|
signed battle/ledger without changing old pure continuation signatures.
|
|
|
|
Harkonnen Cunning still draws/returns original physical identities. A live
|
|
required Reveal protects its matching identity from voluntary return, including
|
|
an answer added during the pending native return. A Decline can return the
|
|
matching identity; new draws do not remove its cap. After an actual fulfilled
|
|
Reveal, returning that identity does not retract the original receipt/effective
|
|
call. Existing parent signatures keep their original exemptions and unrelated
|
|
fields; no extra snapshot weakening is added.
|
|
|
|
## Projection and human controls
|
|
|
|
Own projection retains only original raw question, whole answer, public turn/
|
|
battle/territory and fulfilled/released status. Binding flags, forced choices,
|
|
compiled trees and separate frozen facts are not projected. Native own pure
|
|
promise rows filter mixed event links for every viewer; private declaration
|
|
choices still use the full authoritative ledger.
|
|
|
|
The shared full editor adds/wraps/nests/switches/removes/collapses groups and
|
|
exposes per-leaf Reveal/Decline choices without inspecting card custody or
|
|
canReveal. Invalid drafts remain repairable. Raw preview/Ask and target-only
|
|
aggregate answer choices connect to the exact current source. Saved answer
|
|
callbacks retain owner/question/window/battle/choice-array identity and busy/
|
|
source guards. Pure wording and behavior remain.
|
|
|
|
The mixed panel is status-only and persists after battle cleanup. Original
|
|
Reveal/Decline controls use native allowed choices; no duplicate declaration
|
|
control or fact reconstruction is added. Four minimal profiles answer and
|
|
actually declare legally; strategy/calibration remain deferred.
|
|
|
|
## Evidence and remaining gates
|
|
|
|
Helpers: `tests/mixed-traitor-question.test.ts`,
|
|
`tests/traitor-decision-promises.test.ts`. Source/journeys:
|
|
`tests/fixture-truth-mixed-traitor.ts`, `tests/truth-mixed-traitor-runtime.test.ts`,
|
|
`tests/truth-mixed-traitor-harkonnen.test.ts`.
|
|
Controlled/shared answer/UI: `tests/truth-mixed-traitor-controls.test.tsx`.
|
|
Frozen v2 integration passes **18 files,149/149**, types/lint/build and eleven
|
|
original runtime paths with 29 GameTable SSR renders,11 actual answer callbacks
|
|
and one editor callback followed by native Ask. Basic26 prefixes add6 for actual
|
|
declaration/cleanup, edited true OR, false AND, No-to-Decline requiring Reveal,
|
|
call tautology and both unknown polarities; a real bribe3 adds7. Allied72 adds9
|
|
for actual Reveal, original Karama cancellation and retained receipt. Cunning77
|
|
adds8 for matching protection/safe return/Reveal or matching return/frozen fact/
|
|
Decline. Four minimal profiles actually answer and declare legally. Native tests
|
|
also exercise the original pre-Cunning76 prefix, real draw/return after Decline,
|
|
and fulfilled Reveal followed by a later matching return.
|
|
|
|
V1 quick checks pass, then the new controls file needs the established Vinext/
|
|
CSS test import shim. Loaded controls find a missing history location and an
|
|
assertion that omitted the native button arrow. Repairs also make a mixed
|
|
Decline's disabled-Reveal explanation reflect its accepted obligation. The two
|
|
failing cases pass narrowly, then the complete frozen v2 passes. Proof and
|
|
per-file manifest:
|
|
`/home/quintine/.local/share/dune/checkpoints/20261026-truth-mixed-traitor-proof-v2/`;
|
|
journeys/HTML: adjacent `20261026-truth-mixed-traitor-runtime/`.
|
|
This is local engine/SSR/actual-callback evidence, not DOM, hydration, browser,
|
|
mobile or deployed acceptance.
|
|
|
|
The adapters reuse original Basic26 and actual allied Harkonnen72/Cunning77
|
|
sources, deriving counts from inherited action arrays. Original setup/deal,
|
|
Traitor choices, paid invasions, alliances, plans and draw/return stay genuine.
|
|
No extra Truth, played hand/purse/clock/vote/promise is installed. The unmatched
|
|
case labels its conserved original-card exchange as controlled rather than a
|
|
historical acquisition claim. Two-Truth/prior-ledger histories are not invented.
|
|
|
|
Unrevealed future-leader questions, other action families, unknown-fact
|
|
correlations, broader owned preparations, optional/faction/card/cross-action
|
|
compositions and final rules/recovery/privacy/custody/browser/mobile/deployed
|
|
acceptance remain required. No complete mode is certified. No saved-game/
|
|
database/server/reset/restart/deployment operation is performed by this batch.
|