AdditionalContracts¶
Complete selected asymmetric reference profile. Definitions and supplied fixtures are distinct from the three teaching specializations; review and qualification are stated in the bound evidence and release.
Package reference-profile, input revision 2. Exact prepared source; CC0 1.0.
This is a definition inventory. Start with the learning chapters for the contract and its assumptions.
bHand · operator
reference-profile · input revision 2 · CC0 1.0
bHand==DamageBHand104(world.objects)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: DamageBHand104
fatal · operator
reference-profile · input revision 2 · CC0 1.0
fatal==packet.amount>Cardinality(bHand)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: bHand
ordinal · operator
reference-profile · input revision 2 · CC0 1.0
ordinal==1+Cardinality({old \in DOMAIN world.escalatingResourceContestHistory : world.escalatingResourceContestHistory[old].turnId=world.turn.id})Exact module download · Source bundle and reproduction instructions
e · operator
reference-profile · input revision 2 · CC0 1.0
e==world.lingering.effects[id]Exact module download · Source bundle and reproduction instructions
candidates · operator
reference-profile · input revision 2 · CC0 1.0
candidates==EscalatingResourceContestPoolIds108(world.objects,player) \cup fund \cup hostedExact module download · Source bundle and reproduction instructions
Resolved project definitions: fund, hosted, EscalatingResourceContestPoolIds108
fund · operator
reference-profile · input revision 2 · CC0 1.0
fund==IF player="SideB" /\ BidTraversalLive1014(world) THEN LiabilityMarkerFundIds106(world.objects) ELSE {}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: BidTraversalLive1014, LiabilityMarkerFundIds106
hosted · operator
reference-profile · input revision 2 · CC0 1.0
hosted==IF player="SideB" THEN
UNION {{id \in DOMAIN world.objects : world.objects[id].form="Counter" /\ world.objects[id].kind="ResourceUnit" /\ ~world.objects[id].virtual /\ world.objects[id].host=world.lingering.effects[e].value.host /\ world.objects[id].zone="Play"} :
e \in {e \in DOMAIN world.lingering.effects : BidHostedPermission1014(world,e,cardFacts)}} ELSE {}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: BidHostedPermission1014
r · operator
reference-profile · input revision 2 · CC0 1.0
r==world.bidValueRestrictions[id]Exact module download · Source bundle and reproduction instructions
sources · operator
reference-profile · input revision 2 · CC0 1.0
sources=={world.abilitySources[id].object : id \in EscalatingResourceContestRoleIds108(world,"BidForbidTwo","Specimen0102")}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: EscalatingResourceContestRoleIds108
e · operator
reference-profile · input revision 2 · CC0 1.0
e==world.lingering.effects[id]Exact module download · Source bundle and reproduction instructions
e · operator
reference-profile · input revision 2 · CC0 1.0
e==world.lingering.effects[effectId]Exact module download · Source bundle and reproduction instructions
host · operator
reference-profile · input revision 2 · CC0 1.0
host==e.value.hostExact module download · Source bundle and reproduction instructions
Resolved project definitions: e
e · operator
reference-profile · input revision 2 · CC0 1.0
e==context.actualEffects[operation]Exact module download · Source bundle and reproduction instructions
t · operator
reference-profile · input revision 2 · CC0 1.0
t==context.templates[operation]Exact module download · Source bundle and reproduction instructions
f · operator
reference-profile · input revision 2 · CC0 1.0
f==world.bidFrames[event.bidId]Exact module download · Source bundle and reproduction instructions
refs · operator
reference-profile · input revision 2 · CC0 1.0
refs==IF spec.mode="Chosen" THEN plan.targets ELSE {spec.particular}Exact module download · Source bundle and reproduction instructions
count · operator
reference-profile · input revision 2 · CC0 1.0
count==Cardinality(physical)+world.consideredProgress[begin.object]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: physical
fact · operator
reference-profile · input revision 2 · CC0 1.0
fact==DividendFacts1013!DividendPrintedFacts1013[begin.sourceCard]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: DividendFacts1013!DividendPrintedFacts1013
physical · operator
reference-profile · input revision 2 · CC0 1.0
physical==DividendPhysicalProgress1013(world,begin.object)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: DividendPhysicalProgress1013
e · operator
reference-profile · input revision 2 · CC0 1.0
e==context.actualEffects[id]Exact module download · Source bundle and reproduction instructions
indicated · operator
reference-profile · input revision 2 · CC0 1.0
indicated==IF spec.setRule="YourDeployedCards" THEN
{id \in DOMAIN world.objects : world.objects[id].form="Card" /\ world.objects[id].deployed /\ world.objects[id].zone="Play" /\ world.controllers[id]=spec.actor}
ELSE spec.compiledSetExact module download · Source bundle and reproduction instructions
plan · operator
reference-profile · input revision 2 · CC0 1.0
plan==AuxiliarySiteLimitPlan4(remaining,keep,effectiveLimit,objects)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: remaining, AuxiliarySiteLimitPlan4
remaining · operator
reference-profile · input revision 2 · CC0 1.0
remaining==Without101(targetSites,before.retiredRemotes)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: Without101
retired · operator
reference-profile · input revision 2 · CC0 1.0
retired==AuxiliarySiteTargetSiteIds4(remaining) \ keepExact module download · Source bundle and reproduction instructions
Resolved project definitions: remaining, AuxiliarySiteTargetSiteIds4
added · operator
reference-profile · input revision 2 · CC0 1.0
added==CheckpointNewUninstallDepartures103(objects,due)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: due, CheckpointNewUninstallDepartures103
due · operator
reference-profile · input revision 2 · CC0 1.0
due==CheckpointHostedTargets103(objects,departures,before.point,transits,paidProcedures)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CheckpointHostedTargets103
finished · operator
reference-profile · input revision 2 · CC0 1.0
finished=={p \in DOMAIN paidProcedures : paidProcedures[p].ability.lastFinished}Exact module download · Source bundle and reproduction instructions
historical · operator
reference-profile · input revision 2 · CC0 1.0
historical==UNION {departures[id].children : id \in {id \in DOMAIN departures :
IF kind="ProcedureCode76ca53ad9dd0" THEN departures[id].objectiveCompletionLeft ELSE departures[id].uninstalled \/ departures[id].hostRemoved}}Exact module download · Source bundle and reproduction instructions
choices · operator
reference-profile · input revision 2 · CC0 1.0
choices==AppropriateRetireSets103(eligible,LegalAfterRetire)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: AppropriateRetireSets103
points · operator
reference-profile · input revision 2 · CC0 1.0
points==[p \in SetupPlayers |-> ObjectiveAreaPoints4(objects,p,effectivePoints)]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ObjectiveAreaPoints4, SetupPlayers
winners · operator
reference-profile · input revision 2 · CC0 1.0
winners=={p \in SetupPlayers : points[p]>=7}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: points, SetupPlayers
LAMBDA · operator
reference-profile · input revision 2 · CC0 1.0
LAMBDA p : p \notin removeExact module download · Source bundle and reproduction instructions
pendingTargetSites · operator
reference-profile · input revision 2 · CC0 1.0
pendingTargetSites==CheckpointPendingBarrierTargetSites103(deploying)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CheckpointPendingBarrierTargetSites103
remove · operator
reference-profile · input revision 2 · CC0 1.0
remove=={p \in DOMAIN layout.slots : layout.slots[p].barrierCard=0 /\ p#currentSideBPosition /\ layout.slots[p].targetSite \notin pendingTargetSites}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: pendingTargetSites
cards · operator
reference-profile · input revision 2 · CC0 1.0
cards=={id \in selected : objects[id].card#"none"}Exact module download · Source bundle and reproduction instructions
fresh · operator
reference-profile · input revision 2 · CC0 1.0
fresh=={successors[id] : id \in cards}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: cards
o · operator
reference-profile · input revision 2 · CC0 1.0
o==objects[old]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: old
old · operator
reference-profile · input revision 2 · CC0 1.0
old==CHOOSE old \in cards : successors[old]=idExact module download · Source bundle and reproduction instructions
Resolved project definitions: cards
due · operator
reference-profile · input revision 2 · CC0 1.0
due=={id \in DOMAIN objects : objects[id].form="Counter" /\ objects[id].zone \in {"SideADiscard","SideBDiscard"}}Exact module download · Source bundle and reproduction instructions
arrivals · operator
reference-profile · input revision 2 · CC0 1.0
arrivals=={entries[id].object : id \in {id \in DOMAIN entries : entries[id].tag="RootEntry" /\ entries[id].siteInspectionId=siteInspection.id /\
entries[id].serial>previousBoundary /\ entries[id].serial<=currentBoundary /\ entries[id].targetSite=siteInspection.targetSite}}Exact module download · Source bundle and reproduction instructions
observed · operator
reference-profile · input revision 2 · CC0 1.0
observed==[capacity EXCEPT !.admittedRoots=(@ \cap InspectionRootCards7(siteInspection,objects)) \ arrivals,
!.pendingRoots=(@ \cup arrivals) \cap InspectionRootCards7(siteInspection,objects)]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: arrivals, InspectionRootCards7
rest · operator
reference-profile · input revision 2 · CC0 1.0
rest==SubSeq(before.owed,2,Len(before.owed))Exact module download · Source bundle and reproduction instructions
activeCards · operator
reference-profile · input revision 2 · CC0 1.0
activeCards==active \cap {id \in DOMAIN objects : objects[id].form="Card"}Exact module download · Source bundle and reproduction instructions
consoleGroups · operator
reference-profile · input revision 2 · CC0 1.0
consoleGroups=={{id \in consoles \cap DOMAIN objects : objects[id].deployed /\ controllers[id]=player} : player \in SetupPlayers}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: SetupPlayers
groups · operator
reference-profile · input revision 2 · CC0 1.0
groups=={group \in uniqueGroups \cup consoleGroups : Cardinality(group)>1}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: consoleGroups, uniqueGroups
mixed · operator
reference-profile · input revision 2 · CC0 1.0
mixed==\E name \in uniqueNames : \E id \in activeCards \ unique : names[id]=nameExact module download · Source bundle and reproduction instructions
Resolved project definitions: activeCards, uniqueNames
supported · operator
reference-profile · input revision 2 · CC0 1.0
supported==~mixed /\ \A group \in groups : CheckpointLatestExists103(group,activationOrder)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: groups, mixed, CheckpointLatestExists103
uniqueGroups · operator
reference-profile · input revision 2 · CC0 1.0
uniqueGroups=={{id \in unique \cap activeCards : names[id]=name} : name \in uniqueNames}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: activeCards, uniqueNames
uniqueNames · operator
reference-profile · input revision 2 · CC0 1.0
uniqueNames=={names[id] : id \in unique \cap activeCards}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: activeCards
plan · operator
reference-profile · input revision 2 · CC0 1.0
plan==CheckpointUniquePlan103(objects,names,unique,active,consoles,controllers,activationOrder)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CheckpointUniquePlan103
result · operator
reference-profile · input revision 2 · CC0 1.0
result==CheckpointObjectiveOutcome103(objects,effectivePoints)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CheckpointObjectiveOutcome103
count · operator
reference-profile · input revision 2 · CC0 1.0
count==Cardinality(decision.aHand)Exact module download · Source bundle and reproduction instructions
total · operator
reference-profile · input revision 2 · CC0 1.0
total==SabotageTotal1012(world,packet.amount)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: SabotageTotal1012
plan · operator
reference-profile · input revision 2 · CC0 1.0
plan==ConversionExitPlan101(c,printed,sourceObjects[oldObject].zone,destination,movement)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ConversionExitPlan101
choices · operator
reference-profile · input revision 2 · CC0 1.0
choices==PublicChoiceFacts102(actualOpenRememberedChoices,snapshot)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: PublicChoiceFacts102
keys · operator
reference-profile · input revision 2 · CC0 1.0
keys=={<<"CardProfile",id>> : id \in {i \in DOMAIN objects : objects[i].form="Card"}} \cup
{<<"ZoneCount",z>> : z \in {"SideAHand","SideADeck","SideBHand","SideBDeck"}} \cup
{<<"ResourceUnitPool",p>> : p \in SetupPlayers} \cup
{<<"Choice",id>> : id \in DOMAIN actualOpenRememberedChoices}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: SetupPlayers
e · operator
reference-profile · input revision 2 · CC0 1.0
e==context.actualEffects[id]Exact module download · Source bundle and reproduction instructions
link · operator
reference-profile · input revision 2 · CC0 1.0
link==world.loadLinks[key]Exact module download · Source bundle and reproduction instructions
candidates · operator
reference-profile · input revision 2 · CC0 1.0
candidates==IF spec.mode="Chosen" THEN admission.announced \cap ChargeSet1010(world,spec) ELSE {spec.particular}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ChargeSet1010
initial · operator
reference-profile · input revision 2 · CC0 1.0
initial==IF spec.mode="Particular" THEN {id \in legal : admission.initialPower[id]} ELSE legalExact module download · Source bundle and reproduction instructions
Resolved project definitions: legal
legal · operator
reference-profile · input revision 2 · CC0 1.0
legal=={id \in candidates : id \in DOMAIN admission.physical /\ id \in DOMAIN world.objects /\ world.objects[id].card=admission.physical[id] /\ ChargePower1010(world.objects,id)}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: candidates, ChargePower1010
d · operator
reference-profile · input revision 2 · CC0 1.0
d==declarations[id]Exact module download · Source bundle and reproduction instructions
d · operator
reference-profile · input revision 2 · CC0 1.0
d==declarations[id]Exact module download · Source bundle and reproduction instructions
virtual · operator
reference-profile · input revision 2 · CC0 1.0
virtual==LiabilityMarkerIds106(world.objects) \ MovableLiabilityMarkerIds106(world.objects)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: LiabilityMarkerIds106, MovableLiabilityMarkerIds106
d · operator
reference-profile · input revision 2 · CC0 1.0
d==declarations[id]Exact module download · Source bundle and reproduction instructions
definition · operator
reference-profile · input revision 2 · CC0 1.0
definition==LinkDefinition107(world,object)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: object, LinkDefinition107
eligible · operator
reference-profile · input revision 2 · CC0 1.0
eligible==EligiblePrintedLinkSources107(world)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: EligiblePrintedLinkSources107
object · operator
reference-profile · input revision 2 · CC0 1.0
object==world.objects[source]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: source
printed · operator
reference-profile · input revision 2 · CC0 1.0
printed=={id \in DOMAIN declarations : declarations[id].origin="PrintedLink"}Exact module download · Source bundle and reproduction instructions
source · operator
reference-profile · input revision 2 · CC0 1.0
source==d.projection.source.objectExact module download · Source bundle and reproduction instructions
Resolved project definitions: d
keys · operator
reference-profile · input revision 2 · CC0 1.0
keys=={key \in DOMAIN before.persistent : before.persistent[key].phase="Persisting" /\ before.persistent[key].traversalId=afterEnd.traversal.id}Exact module download · Source bundle and reproduction instructions
first · operator
reference-profile · input revision 2 · CC0 1.0
first==DamageOwnerMoveMap104(objects,sideB,[id \in sideB |-> successors[id]],"SideB")Exact module download · Source bundle and reproduction instructions
Resolved project definitions: sideB, DamageOwnerMoveMap104
sideA · operator
reference-profile · input revision 2 · CC0 1.0
sideA==selected \ sideBExact module download · Source bundle and reproduction instructions
Resolved project definitions: sideB
sideB · operator
reference-profile · input revision 2 · CC0 1.0
sideB=={id \in selected : owners[objects[id].card]="SideB"}Exact module download · Source bundle and reproduction instructions
sideBFresh · operator
reference-profile · input revision 2 · CC0 1.0
sideBFresh=={successors[id] : id \in sideB}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: sideB
amount · operator
reference-profile · input revision 2 · CC0 1.0
amount==IF packet.damageType="PersistentCapacityHarm" THEN packet.amount ELSE 0Exact module download · Source bundle and reproduction instructions
fresh · operator
reference-profile · input revision 2 · CC0 1.0
fresh=={successors[id] : id \in selected}Exact module download · Source bundle and reproduction instructions
effect · operator
reference-profile · input revision 2 · CC0 1.0
effect==context.actualEffects[id]Exact module download · Source bundle and reproduction instructions
result · operator
reference-profile · input revision 2 · CC0 1.0
result==IF before.strengths["SideA"].value>before.strengths["SideB"].value THEN "Successful" ELSE "Unsuccessful"Exact module download · Source bundle and reproduction instructions
binding · operator
reference-profile · input revision 2 · CC0 1.0
binding==world.dividendBindings[event.scored.objectiveCompletionId]Exact module download · Source bundle and reproduction instructions
capture · operator
reference-profile · input revision 2 · CC0 1.0
capture==world.dividendCaptures[event.scored.objectiveCompletionId]Exact module download · Source bundle and reproduction instructions
scope · operator
reference-profile · input revision 2 · CC0 1.0
scope==CASE before.phase="BaseCostCheckpoint" -> "BaseCost" [] before.phase="AdditionalCostCheckpoint" -> "AdditionalCost" [] OTHER -> "Effect"Exact module download · Source bundle and reproduction instructions
p · operator
reference-profile · input revision 2 · CC0 1.0
p==world.escalatingResourceContestLinkPolicies[id]Exact module download · Source bundle and reproduction instructions
p · operator
reference-profile · input revision 2 · CC0 1.0
p==world.escalatingResourceContestOrderPolicies[id]Exact module download · Source bundle and reproduction instructions
a · operator
reference-profile · input revision 2 · CC0 1.0
a==effect.associations[clause]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: effect
effect · operator
reference-profile · input revision 2 · CC0 1.0
effect==context.actualEffects[id]Exact module download · Source bundle and reproduction instructions
player · operator
reference-profile · input revision 2 · CC0 1.0
player==before.pendingPlayerExact module download · Source bundle and reproduction instructions
value · operator
reference-profile · input revision 2 · CC0 1.0
value==IF player="SideA" THEN before.packet.base+before.boosts[player].amount ELSE contextualLink+before.boosts[player].amountExact module download · Source bundle and reproduction instructions
Resolved project definitions: player
created · operator
reference-profile · input revision 2 · CC0 1.0
created==IF e.kind="RemoveCounters" THEN {} ELSE first..(first+e.value-1)Exact module download · Source bundle and reproduction instructions
e · operator
reference-profile · input revision 2 · CC0 1.0
e==context.actualEffects[id]Exact module download · Source bundle and reproduction instructions
first · operator
reference-profile · input revision 2 · CC0 1.0
first==world.nextCounterObjectExact module download · Source bundle and reproduction instructions
history · operator
reference-profile · input revision 2 · CC0 1.0
history==[tag |-> "CompletedLoad",host |-> e.target,kind |-> e.counterKind,loadDefinition |-> e.loadDefinition,
reference |-> reference,sourceCard |-> e.sourceCard,sourceSHA |-> e.sourceSHA,amount |-> e.value,createdCounterIds |-> created,snapshotId |-> world.id]Exact module download · Source bundle and reproduction instructions
stage · operator
reference-profile · input revision 2 · CC0 1.0
stage==IF before.guess="NoValue" THEN "Selection" ELSE "Guess"Exact module download · Source bundle and reproduction instructions
e · operator
reference-profile · input revision 2 · CC0 1.0
e==world.history[id]Exact module download · Source bundle and reproduction instructions
blueprint · operator
reference-profile · input revision 2 · CC0 1.0
blueprint==MarkBlueprint1011(context.currentRef.source,IF origin.plan.origin="Rule" THEN "Rule" ELSE origin.parent.kind,targetSite,cutoff,before.turn.id)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: cutoff, targetSite, MarkBlueprint1011
cutoff · operator
reference-profile · input revision 2 · CC0 1.0
cutoff==before.eventSerial+1Exact module download · Source bundle and reproduction instructions
event · operator
reference-profile · input revision 2 · CC0 1.0
event==[id |-> eventId,kind |-> "MarkDesignated",serial |-> cutoff,turn |-> before.turn.id,targetSite |-> targetSite,effectId |-> effectId,reference |-> context.currentRef,source |-> context.currentRef.source]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: cutoff, targetSite
targetSite · operator
reference-profile · input revision 2 · CC0 1.0
targetSite==draw.targetSiteExact module download · Source bundle and reproduction instructions
objects · operator
reference-profile · input revision 2 · CC0 1.0
objects==UNION choicesExact module download · Source bundle and reproduction instructions
players · operator
reference-profile · input revision 2 · CC0 1.0
players=={controllers[id] : id \in objects}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: objects
cards · operator
reference-profile · input revision 2 · CC0 1.0
cards=={id \in selected : objects[id].card#"none"}Exact module download · Source bundle and reproduction instructions
actual · operator
reference-profile · input revision 2 · CC0 1.0
actual==IF kept THEN context.actualEffects[id] ELSE originalExact module download · Source bundle and reproduction instructions
kept · operator
reference-profile · input revision 2 · CC0 1.0
kept==id \in DOMAIN context.actualEffectsExact module download · Source bundle and reproduction instructions
original · operator
reference-profile · input revision 2 · CC0 1.0
original==context.templates[id]Exact module download · Source bundle and reproduction instructions
definition · operator
reference-profile · input revision 2 · CC0 1.0
definition==LinkDefinition107(world,object)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: object, LinkDefinition107
object · operator
reference-profile · input revision 2 · CC0 1.0
object==world.objects[world.sideBProfile]Exact module download · Source bundle and reproduction instructions
properties · operator
reference-profile · input revision 2 · CC0 1.0
properties==SideBCharacteristics8(object,world.properties[world.sideBProfile])Exact module download · Source bundle and reproduction instructions
Resolved project definitions: object, SideBCharacteristics8
h · operator
reference-profile · input revision 2 · CC0 1.0
h==world.loadHistory[id]Exact module download · Source bundle and reproduction instructions
kind · operator
reference-profile · input revision 2 · CC0 1.0
kind==CASE rule.role="FirstSuccess" -> "TraversalSuccessful" [] rule.role="FirstTraversalEnd" -> "TraversalEnded" [] OTHER -> "EncounterBarrier"Exact module download · Source bundle and reproduction instructions
mark · operator
reference-profile · input revision 2 · CC0 1.0
mark==row.markExact module download · Source bundle and reproduction instructions
Resolved project definitions: row
matches · operator
reference-profile · input revision 2 · CC0 1.0
matches==HistoricalMark1011(world,mark) /\ event.kind=kind /\ event.actor="SideB" /\
IF rule.role="EncounterDuringMarkTraversal" THEN event.id \in MarkRelatedEvents1011(world,mark,"EncounterBarrier")
ELSE FirstMarkEvent1011(world,mark,kind,event.id)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: kind, mark, FirstMarkEvent1011, HistoricalMark1011, MarkRelatedEvents1011
row · operator
reference-profile · input revision 2 · CC0 1.0
row==world.history[event.id]Exact module download · Source bundle and reproduction instructions
e · operator
reference-profile · input revision 2 · CC0 1.0
e==context.actualEffects[operation]Exact module download · Source bundle and reproduction instructions
id · operator
reference-profile · input revision 2 · CC0 1.0
id==CHOOSE id \in ids : TRUEExact module download · Source bundle and reproduction instructions
Resolved project definitions: ids
ids · operator
reference-profile · input revision 2 · CC0 1.0
ids==LiveMarkIds1011(world.lingering,a.current)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: LiveMarkIds1011
value · operator
reference-profile · input revision 2 · CC0 1.0
value==world.lingering.effects[id].valueExact module download · Source bundle and reproduction instructions
Resolved project definitions: id
e · operator
reference-profile · input revision 2 · CC0 1.0
e==registry.effects[id]Exact module download · Source bundle and reproduction instructions
e · operator
reference-profile · input revision 2 · CC0 1.0
e==world.history[id]Exact module download · Source bundle and reproduction instructions
mark · operator
reference-profile · input revision 2 · CC0 1.0
mark==row.markExact module download · Source bundle and reproduction instructions
Resolved project definitions: row
row · operator
reference-profile · input revision 2 · CC0 1.0
row==world.history[event.id]Exact module download · Source bundle and reproduction instructions
siteInspections · operator
reference-profile · input revision 2 · CC0 1.0
siteInspections=={id \in MarkRelatedEvents1011(world,mark,"Inspection") : world.history[id].traversalId=row.traversalId /\ world.history[id].serial<=row.serial}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: mark, row, MarkRelatedEvents1011
e · operator
reference-profile · input revision 2 · CC0 1.0
e==registry.effects[id]Exact module download · Source bundle and reproduction instructions
local · operator
reference-profile · input revision 2 · CC0 1.0
local==[afterRegistry EXCEPT !.frontier=beforeRegistry.frontier]Exact module download · Source bundle and reproduction instructions
canonicalOpening · operator
reference-profile · input revision 2 · CC0 1.0
canonicalOpening==[opening EXCEPT !.completion=opening.completion]Exact module download · Source bundle and reproduction instructions
pending · operator
reference-profile · input revision 2 · CC0 1.0
pending=={id \in DOMAIN before.recognized : ledger.instances[id].status="Pending"}Exact module download · Source bundle and reproduction instructions
raw · operator
reference-profile · input revision 2 · CC0 1.0
raw==Append(beforeStack,NewPriorityWindow9(opening.windowId,"Reaction",PriorityOpeningSite9(beforeStack,site),
before.recognized,opening.group,opening.beginning,opening.instruction,opening.effectRevision))Exact module download · Source bundle and reproduction instructions
Resolved project definitions: NewPriorityWindow9, PriorityOpeningSite9
fund · operator
reference-profile · input revision 2 · CC0 1.0
fund==IF player="SideB" /\ EscalatingResourceContestDuringTraversal108(world) THEN LiabilityMarkerFundIds106(world.objects) ELSE {}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: EscalatingResourceContestDuringTraversal108, LiabilityMarkerFundIds106
hosted · operator
reference-profile · input revision 2 · CC0 1.0
hosted==UNION {permissions[id].counters : id \in DOMAIN permissions}Exact module download · Source bundle and reproduction instructions
action · operator
reference-profile · input revision 2 · CC0 1.0
action==NewAction5(before.id,before.player,ExposureMarkerActionKey105(before.kind))Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ExposureMarkerActionKey105, NewAction5
newEvents · operator
reference-profile · input revision 2 · CC0 1.0
newEvents==[cost \in DOMAIN assignments |-> MovementEvent8(eventIds[cost],"Retire",assignments[cost])]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: MovementEvent8
selected · operator
reference-profile · input revision 2 · CC0 1.0
selected==UNION {assignments[id] : id \in DOMAIN assignments}Exact module download · Source bundle and reproduction instructions
costs · operator
reference-profile · input revision 2 · CC0 1.0
costs==IF before.kind="RetireResource" /\ ~removed /\ before.target \in ResourceTargetIds105(world) /\ before.target \notin world.currentRetireProhibitions THEN world.additionalResourceCosts ELSE [key \in {} |-> key]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: removed, ResourceTargetIds105
removed · operator
reference-profile · input revision 2 · CC0 1.0
removed==id \notin DOMAIN context.actualEffectsExact module download · Source bundle and reproduction instructions
unit · operator
reference-profile · input revision 2 · CC0 1.0
unit==CHOOSE unit \in DOMAIN allocation : allocation[unit]=idExact module download · Source bundle and reproduction instructions
plan · operator
reference-profile · input revision 2 · CC0 1.0
plan==PurgeClusterPlan101(objects)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: PurgeClusterPlan101
targets · operator
reference-profile · input revision 2 · CC0 1.0
targets==PurgeClusterIds101(objects)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: PurgeClusterIds101
card · operator
reference-profile · input revision 2 · CC0 1.0
card==world.definitions[world.objects[objective].card]Exact module download · Source bundle and reproduction instructions
sources · operator
reference-profile · input revision 2 · CC0 1.0
sources=={id \in DOMAIN world.objects : world.objects[id].form="Card" /\ world.objects[id].kind="Attachment" /\ world.objects[id].deployed /\ world.objects[id].zone="Play" /\ world.objects[id].activated /\ world.objects[id].face="Up" /\
world.definitions[world.objects[id].card]="Specimen0208" /\ world.objects[id].area="Root" /\ world.objects[id].targetSite=world.objects[objective].targetSite /\ world.objects[objective].deployed /\ world.objects[objective].area="Root"}Exact module download · Source bundle and reproduction instructions
moved · operator
reference-profile · input revision 2 · CC0 1.0
moved=={frame.successors[id] : id \in DOMAIN frame.successors}Exact module download · Source bundle and reproduction instructions
advanced · operator
reference-profile · input revision 2 · CC0 1.0
advanced==[after EXCEPT !.recognition=before.recognition,!.recognized=before.recognized]Exact module download · Source bundle and reproduction instructions
current · operator
reference-profile · input revision 2 · CC0 1.0
current=={IF id \in DOMAIN hostedSuccessors THEN hostedSuccessors[id] ELSE id : id \in hosted}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: hosted
hosted · operator
reference-profile · input revision 2 · CC0 1.0
hosted=={id \in DOMAIN beforeObjects : beforeObjects[id].host=source}Exact module download · Source bundle and reproduction instructions
objectiveCompletionLeft · operator
reference-profile · input revision 2 · CC0 1.0
objectiveCompletionLeft==beforeObjects[source].form="Card" /\ beforeObjects[source].kind="Objective" /\
beforeObjects[source].zone \in SetupObjectiveZones /\ afterObjects[sourceAfter].zone \notin SetupObjectiveZonesExact module download · Source bundle and reproduction instructions
Resolved project definitions: SetupObjectiveZones
uninstalled · operator
reference-profile · input revision 2 · CC0 1.0
uninstalled==beforeObjects[source].form="Card" /\ beforeObjects[source].deployed /\ ~afterObjects[sourceAfter].deployedExact module download · Source bundle and reproduction instructions
w · operator
reference-profile · input revision 2 · CC0 1.0
w==WindowTop9(beforeStack)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: WindowTop9
targets · operator
reference-profile · input revision 2 · CC0 1.0
targets==CurrentChargeTargets1010(world,admission,spec)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CurrentChargeTargets1010
cardsAfter · operator
reference-profile · input revision 2 · CC0 1.0
cardsAfter==DamageOwnerMoveMap104(
DamageOwnerMoveMap104(objects,{id \in before.selected : owners[objects[id].card]="SideB"},
[id \in {i \in before.selected : owners[objects[i].card]="SideB"} |-> successors[id]],"SideB"),
{id \in before.selected : owners[objects[id].card]="SideA"},
[id \in {i \in before.selected : owners[objects[i].card]="SideA"} |-> successors[id]],"SideA")Exact module download · Source bundle and reproduction instructions
Resolved project definitions: DamageOwnerMoveMap104
damageEvent · operator
reference-profile · input revision 2 · CC0 1.0
damageEvent==DamageSufferedEvent104(before,batchId,successors)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: DamageSufferedEvent104
fresh · operator
reference-profile · input revision 2 · CC0 1.0
fresh=={successors[id] : id \in before.selected}Exact module download · Source bundle and reproduction instructions
movementEvents · operator
reference-profile · input revision 2 · CC0 1.0
movementEvents=={MovementEvent8(batchId,"Retire",before.selected)}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: MovementEvent8
blocked · operator
reference-profile · input revision 2 · CC0 1.0
blocked==IF before.kind="RetireResource" THEN world.currentRetireProhibitions ELSE world.currentExposureMarkerRemovalProhibitionsExact module download · Source bundle and reproduction instructions
cards · operator
reference-profile · input revision 2 · CC0 1.0
cards=={id \in due : world.objects[id].card#"none"}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: due
due · operator
reference-profile · input revision 2 · CC0 1.0
due==IF before.effective.mode="Kept" /\ before.target \in ExposureMarkerActionTargets105(before,world) /\ before.target \notin blocked THEN {before.target} ELSE {}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: blocked, ExposureMarkerActionTargets105
event · operator
reference-profile · input revision 2 · CC0 1.0
event==SabotageRetireEvent1012(eventId,before,world,afterId,successors)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: SabotageRetireEvent1012
selected · operator
reference-profile · input revision 2 · CC0 1.0
selected==SabotageSelected1012(before,world)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: SabotageSelected1012
c · operator
reference-profile · input revision 2 · CC0 1.0
c==frame.effectCosts[id]Exact module download · Source bundle and reproduction instructions
observed · operator
reference-profile · input revision 2 · CC0 1.0
observed=={costs[id].source.object : id \in {id \in DOMAIN costs : costs[id].source.object \in DOMAIN world.objects /\
world.objects[costs[id].source.object].card \in {"Specimen0212","Specimen0136"}}}Exact module download · Source bundle and reproduction instructions
required · operator
reference-profile · input revision 2 · CC0 1.0
required==ResourceKnownCostSources105(world,target,cardFacts)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ResourceKnownCostSources105
due · operator
reference-profile · input revision 2 · CC0 1.0
due=={id \in DOMAIN objects \cap DOMAIN conversions : objects[id].zone \in {"SideADiscard","SideBDiscard"} /\ objects[id].card#"none"}Exact module download · Source bundle and reproduction instructions
e · operator
reference-profile · input revision 2 · CC0 1.0
e==context.actualEffects[operation]Exact module download · Source bundle and reproduction instructions
matched · operator
reference-profile · input revision 2 · CC0 1.0
matched==event.actor=rule.role.actor /\ (IF rule.role.scope="CentralABatch" THEN event.unit=0 /\ event.batch.fromCentralA#{} ELSE event.unit \in event.batch.objects)Exact module download · Source bundle and reproduction instructions
index · operator
reference-profile · input revision 2 · CC0 1.0
index==Len(before.selectionOrder)+1Exact module download · Source bundle and reproduction instructions
selected · operator
reference-profile · input revision 2 · CC0 1.0
selected==before.selected \cup {card}Exact module download · Source bundle and reproduction instructions
slot · operator
reference-profile · input revision 2 · CC0 1.0
slot==before.policy.slots[index]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: index
selections · operator
reference-profile · input revision 2 · CC0 1.0
selections==ReplacementOverlay99(before.selections,[p \in {player} |-> amount])Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99
effect · operator
reference-profile · input revision 2 · CC0 1.0
effect==context.actualEffects[id]Exact module download · Source bundle and reproduction instructions
applicable · operator
reference-profile · input revision 2 · CC0 1.0
applicable == newlyActive \in DOMAIN objects /\ newlyActive \in DOMAIN names /\
newlyActive \in unique /\ newlyActive \notin beforeActive /\ newlyActive \in afterActiveExact module download · Source bundle and reproduction instructions
cohort · operator
reference-profile · input revision 2 · CC0 1.0
cohort == IF newlyActive \in DOMAIN names
THEN {i \in ((afterActive \ beforeActive) \cap DOMAIN objects \cap DOMAIN names) : names[i]=names[newlyActive]}
ELSE {}Exact module download · Source bundle and reproduction instructions
disposition · operator
reference-profile · input revision 2 · CC0 1.0
disposition == IF ~applicable THEN "NotApplicable"
ELSE IF cohort={newlyActive} THEN "Supported" ELSE "UnsupportedSimultaneousActivation"Exact module download · Source bundle and reproduction instructions
Resolved project definitions: applicable, cohort
AnnounceChargeTargets1010 · operator
reference-profile · input revision 2 · CC0 1.0
AnnounceChargeTargets1010(before,after,ability,world,cardFacts,spec,targets,receipt) ==
/\ ChargeSpec1010(world,InstructionWindowRef93(before),cardFacts,spec) /\ spec.mode="Chosen" /\ before.requiresTargets
/\ targets \subseteq ChargeEligible1010(world,spec) /\ Cardinality(targets)=MinOf(spec.requested,Cardinality(ChargeEligible1010(world,spec)))
/\ receipt=ChargeTargetReceipt1010(before,targets)
/\ AnnounceInstructionTargets93(before,after,receipt,ability,"NoValue")Exact module download · Source bundle and reproduction instructions
Resolved project definitions: AnnounceInstructionTargets93, InstructionWindowRef93, ChargeEligible1010, ChargeSpec1010, ChargeTargetReceipt1010, MinOf
AnnounceExposureMarkerTarget105 · operator
reference-profile · input revision 2 · CC0 1.0
AnnounceExposureMarkerTarget105(before,after,world,target,instructionId) ==
/\ before.phase="Targets" /\ before.action.status="Effects" /\ world.outcome="Playing" /\ instructionId \in Nat \ {0}
/\ IF ExposureMarkerActionTargets105(before,world)={} THEN target=0 ELSE target \in ExposureMarkerActionTargets105(before,world)
/\ after=[before EXCEPT !.phase="Targeted",!.target=target,!.instruction=instructionId]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ExposureMarkerActionTargets105
ApplyDividendPlacement1013 · operator
reference-profile · input revision 2 · CC0 1.0
ApplyDividendPlacement1013(before,after,context,world,next,selected,added,eventId,event) ==
/\ world.outcome="Playing" /\ DividendPlanBound1013(world,before) /\ ~before.complete /\ before.cursor \in 1..before.basis.repetitions /\ DividendTargetStatus1013(world,before)="SupportedPlacementTarget"
/\ context.id=before.instance /\ context.phase="Resolving" /\ context.currentWorld=world.id /\ context.currentRef=before.reference
/\ DividendApplicationSupport1013(before,context)="SupportedOrdinaryPlacementApplications"
/\ context.actualEffects[before.cursor].value=before.basis.multiplier
/\ ExecuteBankHostedCounterInstruction109(context,before.reference,world,before.cursor,world.cardFacts,next.objects,next.loadHistory,next.completedCounterInstructions,selected,added,next.nextCounterObject,eventId,event)
/\ next.id \in (Nat \ {0}) \ world.usedWorlds
/\ next=[world EXCEPT !.id=next.id,!.objects=next.objects,!.loadHistory=next.loadHistory,!.completedCounterInstructions=next.completedCounterInstructions,!.nextCounterObject=next.nextCounterObject,
!.usedObjects=@ \cup DOMAIN added,!.usedWorlds=@ \cup {next.id},!.counterEventIds=@ \cup {eventId},!.dividendPlacementEvents=ReplacementOverlay99(@,[id \in {eventId} |-> event])]
/\ after=[before EXCEPT !.cursor=@+1,!.applied=@ \cup {before.cursor},!.totalPlaced=@+before.basis.multiplier]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, DividendApplicationSupport1013, DividendPlanBound1013, DividendTargetStatus1013, ExecuteBankHostedCounterInstruction109
AppropriateRetireSets103 · operator
reference-profile · input revision 2 · CC0 1.0
AppropriateRetireSets103(eligible,LegalAfterRetire(_)) ==
{selected \in SUBSET eligible : LegalAfterRetire(selected) /\ \A smaller \in SUBSET selected : smaller#selected => ~LegalAfterRetire(smaller)}Exact module download · Source bundle and reproduction instructions
BaseSideBPoolIds106 · operator
reference-profile · input revision 2 · CC0 1.0
BaseSideBPoolIds106(objects) ==
{id \in DOMAIN objects : objects[id].form="Counter" /\ objects[id].kind="ResourceUnit" /\ objects[id].host=0 /\
(objects[id].zone="SideBResourceUnits" \/ (objects[id].zone="Play" /\ objects[id].resourceUnitLocation="SideBPool"))}Exact module download · Source bundle and reproduction instructions
BeginBid1014 · operator
reference-profile · input revision 2 · CC0 1.0
BeginBid1014(context,reference,world,operation,cardFacts,id,packet,frame,frames,usedFrames) ==
/\ BidPacket1014(context,reference,world,operation,cardFacts,packet) /\ BidWalletFresh1014(world)
/\ id \in (Nat \ {0}) \ (DOMAIN world.bidFrames \cup world.usedBidFrames)
/\ ~\E previous \in DOMAIN world.bidFrames : world.bidFrames[previous].packet.key=packet.key
/\ usedFrames=world.usedBidFrames \cup {id}
/\ frame=BidInitial1014(id,packet,world) /\ frames=ReplacementOverlay99(world.bidFrames,[key \in {id} |-> frame])Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, BidInitial1014, BidPacket1014, BidWalletFresh1014
BeginCheckpointSite103 · operator
reference-profile · input revision 2 · CC0 1.0
BeginCheckpointSite103(beforeSites,afterSites,beforeFrames,afterFrames,frame,id,site,event,insideStructures) ==
/\ CheckpointSiteKey103(site) \notin beforeSites
/\ \A old \in DOMAIN beforeFrames : beforeFrames[old].phase \notin {"Steps","Completed"}
/\ OpenCheckpointAtSite103(frame,id,site,event,insideStructures,DOMAIN beforeFrames)
/\ afterSites=beforeSites \cup {CheckpointSiteKey103(site)}
/\ afterFrames=[key \in DOMAIN beforeFrames \cup {id} |-> IF key=id THEN frame ELSE beforeFrames[key]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CheckpointSiteKey103, OpenCheckpointAtSite103
BeginDamage104 · operator
reference-profile · input revision 2 · CC0 1.0
BeginDamage104(context,reference,world,id,cardFacts,packet,frame,usedPackets,afterOutcome,actualOtherWinners) ==
/\ DamagePacketFromExpected104(context,reference,world,id,cardFacts,packet) /\ packet.key \notin usedPackets
/\ actualOtherWinners \subseteq SetupPlayers
/\ LET bHand==DamageBHand104(world.objects)
fatal==packet.amount>Cardinality(bHand)
IN /\ (~fatal => actualOtherWinners={})
/\ afterOutcome=IF fatal THEN (IF "SideB" \in actualOtherWinners THEN "Draw" ELSE "SideA") ELSE "Playing"
/\ frame=[packet |-> packet,beforeObjects |-> world.objects,bHand |-> bHand,selected |-> {},selectionOrder |-> <<>>,
selections |-> <<>>,policy |-> [id |-> 0],phase |-> IF fatal THEN "EliminatedByHarm" ELSE "Selecting",
outcome |-> afterOutcome,completion |-> [batchId |-> 0],finalObjects |-> [emptyId \in {} |-> emptyId]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: bHand, fatal, DamagePacketFromExpected104, SetupPlayers
BeginEscalatingResourceContest108 · operator
reference-profile · input revision 2 · CC0 1.0
BeginEscalatingResourceContest108(context,reference,world,id,cardFacts,escalatingResourceContestId,eventId,packet,frame,afterFrames,afterHistory,event) ==
/\ EscalatingResourceContestPacket108(context,reference,world,id,cardFacts,packet)
/\ escalatingResourceContestId \in (Nat \ {0}) \ (DOMAIN world.escalatingResourceContestFrames \cup DOMAIN world.escalatingResourceContestHistory)
/\ \A old \in DOMAIN world.escalatingResourceContestHistory : world.escalatingResourceContestHistory[old].key#packet.key
/\ eventId \in (Nat \ {0}) \ world.eventIds
/\ LET ordinal==1+Cardinality({old \in DOMAIN world.escalatingResourceContestHistory : world.escalatingResourceContestHistory[old].turnId=world.turn.id}) IN
/\ frame=EscalatingResourceContestInitialFrame108(escalatingResourceContestId,packet,world.turn.id,ordinal)
/\ afterFrames=ReplacementOverlay99(world.escalatingResourceContestFrames,[i \in {escalatingResourceContestId} |-> frame])
/\ afterHistory=ReplacementOverlay99(world.escalatingResourceContestHistory,[i \in {escalatingResourceContestId} |-> [key |-> packet.key,turnId |-> world.turn.id,ordinal |-> ordinal]])
/\ event=[id |-> eventId,kind |-> "EscalatingResourceContestInitiated",escalatingResourceContestId |-> escalatingResourceContestId,actor |-> "SideA",source |-> packet.source,reference |-> reference,snapshotId |-> world.id]
/\ InstructionPausePoint911([id |-> reference.abilityInstance],reference,context,"EscalatingResourceContest",frame,"ProcedureCoded1e36ce96789",id)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InstructionPausePoint911, ReplacementOverlay99, ordinal, EscalatingResourceContestInitialFrame108, EscalatingResourceContestPacket108
BeginExampleFamily009Damage104 · operator
reference-profile · input revision 2 · CC0 1.0
BeginExampleFamily009Damage104(before,after,objects,authority,compiled,cardFacts,actualDamageHistory) ==
/\ BeginSequentialDamage104(before,after,objects,authority,compiled,cardFacts)
/\ ExampleFamily009SelectionShape104(before.packet,authority,actualDamageHistory)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: BeginSequentialDamage104, ExampleFamily009SelectionShape104
BeginSequentialDamage104 · operator
reference-profile · input revision 2 · CC0 1.0
BeginSequentialDamage104(before,after,objects,authority,compiled,cardFacts) ==
/\ before.phase="Selecting" /\ before.outcome="Playing" /\ objects=before.beforeObjects /\ before.selected={}
/\ authority.id \in DOMAIN compiled /\ compiled[authority.id]=authority /\ authority.tag="SourceBoundDamageSelectionOverride"
/\ authority.packet=before.packet.key /\ authority.reference=before.packet.reference /\ authority.snapshotId=before.packet.snapshotId
/\ authority.source.kind="Object" /\ authority.source.object \in DOMAIN objects
/\ authority.card \in DOMAIN cardFacts /\ authority.sourceSHA=cardFacts[authority.card].sourceSHA
/\ authority.sourceObject=objects[authority.source.object]
/\ authority.sourceObject.card=authority.card
/\ Len(authority.slots)=before.packet.amount
/\ \A i \in 1..Len(authority.slots) : authority.slots[i].mode \in {"Random","Choose"} /\ authority.slots[i].actor \in SetupPlayers
/\ (authority.slots[i].mode="Random" => authority.slots[i].actor=before.packet.responsible)
/\ after=[before EXCEPT !.policy=authority,!.phase="SelectingSequentially"]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: SetupPlayers
BidCheckpointReady1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidCheckpointReady1014(frame,world,checkpoint,ledger) ==
/\ world.outcome="Playing" /\ world.bidOwners[frame.id]=frame.caller
/\ frame.phase="PaidCheckpointDue" /\ frame.paid /\ frame.id \in DOMAIN world.bidFrames /\ world.bidFrames[frame.id]=frame
/\ checkpoint.id \in DOMAIN world.checkpoints /\ world.checkpoints[checkpoint.id]=checkpoint /\ checkpoint.site=BidCheckpointSite1014(frame)
/\ checkpoint.caller=BidCheckpointSite1014(frame) /\ checkpoint.returned /\ CheckpointDrained103(checkpoint,ledger,<<>>) /\ world.conditionalLedger=ledger
/\ \A p \in frame.packet.participants :
/\ frame.transactions[p] \in DOMAIN world.bidCosts /\ world.bidCosts[frame.transactions[p]]=BidCompletedCost1014(frame.costs[p],frame.plans[p])
/\ {e \in DOMAIN world.bidEvents : world.bidEvents[e].bidId=frame.id}#{}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: BidCheckpointSite1014, BidCompletedCost1014, CheckpointDrained103
BidCheckpointSite1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidCheckpointSite1014(frame) ==
[kind |-> "BidBatchPaymentCheckpoint",bidId |-> frame.id,caller |-> frame.caller,paymentInstruction |-> frame.revealCaller,transactions |-> frame.transactions,cause |-> "CostPaid",simultaneousBidComparison |-> frame.packet.kind="SimultaneousBidComparisonGame"]Exact module download · Source bundle and reproduction instructions
BidCompletedCost1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidCompletedCost1014(cost,selected) ==
[tag |-> "CompletedCostTransaction",id |-> cost.id,instance |-> cost.instance,instruction |-> cost.instruction,source |-> cost.source,payer |-> cost.payer,
specification |-> cost.specification,allCostsPaid |-> TRUE,announced |-> TRUE,selected |-> selected,bidId |-> cost.bidId,
permissionSources |-> {ObjectAbilitySource9(cost.resourceUnitHosts[id]) : id \in {id \in selected : cost.resourceUnitHosts[id]#0}}]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ObjectAbilitySource9
BidCurrent1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidCurrent1014(frame,world) ==
/\ frame.id \in DOMAIN world.bidFrames /\ world.bidFrames[frame.id]=frame /\ ~frame.returned /\ world.outcome="Playing"
/\ world.turn.id=frame.turnId /\ world.turn.owner=frame.active /\ world.bidOwners[frame.id]=frame.caller /\ BidWalletFresh1014(world)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: BidWalletFresh1014
BidEffectIds1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidEffectIds1014(world,key,definition) ==
{id \in ActiveLingeringIds910(world.lingering,world.lifetimeAuthority.current) :
LET e==world.lingering.effects[id] IN
/\ e.kind="Ordinary" /\ e.choicePolicy="NoValue" /\ e.choiceKey=key /\ e.definitionId=definition
/\ e.baseDuration=[kind |-> "Timing",ref |-> TimingRef9("SchemaAtom138",world.traversal.id)] /\ e.durationClass="SchemaAtom138"
/\ e.value.traversalId=world.traversal.id}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ActiveLingeringIds910, TimingRef9, e
BidEligibleResourceUnits1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidEligibleResourceUnits1014(world,player,cardFacts) ==
LET hosted==IF player="SideB" THEN
UNION {{id \in DOMAIN world.objects : world.objects[id].form="Counter" /\ world.objects[id].kind="ResourceUnit" /\ ~world.objects[id].virtual /\ world.objects[id].host=world.lingering.effects[e].value.host /\ world.objects[id].zone="Play"} :
e \in {e \in DOMAIN world.lingering.effects : BidHostedPermission1014(world,e,cardFacts)}} ELSE {}
fund==IF player="SideB" /\ BidTraversalLive1014(world) THEN LiabilityMarkerFundIds106(world.objects) ELSE {}
candidates==EscalatingResourceContestPoolIds108(world.objects,player) \cup fund \cup hosted
IN {id \in candidates : id \in CheckpointPhysicalIds103(world.objects) /\ SetupMayUseForCost(player,world.objects[id],LiabilityMarkerFundController106(world.objects[id],world.controllers[id]),FALSE)}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: candidates, CheckpointPhysicalIds103, LiabilityMarkerFundController106, SetupMayUseForCost
BidExampleFamily022Ids1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidExampleFamily022Ids1014(world,cardFacts) ==
{id \in DOMAIN world.bidValueRestrictions :
LET r==world.bidValueRestrictions[id] IN
/\ r.tag="CurrentBidValueRestriction" /\ r.snapshotId=world.id /\ r.forbidden=2
/\ r.ability \in world.activeAbilities /\ world.abilitySources[r.ability]=r.source /\ world.abilityRoles[r.ability]="BidForbidTwo"
/\ r.source.kind="Object" /\ r.source.object \in DOMAIN world.objects
/\ r.sourceObject=world.objects[r.source.object] /\ r.sourceSHA=cardFacts["Specimen0102"].sourceSHA
/\ LinkDefinition107(world,r.sourceObject)="Specimen0102"
/\ DefaultActive([r.sourceObject EXCEPT !.card="Specimen0102"],world.gameStarted,cardFacts)}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: r, LinkDefinition107, DefaultActive
BidExampleFamily022ProjectionValid1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidExampleFamily022ProjectionValid1014(world,cardFacts) ==
LET sources=={world.abilitySources[id].object : id \in EscalatingResourceContestRoleIds108(world,"BidForbidTwo","Specimen0102")} IN
/\ DOMAIN world.bidValueRestrictions=sources
/\ BidExampleFamily022Ids1014(world,cardFacts)=sources
/\ \A id \in sources : world.bidValueRestrictions[id].source=ObjectAbilitySource9(id)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ObjectAbilitySource9, sources, BidExampleFamily022Ids1014
BidExampleFamily050Lock1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidExampleFamily050Lock1014(world,cardFacts) ==
BidTraversalLive1014(world) /\ \E id \in BidEffectIds1014(world,"ExampleFamily050SpendLock",141402) :
LET e==world.lingering.effects[id] IN
/\ e.value.kind="CannotSpendResourceUnits" /\ e.value.player="SideB"
/\ e.value.sourceCard="Specimen0205" /\ e.value.sourceSHA=cardFacts["Specimen0205"].sourceSHAExact module download · Source bundle and reproduction instructions
Resolved project definitions: e, BidEffectIds1014, BidTraversalLive1014
BidGuessCorrect1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidGuessCorrect1014(frame) ==
frame.packet.participants={"SideB"} /\ frame.guess \in {"Even","Odd"} /\ frame.paid /\
IF frame.guess="Even" THEN frame.selections["SideB"] % 2=0 ELSE frame.selections["SideB"] % 2=1Exact module download · Source bundle and reproduction instructions
BidHostedPermission1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidHostedPermission1014(world,effectId,cardFacts) ==
LET e==world.lingering.effects[effectId] host==e.value.host IN
/\ BidTraversalLive1014(world) /\ effectId \in BidEffectIds1014(world,"ExampleFamily019Spend",141401)
/\ e.source=ObjectAbilitySource9(host) /\ e.target=host /\ e.value.kind="SpendHostedResourceUnits" /\ e.value.player="SideB"
/\ host \in DOMAIN world.objects /\ world.objects[host].form="Card" /\ world.objects[host].zone="Play"
/\ LinkDefinition107(world,world.objects[host])="Specimen0089" /\ world.controllers[host]="SideB"
/\ e.value.sourceSHA=cardFacts["Specimen0089"].sourceSHAExact module download · Source bundle and reproduction instructions
Resolved project definitions: ObjectAbilitySource9, e, host, BidEffectIds1014, BidTraversalLive1014, LinkDefinition107
BidInitial1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidInitial1014(id,packet,world) ==
[tag |-> "OwnedBiddingProcedure",id |-> id,packet |-> packet,caller |-> packet.reference,turnId |-> world.turn.id,active |-> world.turn.owner,
phase |-> "Selecting",revealCaller |-> packet.reference,generalStages |-> {},generalCheckpoints |-> {},selections |-> [p \in {} |-> p],revealed |-> {},plans |-> [p \in {} |-> p],choiceOrder |-> <<>>,
guess |-> "NoValue",paymentWorld |-> 0,paymentScope |-> [tag |-> "NoValue"],costs |-> [p \in {} |-> p],transactions |-> [p \in {} |-> p],result |-> "Undetermined",paid |-> FALSE,complete |-> FALSE,returned |-> FALSE]Exact module download · Source bundle and reproduction instructions
BidInstructionSupport1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidInstructionSupport1014(effect) ==
IF effect.costProfile="UnmodifiedNestedResourceUnits" THEN "Supported" ELSE "RequiresModifiedNestedCostAdapter"Exact module download · Source bundle and reproduction instructions
BidMultipleChoicePlayers1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidMultipleChoicePlayers1014(frame,world,cardFacts) ==
{p \in frame.packet.participants : Cardinality(BidPaymentPlans1014(world,p,frame.selections[p],cardFacts))>1}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: BidPaymentPlans1014
BidNestedCost1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidNestedCost1014(frame,world,player,transaction) ==
[tag |-> "BidNestedResourceUnitCost",id |-> transaction,transaction |-> transaction,instance |-> frame.caller.abilityInstance,instruction |-> frame.revealCaller,
source |-> frame.caller.source,payer |-> player,specification |-> BidNestedSpecification1014(frame,player),bidId |-> frame.id,
sourceRule |-> "ProcedureCode3b2e1996810a",snapshotId |-> world.id,amount |-> frame.selections[player],status |-> "Paying",optionalInterrupts |-> {},
resourceUnitHosts |-> [id \in DOMAIN world.objects |-> world.objects[id].host]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: BidNestedSpecification1014
BidNestedSpecification1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidNestedSpecification1014(frame,player) ==
<<[category |-> "Nested",kind |-> "ResourceUnit",amount |-> frame.selections[player],eventId |-> <<frame.id,player>>]>>Exact module download · Source bundle and reproduction instructions
BidObserverCondition1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidObserverCondition1014(rule,event,priorEvents,cardFacts) ==
CASE rule="BothReveal" -> event.participants=SetupPlayers
[] rule="FirstReveal" -> "SideA" \in event.participants /\ ~\E id \in DOMAIN priorEvents : priorEvents[id].turnId=event.turnId /\ "SideA" \in priorEvents[id].participants
[] rule="SideBSpentFromSideATraversalAbility" -> "SideB" \in event.participants /\ event.amounts["SideB"]>0 /\ event.duringTraversal /\ event.sourceCard \in DOMAIN cardFacts /\ cardFacts[event.sourceCard].side="SideA"
[] OTHER -> FALSEExact module download · Source bundle and reproduction instructions
Resolved project definitions: SetupPlayers
BidObserverRule1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidObserverRule1014(card) ==
CASE card \in {"Specimen0161","Specimen0096"} -> "BothReveal"
[] card="Specimen0113" -> "FirstReveal"
[] card="Specimen0097" -> "SideBSpentFromSideATraversalAbility"
[] OTHER -> "UnsupportedObserver"Exact module download · Source bundle and reproduction instructions
BidPacket1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidPacket1014(context,reference,world,operation,cardFacts,packet) ==
/\ cardFacts=world.cardFacts /\ context.phase="Resolving" /\ context.currentRef=reference /\ context.currentWorld=world.id /\ world.outcome="Playing"
/\ context.actualEffects=ActualExpectedEffects99(context.state.effects) /\ operation \in DOMAIN context.actualEffects /\ operation \in DOMAIN context.templates
/\ LET e==context.actualEffects[operation] t==context.templates[operation] IN
/\ BidInstructionSupport1014(e)="Supported" /\ e.kind \in {"SimultaneousBidComparisonGame","SecretBid"} /\ t.kind=e.kind /\ e.baseOrigin=reference.source
/\ e.sourceCard=t.sourceCard /\ e.sourceSHA=t.sourceSHA /\ e.sourceCard \in DOMAIN cardFacts /\ e.sourceSHA=cardFacts[e.sourceCard].sourceSHA
/\ e.participants \subseteq SetupPlayers /\ e.participants#{} /\ DOMAIN e.allowed=e.participants /\ \A p \in e.participants : e.allowed[p] \subseteq Nat /\ 0 \in e.allowed[p]
/\ (e.kind="SimultaneousBidComparisonGame" => e.participants=SetupPlayers /\ e.allowed=[p \in SetupPlayers |-> {0,1,2}] /\ e.reveal="Immediate")
/\ e.rangeMode \in {"SchemaAtom127","AtMost","AnyAffordable"} /\ (e.kind="SimultaneousBidComparisonGame")=(e.rangeMode="SchemaAtom127")
/\ e.reveal \in {"Immediate","LaterInstruction"} /\ e.classification \in {"PrintedSimultaneousBidComparison","LegacyPairedSimultaneousBidComparison","GeneralBid"}
/\ (e.kind="SimultaneousBidComparisonGame")=(e.classification \in {"PrintedSimultaneousBidComparison","LegacyPairedSimultaneousBidComparison"})
/\ packet=[key |-> <<context.id,reference,operation>>,reference |-> reference,sourceCard |-> e.sourceCard,sourceSHA |-> e.sourceSHA,
participants |-> e.participants,allowed |-> e.allowed,rangeMode |-> e.rangeMode,kind |-> e.kind,reveal |-> e.reveal,classification |-> e.classification]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ActualExpectedEffects99, e, t, BidInstructionSupport1014, SetupPlayers
BidPaidFrame1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidPaidFrame1014(frame) ==
[frame EXCEPT !.phase="PaidCheckpointDue",!.paid=TRUE,
!.result=IF frame.packet.kind="SimultaneousBidComparisonGame" THEN IF frame.selections["SideA"]=frame.selections["SideB"] THEN "Equal" ELSE "Different" ELSE "SingleBid"]Exact module download · Source bundle and reproduction instructions
BidPaymentEvent1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidPaymentEvent1014(frame,world,eventId,snapshot) ==
[id |-> eventId,kind |-> "BidsRevealedAndPaid",bidId |-> frame.id,source |-> frame.caller.source,sourceCard |-> frame.packet.sourceCard,
sourceSHA |-> frame.packet.sourceSHA,participants |-> frame.packet.participants,amounts |-> frame.selections,result |-> frame.result,turnId |-> frame.turnId,
duringTraversal |-> BidTraversalLive1014(world),serial |-> world.bidEventSerial+1,reference |-> frame.caller,snapshot |-> snapshot,transactionIds |-> frame.transactions]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: BidTraversalLive1014
BidPaymentPlans1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidPaymentPlans1014(world,player,amount,cardFacts) ==
IF amount=0 THEN {{}}
ELSE IF amount \notin Nat \/ (player="SideB" /\ BidExampleFamily050Lock1014(world,cardFacts)) \/ (amount=2 /\ BidExampleFamily022Ids1014(world,cardFacts)#{}) THEN {}
ELSE {selected \in SUBSET BidEligibleResourceUnits1014(world,player,cardFacts) : Cardinality(selected)=amount}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: BidEligibleResourceUnits1014, BidExampleFamily022Ids1014, BidExampleFamily050Lock1014
BidPaymentScope1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidPaymentScope1014(world) ==
[id |-> world.id,objects |-> world.objects,controllers |-> world.controllers,traversal |-> world.traversal,inside |-> world.inside,
lingering |-> world.lingering,authority |-> world.lifetimeAuthority,restrictions |-> world.bidValueRestrictions,
definitions |-> world.definitions,facts |-> world.cardFacts,abilities |-> world.activeAbilities,abilitySources |-> world.abilitySources,roles |-> world.abilityRoles,
printed |-> world.printed,owners |-> world.owners,visible |-> world.visible,usedObjects |-> world.usedObjects,history |-> world.movementHistory]Exact module download · Source bundle and reproduction instructions
BidPublish1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidPublish1014(frame,world,afterWorld,cardFacts,afterObjects,successors,batchId,history,events,receipts,event,eventId,snapshot) ==
/\ frame.phase="PaidCheckpointDue" /\ frame.paid /\ frame.id \in DOMAIN world.bidFrames /\ world.bidFrames[frame.id].phase="ChoosePayment"
/\ CommitBidPayments1014(world.bidFrames[frame.id],frame,world,cardFacts,afterObjects,successors,batchId,history,events,receipts)
/\ snapshot.objects=afterObjects /\ snapshot.id \in (Nat \ {0}) \ world.usedWorlds
/\ event=BidPaymentEvent1014(frame,world,eventId,snapshot) /\ eventId \in (Nat \ {0}) \ DOMAIN world.bidEvents
/\ afterWorld=[world EXCEPT !.id=snapshot.id,!.objects=afterObjects,!.movementHistory=history,!.bidFrames[frame.id]=frame,
!.usedWorlds=@ \cup {snapshot.id},!.usedObjects=@ \cup DOMAIN afterObjects,
!.controllers=[id \in DOMAIN afterObjects |-> IF id \in DOMAIN world.controllers THEN world.controllers[id] ELSE world.owners[afterObjects[id].card]],
!.bidEventSerial=@+1,!.usedCostTransactions=@ \cup {frame.transactions[p] : p \in frame.packet.participants},!.bidCosts=ReplacementOverlay99(@,[id \in {frame.transactions[p] : p \in frame.packet.participants} |->
receipts[CHOOSE p \in frame.packet.participants : frame.transactions[p]=id]]),!.bidEvents=ReplacementOverlay99(@,[id \in {eventId} |-> event])]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, BidPaymentEvent1014, CommitBidPayments1014
BidPublished1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidPublished1014(event,world) ==
/\ event.id \in DOMAIN world.bidEvents /\ world.bidEvents[event.id]=event
/\ event.bidId \in DOMAIN world.bidFrames /\ world.bidFrames[event.bidId].paid
/\ LET f==world.bidFrames[event.bidId] IN
/\ event.kind="BidsRevealedAndPaid" /\ event.source=f.caller.source /\ event.sourceCard=f.packet.sourceCard /\ event.sourceSHA=f.packet.sourceSHA /\ event.reference=f.caller /\ event.turnId=f.turnId
/\ event.amounts=f.selections /\ event.participants=f.packet.participants /\ event.transactionIds=f.transactions /\ event.result=f.result
/\ \A p \in event.participants : f.transactions[p] \in DOMAIN world.bidCosts /\ world.bidCosts[f.transactions[p]]=BidCompletedCost1014(f.costs[p],f.plans[p])Exact module download · Source bundle and reproduction instructions
Resolved project definitions: f, BidCompletedCost1014
BidReservedCosts1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidReservedCosts1014(world) ==
world.usedCostTransactions \cup UNION {{world.bidFrames[id].transactions[p] : p \in DOMAIN world.bidFrames[id].transactions} : id \in DOMAIN world.bidFrames}Exact module download · Source bundle and reproduction instructions
BidRevealSupport1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidRevealSupport1014(frame,world,cardFacts) ==
IF \A p \in frame.packet.participants : BidPaymentPlans1014(world,p,frame.selections[p],cardFacts)#{}
THEN "OrdinaryFullPayment" ELSE "RequiresChangedPayabilityAdapter"Exact module download · Source bundle and reproduction instructions
Resolved project definitions: BidPaymentPlans1014
BidTraversalLive1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidTraversalLive1014(world) == EscalatingResourceContestDuringTraversal108(world) /\ ~world.traversal.completeExact module download · Source bundle and reproduction instructions
Resolved project definitions: EscalatingResourceContestDuringTraversal108
BidView1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidView1014(frame,player) ==
[id |-> frame.id,phase |-> frame.phase,committed |-> DOMAIN frame.selections,guess |-> frame.guess,
knownValues |-> [p \in {p \in DOMAIN frame.selections : p=player \/ p \in frame.revealed} |-> frame.selections[p]],
sourceChoices |-> IF frame.revealed=frame.packet.participants THEN frame.plans ELSE [p \in {} |-> p]]Exact module download · Source bundle and reproduction instructions
BidWalletFresh1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidWalletFresh1014(world) ==
/\ world.bidWalletProfile="PoolFundAndExampleFamily019" /\ LifetimeWorldProjection910(world)=world.lifetimeAuthority.current
/\ LifetimeReady910(world.lingering,world.lifetimeAuthority)
/\ world.traversal=world.control.traversal /\ BidExampleFamily022ProjectionValid1014(world,world.cardFacts)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: LifetimeReady910, LifetimeWorldProjection910, BidExampleFamily022ProjectionValid1014
CaptureChargeImminence1010 · operator
reference-profile · input revision 2 · CC0 1.0
CaptureChargeImminence1010(plan,ability,world,cardFacts,spec,admission) ==
/\ InstructionImminentAtOrigin93(plan,ability,"NoValue") /\ ChargeSpec1010(world,InstructionWindowRef93(plan),cardFacts,spec)
/\ IF spec.mode="Chosen" THEN
/\ plan.requiresTargets /\ plan.announced /\ plan.targets \subseteq ChargeEligible1010(world,spec)
/\ Cardinality(plan.targets)=MinOf(spec.requested,Cardinality(ChargeEligible1010(world,spec)))
ELSE /\ ~plan.requiresTargets /\ plan.targets={}
/\ LET refs==IF spec.mode="Chosen" THEN plan.targets ELSE {spec.particular}
IN admission=[tag |-> "ChargeAtImminence",reference |-> InstructionWindowRef93(plan),snapshotId |-> world.id,spec |-> spec,
announced |-> plan.targets,initialPower |-> [id \in refs |-> ChargePower1010(world.objects,id)],
physical |-> [id \in refs \cap DOMAIN world.objects |-> world.objects[id].card]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InstructionImminentAtOrigin93, InstructionWindowRef93, refs, ChargeEligible1010, ChargePower1010, ChargeSpec1010, MinOf
CaptureDividendBegin1013 · operator
reference-profile · input revision 2 · CC0 1.0
CaptureDividendBegin1013(world,begin,cardFacts,capture) ==
/\ begin.id \in DOMAIN world.objectiveCompletionBeginnings /\ begin=world.objectiveCompletionBeginnings[begin.id]
/\ DividendBeginSupport1013(begin)="SupportedObjectiveCompletionBegin" /\ begin.actor="SideA" /\ begin.point="ObjectiveCompletionBegins" /\ begin.snapshotId=world.id
/\ begin.object \in DOMAIN world.objects /\ world.objects[begin.object].form="Card" /\ world.objects[begin.object].kind="Objective"
/\ world.objects[begin.object].zone="Play" /\ world.objects[begin.object].deployed /\ world.objects[begin.object].side="SideA"
/\ world.objects[begin.object].card \in DOMAIN world.definitions /\ begin.sourceCard=world.definitions[world.objects[begin.object].card]
/\ DividendFact1013(begin.sourceCard,cardFacts) /\ cardFacts=world.cardFacts
/\ begin.object \in DOMAIN world.requirements /\ world.requirements[begin.object] \in Int
/\ begin.object \in DOMAIN world.consideredProgress /\ world.consideredProgress[begin.object] \in Nat
/\ \A id \in DividendPhysicalProgress1013(world,begin.object) : ~world.objects[id].virtual
/\ LET fact==DividendFacts1013!DividendPrintedFacts1013[begin.sourceCard]
physical==DividendPhysicalProgress1013(world,begin.object)
count==Cardinality(physical)+world.consideredProgress[begin.object]
IN capture=[tag |-> "DividendObjectiveCompletionBegin",objectiveCompletionId |-> begin.id,beginSnapshot |-> world.id,oldObject |-> begin.object,physical |-> world.objects[begin.object].card,
sourceCard |-> begin.sourceCard,sourceSHA |-> fact.sourceSHA,requirement |-> world.requirements[begin.object],progress |-> count,
physicalProgress |-> physical,considered |-> world.consideredProgress[begin.object],multiplier |-> fact.multiplier,excess |-> MaxOf(0,count-world.requirements[begin.object]),beforeObjects |-> world.objects]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: count, fact, physical, DividendBeginSupport1013, DividendFact1013, DividendPhysicalProgress1013, MaxOf
CaptureMarkEvent1011 · operator
reference-profile · input revision 2 · CC0 1.0
CaptureMarkEvent1011(before,after,a,event,mark) ==
/\ MarkRead1011(before,a,event.actor,mark) /\ event.id \in (Nat \ {0}) \ DOMAIN before.history
/\ event.id \in DOMAIN before.sourceOccurrences /\ event=before.sourceOccurrences[event.id]
/\ event.snapshot.id=before.id /\ event.snapshot.objects=before.objects
/\ event.kind \in {"TraversalSuccessful","TraversalEnded","Inspection","EncounterBarrier"}
/\ event.journalSerial=before.eventSerial+1 /\ event.turnId=before.turn.id
/\ event.kind \in {"TraversalSuccessful","TraversalEnded","EncounterBarrier"} => event.targetSite=event.traversal.attacked
/\ event.kind="EncounterBarrier" => event.traversal=before.control.traversal /\ DuringTraversal6(event.traversal) /\ TimingRef9("SchemaAtom138",event.traversal.id) \in before.inside
/\ after=[before EXCEPT !.eventSerial=@+1,!.history=ReplacementOverlay99(@,[id \in {event.id} |->
[id |-> event.id,kind |-> event.kind,serial |-> event.journalSerial,turn |-> event.turnId,targetSite |-> event.targetSite,traversalId |-> event.traversal.id,
actor |-> event.actor,mark |-> mark,occurrence |-> event]])]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, TimingRef9, MarkRead1011, DuringTraversal6
CardProfileFact102 · operator
reference-profile · input revision 2 · CC0 1.0
CardProfileFact102(object,objects,controllers,actualLiveGrants,snapshot) ==
InformationFact102(objects[object].card,
{p \in SetupPlayers : DefaultZoneLook4(objects[object].zone,objects[object].face,p,controllers[object])} \cup
CurrentLookViewers102(object,objects,actualLiveGrants),snapshot)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CurrentLookViewers102, InformationFact102, DefaultZoneLook4, SetupPlayers
ChargeAdmissionKey1010 · operator
reference-profile · input revision 2 · CC0 1.0
ChargeAdmissionKey1010(context,id) == <<context.id,context.initialRef,id>>Exact module download · Source bundle and reproduction instructions
ChargeEligible1010 · operator
reference-profile · input revision 2 · CC0 1.0
ChargeEligible1010(world,spec) == {id \in ChargeSet1010(world,spec) : ChargePower1010(world.objects,id)}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ChargePower1010, ChargeSet1010
ChargeOmitted1010 · operator
reference-profile · input revision 2 · CC0 1.0
ChargeOmitted1010(context,world,id,afterObjects,afterHistory) ==
/\ context.phase="Resolving" /\ context.currentWorld=world.id /\ world.outcome="Playing"
/\ context.actualEffects=ActualExpectedEffects99(context.state.effects) /\ id \in DOMAIN context.templates /\ context.templates[id].kind="Charge"
/\ id \notin DOMAIN context.actualEffects /\ afterObjects=world.objects /\ afterHistory=world.loadHistoryExact module download · Source bundle and reproduction instructions
Resolved project definitions: ActualExpectedEffects99
ChargePacket1010 · operator
reference-profile · input revision 2 · CC0 1.0
ChargePacket1010(context,world,id,cardFacts,admission,currentSpec) ==
/\ context.phase="Resolving" /\ context.currentWorld=world.id /\ world.outcome="Playing"
/\ context.actualEffects=ActualExpectedEffects99(context.state.effects) /\ id \in DOMAIN context.actualEffects /\ id \in DOMAIN context.templates
/\ ChargeAdmissionKey1010(context,id) \in DOMAIN world.chargeAdmissions /\ admission=world.chargeAdmissions[ChargeAdmissionKey1010(context,id)]
/\ admission.tag="ChargeAtImminence" /\ admission.reference=context.initialRef /\ WouldContextKey99(context.initialRef)=WouldContextKey99(context.currentRef)
/\ ChargeSpec1010(world,context.currentRef,cardFacts,currentSpec) /\ ChargeSameMeaning1010(admission.spec,currentSpec)
/\ LET e==context.actualEffects[id] IN
/\ e.kind="Charge" /\ context.templates[id].kind="Charge" /\ e.value=1 /\ e.counterKind="Power"
/\ e.actor=currentSpec.actor /\ e.baseOrigin=context.currentRef.source
/\ e.sourceCard=currentSpec.sourceCard /\ e.sourceSHA=currentSpec.sourceSHA
/\ e.sourceCard=context.templates[id].sourceCard /\ e.sourceSHA=context.templates[id].sourceSHA
/\ e.admissionKey=ChargeAdmissionKey1010(context,id)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ActualExpectedEffects99, WouldContextKey99, e, ChargeAdmissionKey1010, ChargeSameMeaning1010, ChargeSpec1010
ChargePower1010 · operator
reference-profile · input revision 2 · CC0 1.0
ChargePower1010(objects,id) ==
id \in DOMAIN objects /\ objects[id].form="Card" /\ objects[id].zone \in {"Play","SideAObjectiveCompletion","SideBObjectiveCompletion"} /\ HostedCounterIds109(objects,id,"Power")#{}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: HostedCounterIds109
ChargeSameMeaning1010 · operator
reference-profile · input revision 2 · CC0 1.0
ChargeSameMeaning1010(before,after) ==
/\ before.source=after.source /\ before.sourceCard=after.sourceCard /\ before.sourceSHA=after.sourceSHA /\ before.actor=after.actor
/\ before.targetView=after.targetView /\ before.targetZone=after.targetZone
/\ before.mode=after.mode /\ before.requested=after.requested /\ before.ifAble=after.ifAble /\ before.setRule=after.setRule /\ before.particular=after.particularExact module download · Source bundle and reproduction instructions
ChargeSet1010 · operator
reference-profile · input revision 2 · CC0 1.0
ChargeSet1010(world,spec) ==
LET indicated==IF spec.setRule="YourDeployedCards" THEN
{id \in DOMAIN world.objects : world.objects[id].form="Card" /\ world.objects[id].deployed /\ world.objects[id].zone="Play" /\ world.controllers[id]=spec.actor}
ELSE spec.compiledSet
IN {id \in indicated : id \in DOMAIN world.objects /\ world.objects[id].form="Card" /\
IF spec.targetZone="DefaultDeployed" THEN world.objects[id].deployed ELSE world.objects[id].zone=spec.targetZone}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: indicated
ChargeSpec1010 · operator
reference-profile · input revision 2 · CC0 1.0
ChargeSpec1010(world,reference,cardFacts,spec) ==
/\ ChargeSpecKey1010(reference) \in DOMAIN world.chargeSpecs /\ spec=world.chargeSpecs[ChargeSpecKey1010(reference)]
/\ spec.tag="CurrentChargeSpec" /\ spec.reference=reference /\ spec.snapshotId=world.id
/\ spec.sourceCard \in DOMAIN cardFacts /\ spec.sourceSHA=cardFacts[spec.sourceCard].sourceSHA
/\ spec.source=reference.source /\ spec.actor \in SetupPlayers /\ spec.mode \in {"Chosen","Particular"}
/\ spec.requested \in Nat /\ spec.ifAble \in BOOLEAN /\ spec.setRule \in {"YourDeployedCards","CompiledSet"}
/\ spec.targetZone \in {"DefaultDeployed","Play","SideAObjectiveCompletion","SideBObjectiveCompletion"} /\ spec.targetView="OrdinaryHosting"
/\ spec.mode="Particular" => spec.requested=1 /\ spec.particular \in Nat \ {0}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ChargeSpecKey1010, SetupPlayers
ChargeSpecKey1010 · operator
reference-profile · input revision 2 · CC0 1.0
ChargeSpecKey1010(reference) == WouldContextKey99(reference)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: WouldContextKey99
ChargeTargetReceipt1010 · operator
reference-profile · input revision 2 · CC0 1.0
ChargeTargetReceipt1010(plan,targets) ==
[tag |-> "InstructionTargets",instruction |-> plan.id,abilityInstance |-> plan.abilityInstance,source |-> plan.source,
sourceZone |-> plan.sourceZone,index |-> plan.index,targets |-> targets,valid |-> TRUE]Exact module download · Source bundle and reproduction instructions
CheckpointAt103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointAt103(f,stage) ==
f.id \in Nat \ {0} /\ f.phase="Steps" /\ ~f.returned /\ Len(f.owed)>0 /\ f.point=stage /\ f.owed[1]=stageExact module download · Source bundle and reproduction instructions
CheckpointAuxiliarySiteCleanup103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointAuxiliarySiteCleanup103(before,after,targetSites,afterTargetSites,objects,deploying,newSnapshotId) ==
/\ CheckpointAt103(before,"ProcedureCode2d73b20aa788")
/\ AuxiliarySiteRegistryCheckpoint4(targetSites,afterTargetSites,objects,deploying,"ProcedureCode2d73b20aa788")
/\ CheckpointStageAdvance103(before,after,"ProcedureCode2d73b20aa788",newSnapshotId)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CheckpointAt103, CheckpointStageAdvance103, AuxiliarySiteRegistryCheckpoint4
CheckpointAuxiliarySiteLimit103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointAuxiliarySiteLimit103(before,after,targetSites,objects,afterObjects,keep,effectiveLimit,
successors,usedIds,printed,owners,sideBVisible,newSnapshotId) ==
/\ CheckpointAt103(before,"ProcedureCodea488e1ba6ca3")
/\ LET remaining==Without101(targetSites,before.retiredRemotes)
plan==AuxiliarySiteLimitPlan4(remaining,keep,effectiveLimit,objects)
retired==AuxiliarySiteTargetSiteIds4(remaining) \ keep
IN /\ Cardinality(AuxiliarySiteTargetSiteIds4(remaining))>effectiveLimit /\ plan.valid /\ plan.chooser="SideA"
/\ CheckpointRetirePost103(objects,afterObjects,plan.trash,successors,usedIds,printed,owners,sideBVisible)
/\ after=[before EXCEPT !.retiredRemotes=@ \cup retired,!.snapshotId=newSnapshotId]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: plan, remaining, retired, CheckpointAt103, CheckpointRetirePost103, AuxiliarySiteTargetSiteIds4
CheckpointCaptured103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointCaptured103(frame,ledger) ==
/\ frame.recognition.id#0 /\ frame.recognition.id=frame.id /\ frame.recognition.caller=frame.caller
/\ frame.id \in DOMAIN ledger.checkpoints /\ ledger.checkpoints[frame.id].caller=frame.caller
/\ frame.recognized=CheckpointMemberMap103(ledger,frame.id)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CheckpointMemberMap103
CheckpointCleanupEffects103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointCleanupEffects103(before,after,beforeRegistry,afterRegistry,beforeLedger,candidateLedger,afterLedger,beforeStack,afterStack,
beforeSnapshot,afterSnapshot,world,cleanupFrame,afterCleanupFrame,actualCleanup) ==
/\ CheckpointAt103(before,"ProcedureCode88eda145024f") /\ CheckpointCaptured103(before,beforeLedger)
/\ cleanupFrame.checkpointId=before.id /\ cleanupFrame.recognition=before.recognition
/\ CleanupLingeringConditionals910(beforeRegistry,afterRegistry,beforeLedger,candidateLedger,afterLedger,beforeStack,afterStack,
beforeSnapshot,afterSnapshot,world,cleanupFrame,afterCleanupFrame,actualCleanup)
/\ CheckpointStageAdvance103(before,after,"ProcedureCode88eda145024f",world.id)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CleanupLingeringConditionals910, CheckpointAt103, CheckpointCaptured103, CheckpointStageAdvance103
CheckpointCompletion103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointCompletion103(frame,ledger,world,receipt) ==
/\ frame.phase="Completed" /\ ~frame.returned /\ frame.point="ProcedureCodeb74d673a0fc6" /\ frame.owed= <<>>
/\ frame.done \cup frame.discharged=CheckpointStageSet103 /\ frame.done \cap frame.discharged={}
/\ CheckpointCaptured103(frame,ledger) /\ frame.snapshotId=world.id /\ frame.outcome="Playing"
/\ receipt=PersistentCheckpointCompletion912(ledger,frame.recognition,world)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: PersistentCheckpointCompletion912, CheckpointCaptured103, CheckpointStageSet103
CheckpointDrained103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointDrained103(frame,ledger,stack) ==
/\ frame.phase="Returned" /\ frame.returned /\ frame.owed = <<>> /\ frame.outcome="Playing"
/\ frame.done \cup frame.discharged=CheckpointStageSet103 /\ CheckpointCaptured103(frame,ledger)
/\ ConditionalCheckpointDrained96(ledger,stack,frame.id)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ConditionalCheckpointDrained96, CheckpointCaptured103, CheckpointStageSet103
CheckpointHostedCleanup103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointHostedCleanup103(before,after,objects,afterObjects,departures,afterDepartures,transits,paidProcedures,
successors,usedIds,printed,owners,sideBVisible,newSnapshotId) ==
/\ before.point \in {"ProcedureCode76ca53ad9dd0","ProcedureCode96bfa1b6a970"} /\ CheckpointAt103(before,before.point)
/\ \A p \in DOMAIN paidProcedures : paidProcedures[p].id=p /\ PaidHeldProvenance95(paidProcedures[p],objects,transits)
/\ LET due==CheckpointHostedTargets103(objects,departures,before.point,transits,paidProcedures)
added==CheckpointNewUninstallDepartures103(objects,due)
IN /\ CheckpointRetirePost103(objects,afterObjects,due,successors,usedIds,printed,owners,sideBVisible)
/\ afterDepartures=MergeCheckpointDepartures103(departures,added)
/\ IF before.point="ProcedureCode96bfa1b6a970" /\ due#{} THEN after=[before EXCEPT !.snapshotId=newSnapshotId,!.hostPasses=@+1]
ELSE CheckpointStageAdvance103(before,after,before.point,newSnapshotId)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: PaidHeldProvenance95, added, due, CheckpointAt103, CheckpointRetirePost103, CheckpointStageAdvance103, MergeCheckpointDepartures103
CheckpointHostedTargets103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointHostedTargets103(objects,departures,kind,transits,paidProcedures) ==
LET historical==UNION {departures[id].children : id \in {id \in DOMAIN departures :
IF kind="ProcedureCode76ca53ad9dd0" THEN departures[id].objectiveCompletionLeft ELSE departures[id].uninstalled \/ departures[id].hostRemoved}}
finished=={p \in DOMAIN paidProcedures : paidProcedures[p].ability.lastFinished}
IN ((historical \cap DOMAIN objects) \ CheckpointProtectedIds103(objects,transits,paidProcedures)) \cup
CostAsideCleanupIds4(transits,objects,finished,kind)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: finished, historical, CheckpointProtectedIds103, CostAsideCleanupIds4
CheckpointIllegalDisposition103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointIllegalDisposition103(eligible,LegalAfterRetire(_)) ==
IF AppropriateRetireSets103(eligible,LegalAfterRetire)={} THEN "UnsupportedNoLegalizingSet" ELSE "Supported"Exact module download · Source bundle and reproduction instructions
Resolved project definitions: AppropriateRetireSets103
CheckpointIllegalRetire103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointIllegalRetire103(before,after,objects,afterObjects,eligible,LegalAfterRetire(_),controllers,activePlayer,auxiliarySiteTargetSites,auxiliarySiteLimit,chooser,selected,
successors,usedIds,printed,owners,sideBVisible,newSnapshotId) ==
/\ CheckpointAt103(before,"ProcedureCodea488e1ba6ca3") /\ eligible \subseteq CheckpointPhysicalIds103(objects)
/\ IF auxiliarySiteLimit.applies THEN Cardinality(AuxiliarySiteTargetSiteIds4(Without101(auxiliarySiteTargetSites,before.retiredRemotes)))<=auxiliarySiteLimit.value ELSE TRUE
/\ LET choices==AppropriateRetireSets103(eligible,LegalAfterRetire)
IN /\ selected \in choices /\ chooser=IllegalRetireChooser103(choices,controllers,activePlayer)
/\ CheckpointRetirePost103(objects,afterObjects,selected,successors,usedIds,printed,owners,sideBVisible)
/\ CheckpointStageAdvance103(before,after,"ProcedureCodea488e1ba6ca3",newSnapshotId)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: choices, CheckpointAt103, CheckpointPhysicalIds103, CheckpointRetirePost103, CheckpointStageAdvance103, IllegalRetireChooser103, Without101, AuxiliarySiteTargetSiteIds4
CheckpointLatest103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointLatest103(group,activationOrder) ==
CHOOSE id \in group : \A other \in group \ {id} : activationOrder[id]>activationOrder[other]Exact module download · Source bundle and reproduction instructions
CheckpointLatestExists103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointLatestExists103(group,activationOrder) ==
group \subseteq DOMAIN activationOrder /\ \E id \in group : \A other \in group \ {id} : activationOrder[id]>activationOrder[other]Exact module download · Source bundle and reproduction instructions
CheckpointMemberMap103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointMemberMap103(ledger,cpId) ==
[id \in PersistentRecognizedIds912(ledger,cpId) |-> ledger.instances[id].member]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: PersistentRecognizedIds912
CheckpointNewUninstallDepartures103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointNewUninstallDepartures103(objects,selected) ==
[key \in {<<"CleanupUninstall",i>> : i \in selected} |->
[source |-> key[2],objectiveCompletionLeft |-> FALSE,uninstalled |-> objects[key[2]].form="Card" /\ objects[key[2]].deployed,hostRemoved |-> TRUE,
children |-> {child \in DOMAIN objects : objects[child].host=key[2]}]]Exact module download · Source bundle and reproduction instructions
CheckpointObjectiveOutcome103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointObjectiveOutcome103(objects,effectivePoints) ==
LET points==[p \in SetupPlayers |-> ObjectiveAreaPoints4(objects,p,effectivePoints)]
winners=={p \in SetupPlayers : points[p]>=7}
IN CASE winners={} -> "Playing" [] winners=SetupPlayers -> "Draw" [] OTHER -> CHOOSE p \in winners : TRUEExact module download · Source bundle and reproduction instructions
Resolved project definitions: winners, SetupPlayers
CheckpointPendingBarrierTargetSites103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointPendingBarrierTargetSites103(deploying) ==
{deploying[id].destination.targetSite : id \in {id \in DOMAIN deploying : deploying[id].form="Card" /\ deploying[id].kind="Barrier" /\
deploying[id].destination.zone="Play" /\ deploying[id].destination.area="Protecting"}}Exact module download · Source bundle and reproduction instructions
CheckpointPhysicalIds103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointPhysicalIds103(objects) == {id \in DOMAIN objects : ~objects[id].virtual}Exact module download · Source bundle and reproduction instructions
CheckpointPositionCleanup103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointPositionCleanup103(before,after,layout,afterLayout,currentSideBPosition,deploying,newSnapshotId) ==
/\ CheckpointAt103(before,"ProcedureCode2d6279f9d639")
/\ LET pendingTargetSites==CheckpointPendingBarrierTargetSites103(deploying)
remove=={p \in DOMAIN layout.slots : layout.slots[p].barrierCard=0 /\ p#currentSideBPosition /\ layout.slots[p].targetSite \notin pendingTargetSites}
IN /\ afterLayout=[layout EXCEPT !.slots=[p \in DOMAIN layout.slots \ remove |->
[layout.slots[p] EXCEPT !.retained=(p=currentSideBPosition /\ layout.slots[p].barrierCard=0)]],
!.orders=[targetSite \in DOMAIN @ |-> SelectSeq(layout.orders[targetSite],LAMBDA p : p \notin remove)]]
/\ CheckpointStageAdvance103(before,after,"ProcedureCode2d6279f9d639",newSnapshotId)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: LAMBDA, remove, CheckpointAt103, CheckpointStageAdvance103
CheckpointPrivatePersistentBound103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointPrivatePersistentBound103(frame,registry,ledger) ==
/\ frame.phase \in {"Steps","Completed"} /\ CheckpointCaptured103(frame,ledger)
/\ PersistentCheckpointBound912(registry,[ledger EXCEPT !.checkpoints=Without101(@,{frame.id})])Exact module download · Source bundle and reproduction instructions
Resolved project definitions: PersistentCheckpointBound912, CheckpointCaptured103, Without101
CheckpointProtectedIds103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointProtectedIds103(objects,transits,paidProcedures) ==
UNION {{id \in DOMAIN objects : PaidHeldObject95(paidProcedures[p],objects,transits,id)} : p \in
{p \in DOMAIN paidProcedures : paidProcedures[p].id=p /\ PaidProtectionAlive95(paidProcedures[p])}}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: PaidHeldObject95, PaidProtectionAlive95
CheckpointRecognizedWindow103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointRecognizedWindow103(frame) ==
IF DOMAIN frame.recognized={} THEN 0 ELSE frame.recognized[CHOOSE id \in DOMAIN frame.recognized : TRUE].windowIdExact module download · Source bundle and reproduction instructions
CheckpointRestoreDiscard103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointRestoreDiscard103(before,after,objects,afterObjects,conversions,afterConversions,printed,newSnapshotId) ==
/\ CheckpointAt103(before,"ProcedureCodeda83a77a1f12") /\ RestoreDiscardConversions103(objects,afterObjects,conversions,afterConversions,printed)
/\ CheckpointStageAdvance103(before,after,"ProcedureCodeda83a77a1f12",newSnapshotId)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CheckpointAt103, CheckpointStageAdvance103, RestoreDiscardConversions103
CheckpointRetentionRetire103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointRetentionRetire103(frame,retentions,afterRetentions,objects,afterObjects,liveIds,successors,usedIds,printed,owners,sideBVisible) ==
/\ CheckpointAt103(frame,"ProcedureCode88eda145024f") /\ liveIds \subseteq DOMAIN retentions
/\ CheckpointRetirePost103(objects,afterObjects,ExpiredRetainedPlayIds103(retentions,objects,liveIds),successors,usedIds,printed,owners,sideBVisible)
/\ afterRetentions=Without101(retentions,DOMAIN retentions \ liveIds)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CheckpointAt103, CheckpointRetirePost103, ExpiredRetainedPlayIds103, Without101
CheckpointRetireMap103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointRetireMap103(objects,selected,successors,printed,owners,sideBVisible) ==
LET cards=={id \in selected : objects[id].card#"none"}
fresh=={successors[id] : id \in cards}
IN [id \in (DOMAIN objects \ selected) \cup fresh |-> IF id \notin fresh THEN objects[id]
ELSE LET old==CHOOSE old \in cards : successors[old]=id
o==objects[old]
IN [o EXCEPT !.form="Card",!.kind=printed[o.card].kind,!.properties=printed[o.card],
!.zone=owners[o.card] \o "Discard",!.loc="discard",!.host=0,!.deployed=FALSE,!.activated=FALSE,!.marks={},
!.face=DiscardArrivalFace4(owners[o.card],o.zone,"Retire",old \in sideBVisible)]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: fresh, o, old, DiscardArrivalFace4
CheckpointRetirePost103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointRetirePost103(objects,afterObjects,selected,successors,usedIds,printed,owners,sideBVisible) ==
/\ selected \subseteq CheckpointPhysicalIds103(objects) /\ DOMAIN objects \subseteq usedIds
/\ FreshSuccessors8({id \in selected : objects[id].card#"none"},successors,usedIds)
/\ afterObjects=CheckpointRetireMap103(objects,selected,successors,printed,owners,sideBVisible)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CheckpointPhysicalIds103, CheckpointRetireMap103, FreshSuccessors8
CheckpointReturnDiscardCounters103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointReturnDiscardCounters103(before,after,objects,afterObjects,newSnapshotId) ==
/\ CheckpointAt103(before,"ProcedureCode0811ebc5f40e")
/\ LET due=={id \in DOMAIN objects : objects[id].form="Counter" /\ objects[id].zone \in {"SideADiscard","SideBDiscard"}}
IN /\ \A id \in due : objects[id].card="none" /\ ~objects[id].virtual
/\ afterObjects=Without101(objects,due)
/\ CheckpointStageAdvance103(before,after,"ProcedureCode0811ebc5f40e",newSnapshotId)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: due, CheckpointAt103, CheckpointStageAdvance103, Without101
CheckpointRootAdmissions103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointRootAdmissions103(before,after,capacity,afterCapacity,siteInspection,objects,entries,previousBoundary,currentBoundary,accepted,actor,newSnapshotId) ==
/\ CheckpointAt103(before,"ProcedureCode7f181ce21011") /\ previousBoundary<=currentBoundary
/\ IF siteInspection.active /\ ~siteInspection.complete THEN
/\ actor="SideB"
/\ LET arrivals=={entries[id].object : id \in {id \in DOMAIN entries : entries[id].tag="RootEntry" /\ entries[id].siteInspectionId=siteInspection.id /\
entries[id].serial>previousBoundary /\ entries[id].serial<=currentBoundary /\ entries[id].targetSite=siteInspection.targetSite}}
observed==[capacity EXCEPT !.admittedRoots=(@ \cap InspectionRootCards7(siteInspection,objects)) \ arrivals,
!.pendingRoots=(@ \cup arrivals) \cap InspectionRootCards7(siteInspection,objects)]
IN /\ ObserveRootEntries7(capacity,observed,siteInspection,objects,arrivals)
/\ DecideRootAdmissions7(observed,afterCapacity,siteInspection,objects,accepted,"ProcedureCode7f181ce21011",TRUE)
ELSE afterCapacity=capacity /\ accepted={} /\ actor="NoValue"
/\ CheckpointStageAdvance103(before,after,"ProcedureCode7f181ce21011",newSnapshotId)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: arrivals, observed, CheckpointAt103, CheckpointStageAdvance103, DecideRootAdmissions7, ObserveRootEntries7
CheckpointSite103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointSite103(site,event,insideStructures) ==
/\ site.snapshotId \in Nat \ {0} /\ site.caller=event.caller /\ site.eventId=event.id
/\ event.id \in Nat \ {0} /\ event.complete
/\ CASE site.kind="SchemaAtom126" -> event.tag="PriorityAboutToBeReceived" /\ event.player \in SetupPlayers
[] site.kind="Cost" -> event.tag="CostPaid" /\ event.transactionId \in Nat \ {0}
[] site.kind="Instruction" -> event.tag="InstructionFinished" /\ event.origin \in {"Ability","TimingStep"}
/\ event.instruction \notin CheckpointStageSet103 \cup {"ProcedureCodeb74d673a0fc6"}
[] site.kind="StructureEnd" -> event.tag="TimingStructureEnded" /\ TimingRefValid9(event.structure)
[] OTHER -> FALSE
/\ site.inside=IF site.kind="StructureEnd" THEN insideStructures \ {event.structure} ELSE insideStructuresExact module download · Source bundle and reproduction instructions
Resolved project definitions: TimingRefValid9, CheckpointStageSet103, SetupPlayers
CheckpointSiteKey103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointSiteKey103(site) == <<site.kind,site.eventId,site.caller>>Exact module download · Source bundle and reproduction instructions
CheckpointStageAdvance103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointStageAdvance103(before,after,stage,newSnapshotId) ==
/\ CheckpointAt103(before,stage) /\ stage \in CheckpointStageSet103
/\ LET rest==SubSeq(before.owed,2,Len(before.owed))
IN after=[before EXCEPT !.owed=rest,!.done=@ \cup {stage},!.snapshotId=newSnapshotId,
!.point=IF rest= <<>> THEN "ProcedureCodeb74d673a0fc6" ELSE rest[1],!.phase=IF rest= <<>> THEN "Completed" ELSE "Steps"]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: rest, CheckpointAt103, CheckpointStageSet103
CheckpointStageSet103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointStageSet103 == {CheckpointStages103[i] : i \in 1..Len(CheckpointStages103)}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CheckpointStages103
CheckpointStages103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointStages103 == <<"ProcedureCodee605a78f5d5e","ProcedureCode88eda145024f","ProcedureCodeb681cc249a04","ProcedureCodefe50c31480ea","ProcedureCodea488e1ba6ca3","ProcedureCode76ca53ad9dd0",
"ProcedureCode96bfa1b6a970","ProcedureCode2d73b20aa788","ProcedureCode2d6279f9d639","ProcedureCode7f181ce21011","ProcedureCodeda83a77a1f12","ProcedureCode0811ebc5f40e">>Exact module download · Source bundle and reproduction instructions
CheckpointUniquePlan103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointUniquePlan103(objects,names,unique,active,consoles,controllers,activationOrder) ==
LET activeCards==active \cap {id \in DOMAIN objects : objects[id].form="Card"}
uniqueNames=={names[id] : id \in unique \cap activeCards}
mixed==\E name \in uniqueNames : \E id \in activeCards \ unique : names[id]=name
uniqueGroups=={{id \in unique \cap activeCards : names[id]=name} : name \in uniqueNames}
consoleGroups=={{id \in consoles \cap DOMAIN objects : objects[id].deployed /\ controllers[id]=player} : player \in SetupPlayers}
groups=={group \in uniqueGroups \cup consoleGroups : Cardinality(group)>1}
supported==~mixed /\ \A group \in groups : CheckpointLatestExists103(group,activationOrder)
IN [disposition |-> IF mixed THEN "UnsupportedMixedUniqueness" ELSE IF supported THEN "Supported" ELSE "UnsupportedActivationTie",
targets |-> IF supported THEN UNION {group \ {CheckpointLatest103(group,activationOrder)} : group \in groups} ELSE {}]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: groups, mixed, supported, CheckpointLatest103
CheckpointUniqueRetire103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointUniqueRetire103(before,after,objects,afterObjects,names,unique,active,consoles,controllers,activationOrder,
successors,usedIds,printed,owners,sideBVisible,newSnapshotId) ==
/\ CheckpointAt103(before,"ProcedureCodefe50c31480ea")
/\ LET plan==CheckpointUniquePlan103(objects,names,unique,active,consoles,controllers,activationOrder)
IN /\ plan.disposition="Supported"
/\ CheckpointRetirePost103(objects,afterObjects,plan.targets,successors,usedIds,printed,owners,sideBVisible)
/\ CheckpointStageAdvance103(before,after,"ProcedureCodefe50c31480ea",newSnapshotId)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: plan, CheckpointAt103, CheckpointRetirePost103, CheckpointStageAdvance103
CheckpointVictory103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointVictory103(before,after,objects,effectivePoints,currentSnapshot) ==
/\ CheckpointAt103(before,"ProcedureCodeb681cc249a04") /\ before.snapshotId=currentSnapshot
/\ LET result==CheckpointObjectiveOutcome103(objects,effectivePoints)
IN IF result="Playing" THEN CheckpointStageAdvance103(before,after,"ProcedureCodeb681cc249a04",currentSnapshot)
ELSE after=[before EXCEPT !.outcome=result,!.phase="SchemaAtom160",!.point="GameEnded"]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: result, CheckpointAt103, CheckpointStageAdvance103
ChooseBidPaymentSources1014 · operator
reference-profile · input revision 2 · CC0 1.0
ChooseBidPaymentSources1014(before,after,world,player,selected,cardFacts) ==
/\ cardFacts=world.cardFacts /\ BidCurrent1014(before,world) /\ before.phase="ChoosePayment" /\ before.revealed=before.packet.participants /\ world.id=before.paymentWorld /\ BidPaymentScope1014(world)=before.paymentScope
/\ player \in before.packet.participants \ DOMAIN before.plans /\ selected \in BidPaymentPlans1014(world,player,before.selections[player],cardFacts)
/\ (BidMultipleChoicePlayers1014(before,world,cardFacts)=SetupPlayers /\ DOMAIN before.plans={} => player=before.active)
/\ after=[before EXCEPT !.plans=ReplacementOverlay99(@,[p \in {player} |-> selected]),!.choiceOrder=Append(@,player)]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, BidCurrent1014, BidMultipleChoicePlayers1014, BidPaymentPlans1014, BidPaymentScope1014, SetupPlayers
ChooseSabotageCentralA1012 · operator
reference-profile · input revision 2 · CC0 1.0
ChooseSabotageCentralA1012(before,after,context,operation,world,packet,decision) ==
/\ SabotageFrameBound1012(before,context,operation,world,packet) /\ before.phase="Choose" /\ ~before.choiceSealed
/\ decision.tag="SideASabotageCentralAChoice" /\ decision.actor="SideA" /\ decision.frameId=before.id /\ decision.snapshotId=world.id
/\ decision.view=SideASabotageView1012(world,packet) /\ decision.aHand \subseteq world.aHand
/\ LET total==SabotageTotal1012(world,packet.amount) count==Cardinality(decision.aHand)
IN /\ MaxOf(0,total-Len(world.aDrawPile))<=count /\ count<=MinOf(total,Cardinality(world.aHand))
/\ after=[before EXCEPT !.phase="ReadyRetire",!.choiceSealed=TRUE,!.aHandChosen=decision.aHand,!.aDrawPileCount=total-count]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: count, total, SabotageFrameBound1012, SideASabotageView1012, MaxOf, MinOf
CommitBidPayments1014 · operator
reference-profile · input revision 2 · CC0 1.0
CommitBidPayments1014(before,after,world,cardFacts,afterObjects,successors,batchId,afterHistory,events,receipts) ==
/\ cardFacts=world.cardFacts /\ BidCurrent1014(before,world) /\ before.phase="ChoosePayment" /\ world.id=before.paymentWorld /\ BidPaymentScope1014(world)=before.paymentScope /\ before.revealed=before.packet.participants
/\ DOMAIN before.plans=before.packet.participants
/\ \A p \in before.packet.participants :
/\ before.plans[p] \in BidPaymentPlans1014(world,p,before.selections[p],cardFacts)
/\ before.costs[p]=BidNestedCost1014(before,world,p,before.transactions[p]) /\ before.costs[p].optionalInterrupts={}
/\ EffectiveCosts(before.costs[p].specification,{},FALSE,FALSE)=BidNestedSpecification1014(before,p)
/\ AlternatePaymentPreservesValue(before.selections[p],Cardinality(before.plans[p]))
/\ \A p,q \in before.packet.participants : p#q => before.plans[p] \cap before.plans[q]={}
/\ LiabilityMarkerCounterDeparture106(world.objects,afterObjects,UNION {before.plans[p] : p \in before.packet.participants},successors,world.usedObjects,
world.printed,world.owners,world.visible,batchId,world.movementHistory,afterHistory,events)
/\ receipts=[p \in before.packet.participants |-> BidCompletedCost1014(before.costs[p],before.plans[p])]
/\ after=BidPaidFrame1014(before)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: BidCompletedCost1014, BidCurrent1014, BidNestedCost1014, BidNestedSpecification1014, BidPaidFrame1014, BidPaymentPlans1014, BidPaymentScope1014, LiabilityMarkerCounterDeparture106, AlternatePaymentPreservesValue, EffectiveCosts
CommunicateInformation102 · operator
reference-profile · input revision 2 · CC0 1.0
CommunicateInformation102(beforeTranscript,afterTranscript,beforeTruth,afterTruth,
facts,fact,speaker,recipient,claimedValue,currentSnapshot) ==
/\ speaker \in SetupPlayers /\ recipient \in SetupPlayers \ {speaker}
/\ fact \in DOMAIN facts /\ facts[fact].snapshot=currentSnapshot /\ speaker \in facts[fact].viewers
/\ InformationClass102(facts[fact].viewers)="Open" => claimedValue=facts[fact].value
/\ afterTruth=beforeTruth
/\ afterTranscript=Append(beforeTranscript,[tag |-> "Claim",speaker |-> speaker,recipient |-> recipient,
fact |-> fact,value |-> claimedValue,snapshot |-> currentSnapshot,
verifiedOpen |-> InformationClass102(facts[fact].viewers)="Open"])Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InformationClass102, SetupPlayers
CompleteDividendPlan1013 · operator
reference-profile · input revision 2 · CC0 1.0
CompleteDividendPlan1013(before,after,world,completion) ==
/\ world.outcome="Playing" /\ DividendPlanBound1013(world,before) /\ ~before.complete /\ before.cursor=before.basis.repetitions+1
/\ \A i \in before.applied : <<before.instance,before.reference,i>> \in world.completedCounterInstructions
/\ before.applied \cap before.skipped={} /\ before.applied \cup before.skipped=1..before.basis.repetitions
/\ before.totalPlaced=before.basis.multiplier*Cardinality(before.applied)
/\ after=[before EXCEPT !.complete=TRUE]
/\ completion=[tag |-> "DividendInstructionComplete",instance |-> before.instance,reference |-> before.reference,objectiveCompletionId |-> before.basis.objectiveCompletionId,applications |-> before.applied,
skipped |-> before.skipped,totalPlaced |-> before.totalPlaced,complete |-> TRUE]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: DividendPlanBound1013
CompleteEscalatingResourceContest108 · operator
reference-profile · input revision 2 · CC0 1.0
CompleteEscalatingResourceContest108(before,after,world) ==
/\ EscalatingResourceContestCurrent108(before,world) /\ before.phase="Determined" /\ before.result \in {"Successful","Unsuccessful"}
/\ after=[before EXCEPT !.phase="Complete",!.complete=TRUE]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: EscalatingResourceContestCurrent108
ConversionExitPlan101 · operator
reference-profile · input revision 2 · CC0 1.0
ConversionExitPlan101(c,printed,oldZone,newZone,movement) ==
[converted |-> ConversionRetained101(c,oldZone,newZone),
properties |-> ConversionProperties101(c,printed,oldZone,newZone),
trashImmediately |-> ~ConversionRetained101(c,oldZone,newZone) /\ ~(c.mode="Objective" /\ movement="Forfeit")]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ConversionProperties101, ConversionRetained101
ConversionExitPost101 · operator
reference-profile · input revision 2 · CC0 1.0
ConversionExitPost101(c,printed,oldObject,successor,sourceObjects,afterObjects,usedIds,
destination,movement,actualRetireReceipt) ==
/\ ConversionValid101(c) /\ oldObject \in DOMAIN sourceObjects /\ sourceObjects[oldObject].card=c.card
/\ successor \in DOMAIN afterObjects /\ afterObjects[successor].card=c.card
/\ DOMAIN sourceObjects \subseteq usedIds /\ DOMAIN afterObjects=(DOMAIN sourceObjects \ {oldObject}) \cup {successor}
/\ \A i \in DOMAIN sourceObjects \ {oldObject} : afterObjects[i]=sourceObjects[i]
/\ sourceObjects[oldObject].owner=c.owner /\ afterObjects[successor].owner=c.owner
/\ sourceObjects[oldObject].kind=c.gained.kind
/\ sourceObjects[oldObject].form=(IF c.mode="Objective" THEN "Card" ELSE "Counter")
/\ oldObject#successor /\ successor \notin usedIds /\ oldObject \notin DOMAIN afterObjects
/\ sourceObjects[oldObject].zone#destination
/\ LET plan==ConversionExitPlan101(c,printed,sourceObjects[oldObject].zone,destination,movement)
IN /\ ~plan.converted
/\ afterObjects[successor].form="Card" /\ afterObjects[successor].properties=printed
/\ afterObjects[successor].kind=printed.kind
/\ afterObjects[successor].host=0 /\ ~afterObjects[successor].deployed
/\ IF plan.trashImmediately THEN
/\ actualRetireReceipt.original=oldObject /\ actualRetireReceipt.successor=successor
/\ actualRetireReceipt.physical=c.card /\ actualRetireReceipt.complete
/\ actualRetireReceipt.owner=c.owner
/\ afterObjects[successor].zone=actualRetireReceipt.owner \o "Discard"
ELSE movement="Forfeit" /\ destination="Removed" /\ afterObjects[successor].zone="Removed"Exact module download · Source bundle and reproduction instructions
Resolved project definitions: plan, ConversionValid101
ConversionProperties101 · operator
reference-profile · input revision 2 · CC0 1.0
ConversionProperties101(c,printed,oldZone,newZone) ==
IF ConversionRetained101(c,oldZone,newZone) THEN c.gained ELSE printedExact module download · Source bundle and reproduction instructions
Resolved project definitions: ConversionRetained101
ConversionRetained101 · operator
reference-profile · input revision 2 · CC0 1.0
ConversionRetained101(c,oldZone,newZone) ==
IF c.mode="Objective" THEN oldZone \in SetupObjectiveZones /\ newZone \in SetupObjectiveZones ELSE oldZone=newZoneExact module download · Source bundle and reproduction instructions
Resolved project definitions: SetupObjectiveZones
ConversionValid101 · operator
reference-profile · input revision 2 · CC0 1.0
ConversionValid101(c) ==
/\ c.mode \in {"Objective","Counter"} /\ c.card#"none"
/\ c.createdBy \in Nat \ {0} /\ c.owner \in SetupPlayers
/\ IF c.mode="Objective" THEN
/\ "kind" \in DOMAIN c.gained /\ c.gained.kind="Objective"
/\ "objectivePoints" \in DOMAIN c.gained /\ c.gained.objectivePoints \in Int
ELSE /\ "kind" \in DOMAIN c.gained /\ c.gained.kind \in CounterKinds101Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CounterKinds101, SetupPlayers
CoreInformationCatalog102 · operator
reference-profile · input revision 2 · CC0 1.0
CoreInformationCatalog102(objects,controllers,actualLiveGrants,actualOpenRememberedChoices,snapshot) ==
LET keys=={<<"CardProfile",id>> : id \in {i \in DOMAIN objects : objects[i].form="Card"}} \cup
{<<"ZoneCount",z>> : z \in {"SideAHand","SideADeck","SideBHand","SideBDeck"}} \cup
{<<"ResourceUnitPool",p>> : p \in SetupPlayers} \cup
{<<"Choice",id>> : id \in DOMAIN actualOpenRememberedChoices}
choices==PublicChoiceFacts102(actualOpenRememberedChoices,snapshot)
IN [key \in keys |-> CASE key[1]="CardProfile" -> CardProfileFact102(key[2],objects,controllers,actualLiveGrants,snapshot)
[] key[1]="ZoneCount" -> ZoneCountFact102(key[2],objects,snapshot)
[] key[1]="ResourceUnitPool" -> ResourceUnitPoolFact102(key[2],objects,snapshot)
[] OTHER -> choices[key[2]]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: choices, keys, CardProfileFact102, ResourceUnitPoolFact102, ZoneCountFact102
CounterInstruction109 · operator
reference-profile · input revision 2 · CC0 1.0
CounterInstruction109(context,reference,world,id,cardFacts) ==
/\ context.phase="Resolving" /\ context.currentRef=reference /\ context.currentWorld=world.id /\ world.outcome="Playing"
/\ context.actualEffects=ActualExpectedEffects99(context.state.effects) /\ id \in DOMAIN context.actualEffects /\ id \in DOMAIN context.templates
/\ LET e==context.actualEffects[id] IN
/\ e.kind \in {"LoadCounters","PlaceCounters","RemoveCounters"} /\ e.kind=context.templates[id].kind
/\ e.value \in Nat /\ CounterInstructionDisposition109(e)="Supported" /\ e.actor \in SetupPlayers /\ e.baseOrigin=reference.source
/\ e.sourceCard=context.templates[id].sourceCard /\ e.sourceSHA=context.templates[id].sourceSHA
/\ e.sourceCard \in DOMAIN cardFacts /\ e.sourceSHA=cardFacts[e.sourceCard].sourceSHA
/\ e.target \in DOMAIN world.objects /\ world.objects[e.target].form="Card" /\ world.objects[e.target].zone \in {"Play","SideAObjectiveCompletion","SideBObjectiveCompletion"}
/\ e.counterKinds=context.templates[id].counterKinds /\ e.counterKind=context.templates[id].counterKind
/\ e.loadDefinition=context.templates[id].loadDefinition
/\ IF e.kind="LoadCounters" THEN e.loadDefinition \in Nat \ {0} ELSE e.loadDefinition=0
/\ \A key \in DOMAIN world.loadLinks :
LET link==world.loadLinks[key] IN
(e.kind="LoadCounters" /\ e.target=link.host /\ e.baseOrigin=ObjectAbilitySource9(link.host) /\ e.loadDefinition=link.loadDefinition) => e.counterKind=link.kindExact module download · Source bundle and reproduction instructions
Resolved project definitions: ActualExpectedEffects99, ObjectAbilitySource9, e, link, CounterInstructionDisposition109, SetupPlayers
CounterInstructionDisposition109 · operator
reference-profile · input revision 2 · CC0 1.0
CounterInstructionDisposition109(effect) ==
IF effect.kind \notin {"LoadCounters","PlaceCounters","RemoveCounters"} THEN "UnsupportedCounterOperation"
ELSE IF effect.value \notin Nat THEN "RequiresQuantityNormalization"
ELSE IF Cardinality(effect.counterKinds)#1 THEN "UnsupportedCounterTypeOrMultiType"
ELSE IF effect.counterKind \notin CounterKinds101 \/ effect.counterKinds#{effect.counterKind} THEN "UnsupportedCounterTypeOrMultiType"
ELSE IF effect.kind="LoadCounters" /\ effect.value=0 THEN "UnsupportedZeroLoad"
ELSE "Supported"Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CounterKinds101
CounterInstructionKey109 · operator
reference-profile · input revision 2 · CC0 1.0
CounterInstructionKey109(context,reference,id) == <<context.id,reference,id>>Exact module download · Source bundle and reproduction instructions
CounterKinds101 · operator
reference-profile · input revision 2 · CC0 1.0
CounterKinds101 == {"ResourceUnit","ActionPoint","ExposureMarker","LiabilityMarker","PersistentCapacityLoss","Progress","SchemaAtom180","Power","Objective","SchemaAtom043"}Exact module download · Source bundle and reproduction instructions
CurrentChargeTargets1010 · operator
reference-profile · input revision 2 · CC0 1.0
CurrentChargeTargets1010(world,admission,spec) ==
LET candidates==IF spec.mode="Chosen" THEN admission.announced \cap ChargeSet1010(world,spec) ELSE {spec.particular}
legal=={id \in candidates : id \in DOMAIN admission.physical /\ id \in DOMAIN world.objects /\ world.objects[id].card=admission.physical[id] /\ ChargePower1010(world.objects,id)}
initial==IF spec.mode="Particular" THEN {id \in legal : admission.initialPower[id]} ELSE legal
IN IF spec.ifAble /\ Cardinality(initial)<spec.requested THEN {} ELSE initialExact module download · Source bundle and reproduction instructions
Resolved project definitions: initial
CurrentExposureMarkerState105 · operator
reference-profile · input revision 2 · CC0 1.0
CurrentExposureMarkerState105(world,declarations,cardFacts,state) ==
/\ \A id \in DOMAIN declarations :
LET d==declarations[id] IN
/\ d.snapshotId=world.id /\ d.projection.property="HasExposureMarkers" /\ d.projection.target="SideB" /\ d.projection.value=TRUE
/\ d.projection.mode="Continuous" /\ ~d.projection.resolving /\ ~d.projection.lingering
/\ d.projection.source.kind="Object" /\ d.projection.source.object \in DOMAIN world.objects
/\ d.sourceObject=world.objects[d.projection.source.object]
/\ d.sourceObject.card \in DOMAIN cardFacts /\ d.sourceSHA=cardFacts[d.sourceObject.card].sourceSHA
/\ d.projection.ability \in world.activeAbilities /\ DefaultActive(d.sourceObject,world.started,cardFacts)
/\ state=ExposureMarkerStateView105(world.objects,declarations)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: d, ExposureMarkerStateView105, DefaultActive
CurrentLiabilityMarker106 · operator
reference-profile · input revision 2 · CC0 1.0
CurrentLiabilityMarker106(world,declarations,cardFacts,quantity) ==
/\ LET virtual==LiabilityMarkerIds106(world.objects) \ MovableLiabilityMarkerIds106(world.objects)
IN /\ UNION {declarations[id].counters : id \in DOMAIN declarations}=virtual
/\ \A a,b \in DOMAIN declarations : a#b => declarations[a].counters \cap declarations[b].counters={}
/\ \A id \in DOMAIN declarations :
LET d==declarations[id] IN
/\ d.snapshotId=world.id /\ d.projection.property="AdditionalLiabilityMarker" /\ d.projection.target="SideA"
/\ d.projection.mode="Continuous" /\ ~d.projection.resolving /\ ~d.projection.lingering
/\ d.projection.value=Cardinality(d.counters) /\ d.counters \subseteq LiabilityMarkerIds106(world.objects)
/\ d.projection.source.kind="Object" /\ d.projection.source.object \in DOMAIN world.objects
/\ d.sourceObject=world.objects[d.projection.source.object] /\ d.sourceObject.card \in DOMAIN cardFacts
/\ d.sourceSHA=cardFacts[d.sourceObject.card].sourceSHA /\ d.projection.ability \in world.activeAbilities
/\ DefaultActive(d.sourceObject,world.started,cardFacts)
/\ quantity=LiabilityMarkerQuantity106(world.objects)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: d, virtual, LiabilityMarkerIds106, LiabilityMarkerQuantity106, DefaultActive
CurrentLinkDeclarations107 · operator
reference-profile · input revision 2 · CC0 1.0
CurrentLinkDeclarations107(world,cardFacts,declarations) ==
/\ declarations=world.linkDeclarations /\ DOMAIN world.printedLinkAbilities=PrintedLinkObjectIds107(world)
/\ \A id \in DOMAIN declarations : declarations[id].projection.source.kind="Object"
/\ \A a,b \in DOMAIN declarations : a#b => <<declarations[a].projection.ability,declarations[a].projection.part,declarations[a].projection.source>>#<<declarations[b].projection.ability,declarations[b].projection.part,declarations[b].projection.source>>
/\ \A a,b \in DOMAIN world.printedLinkAbilities : a#b => world.printedLinkAbilities[a]#world.printedLinkAbilities[b]
/\ LET eligible==EligiblePrintedLinkSources107(world)
printed=={id \in DOMAIN declarations : declarations[id].origin="PrintedLink"}
IN /\ {declarations[id].projection.source.object : id \in printed}=eligible
/\ \A source \in eligible : Cardinality({id \in printed : declarations[id].projection.source=ObjectAbilitySource9(source)})=1
/\ \A id \in DOMAIN declarations :
LET d==declarations[id]
source==d.projection.source.object
object==world.objects[source]
definition==LinkDefinition107(world,object)
IN /\ d.origin \in {"PrintedLink","OtherCompiled"} /\ d.snapshotId=world.id
/\ d.projection.property="Connection" /\ d.projection.target="SideB" /\ d.projection.mode="Continuous"
/\ ~d.projection.resolving /\ ~d.projection.lingering /\ d.projection.value \in Int
/\ d.projection.source.kind="Object" /\ source \in DOMAIN world.objects /\ d.sourceObject=object
/\ object.form="Card" /\ object.side="SideB" /\ object.deployed /\ object.zone="Play" /\ world.controllers[source]="SideB"
/\ SideBAbilityActivity8(object,d.projection.ability \in world.activeAbilities)
/\ definition \in DOMAIN cardFacts /\ d.definition=definition /\ d.sourceSHA=cardFacts[definition].sourceSHA
/\ IF d.origin="PrintedLink" THEN
/\ definition \in DOMAIN world.linkSymbolFacts /\ world.linkSymbolFacts[definition].sourceSHA=d.sourceSHA
/\ d.projection.ability=world.printedLinkAbilities[source] /\ d.projection.value=world.linkSymbolFacts[definition].link
ELSE TRUEExact module download · Source bundle and reproduction instructions
Resolved project definitions: ObjectAbilitySource9, d, definition, eligible, object, printed, source, PrintedLinkObjectIds107, SideBAbilityActivity8
CurrentLookViewers102 · operator
reference-profile · input revision 2 · CC0 1.0
CurrentLookViewers102(object,objects,actualLiveGrants) ==
UNION {actualLiveGrants[g].viewers : g \in {g \in DOMAIN actualLiveGrants :
actualLiveGrants[g].object=object /\ actualLiveGrants[g].zone=objects[object].zone /\
actualLiveGrants[g].loc=objects[object].loc}}Exact module download · Source bundle and reproduction instructions
CutoffPersistentAtCheckpoint103 · operator
reference-profile · input revision 2 · CC0 1.0
CutoffPersistentAtCheckpoint103(before,after,ledger,frame,completion,beforeEnd,afterEnd,events,expired,boundary) ==
/\ CheckpointCompletion103(frame,ledger,before.frontier.world,completion)
/\ CompleteTraversal6(beforeEnd,afterEnd,TRUE,events,expired)
/\ CheckpointPrivatePersistentBound103(frame,before,ledger)
/\ PersistentRegistryWorldBound912(before,before.frontier.world)
/\ before.frontier.world.control.traversal=afterEnd.traversal
/\ frame.caller=PersistentTraversalEndCaller912(afterEnd.traversal.id)
/\ \E id \in DOMAIN frame.recognition.occurrences :
/\ frame.recognition.occurrences[id].kind="TraversalEnds" /\ frame.recognition.occurrences[id].traversal=afterEnd.traversal
/\ frame.recognition.occurrences[id].actualEvent \in events
/\ frame.recognition.occurrences[id].actualEvent=[tag |-> "TraversalEnds",traversalId |-> afterEnd.traversal.id]
/\ \A id \in DOMAIN frame.recognized : frame.recognized[id].windowId=CheckpointRecognizedWindow103(frame)
/\ boundary=[tag |-> "PersistentLastCreationCheckpoint",traversal |-> afterEnd.traversal,checkpointId |-> frame.id,caller |-> frame.caller,
windowId |-> CheckpointRecognizedWindow103(frame),completion |-> completion]
/\ LET keys=={key \in DOMAIN before.persistent : before.persistent[key].phase="Persisting" /\ before.persistent[key].traversalId=afterEnd.traversal.id}
IN /\ keys#{} /\ \A key \in keys : before.persistent[key].creationOpen
/\ after=[before EXCEPT !.persistent=[key \in DOMAIN @ |-> IF key \in keys THEN
[@[key] EXCEPT !.creationOpen=FALSE,!.endCheckpoint=frame.id,!.endWindow=boundary.windowId,
!.endMembers=DOMAIN frame.recognized] ELSE @[key]]]
/\ PersistentRegistryWorldBound912(after,after.frontier.world) /\ PersistentCheckpointBound912(after,ledger)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: PersistentCheckpointBound912, PersistentRegistryWorldBound912, PersistentTraversalEndCaller912, keys, CheckpointCompletion103, CheckpointPrivatePersistentBound103, CheckpointRecognizedWindow103, CompleteTraversal6
DamageBHand104 · operator
reference-profile · input revision 2 · CC0 1.0
DamageBHand104(objects) == {id \in DOMAIN objects : objects[id].form="Card" /\ objects[id].zone="SideBHand"}Exact module download · Source bundle and reproduction instructions
DamageBatchReadyForConditionals104 · operator
reference-profile · input revision 2 · CC0 1.0
DamageBatchReadyForConditionals104(frame,objects,event) ==
/\ frame.phase="Complete" /\ frame.outcome="Playing" /\ objects=frame.finalObjects
/\ event=frame.completion.damageEvent /\ event=DamageSufferedEvent104(frame,frame.completion.batchId,event.successors)
/\ frame.selected \cap DOMAIN objects={}
/\ \A id \in frame.selected : event.successors[id] \in DOMAIN objects /\ objects[event.successors[id]].zone \in {"SideADiscard","SideBDiscard"}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: DamageSufferedEvent104
DamageCardBatchTransfer104 · operator
reference-profile · input revision 2 · CC0 1.0
DamageCardBatchTransfer104(objects,afterObjects,selected,successors,usedIds,owners) ==
/\ selected \subseteq DamageBHand104(objects) /\ DOMAIN objects \subseteq usedIds /\ FreshSuccessors8(selected,successors,usedIds)
/\ \A id \in selected : objects[id].card \in DOMAIN owners /\ owners[objects[id].card] \in SetupPlayers
/\ LET sideB=={id \in selected : owners[objects[id].card]="SideB"}
sideA==selected \ sideB
first==DamageOwnerMoveMap104(objects,sideB,[id \in sideB |-> successors[id]],"SideB")
sideBFresh=={successors[id] : id \in sideB}
IN /\ CardBatchTransfer8(objects,first,sideB,[id \in sideB |-> successors[id]],usedIds,"SideBDiscard","Up",[id \in sideB |-> "discard"])
/\ CardBatchTransfer8(first,afterObjects,sideA,[id \in sideA |-> successors[id]],usedIds \cup sideBFresh,"SideADiscard","Up",[id \in sideA |-> "discard"])
/\ afterObjects=DamageOwnerMoveMap104(first,sideA,[id \in sideA |-> successors[id]],"SideA")Exact module download · Source bundle and reproduction instructions
Resolved project definitions: first, sideA, sideB, sideBFresh, DamageBHand104, DamageOwnerMoveMap104, CardBatchTransfer8, FreshSuccessors8, SetupPlayers
DamageCoreCounterRow104 · operator
reference-profile · input revision 2 · CC0 1.0
DamageCoreCounterRow104 ==
[card |-> "none",form |-> "Counter",kind |-> "PersistentCapacityLoss",zone |-> "SideBPersistentCapacityLoss",loc |-> 0,
deployed |-> FALSE,face |-> "Up",front |-> TRUE,activated |-> FALSE,host |-> 0,placedBy |-> "SideB",virtual |-> FALSE,
objectivePoints |-> 0,marks |-> {}]Exact module download · Source bundle and reproduction instructions
DamageCoreCounters104 · operator
reference-profile · input revision 2 · CC0 1.0
DamageCoreCounters104(packet,objects,afterObjects,added,usedIds) ==
LET amount==IF packet.damageType="PersistentCapacityHarm" THEN packet.amount ELSE 0
IN /\ DOMAIN added \subseteq (Nat \ {0}) \ usedIds
/\ \A id \in DOMAIN added : added[id]=DamageCoreCounterRow104
/\ BankMintProjection4(objects,afterObjects,added,amount,"PersistentCapacityLoss",usedIds,[kind |-> "Zone",zone |-> "Bank"],TRUE,TRUE)
/\ PersistentCapacityLossAccrual5(PersistentCapacityLossQuantity104(objects),PersistentCapacityLossQuantity104(afterObjects),amount)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: amount, DamageCoreCounterRow104, PersistentCapacityLossQuantity104, BankMintProjection4, PersistentCapacityLossAccrual5
DamageFirstNetThisTurn104 · operator
reference-profile · input revision 2 · CC0 1.0
DamageFirstNetThisTurn104(packet,actualDamageHistory) ==
packet.damageType="HarmClassA" /\ ~\E id \in DOMAIN actualDamageHistory : actualDamageHistory[id].tag="DamageSuffered" /\
actualDamageHistory[id].turnId=packet.turnId /\ actualDamageHistory[id].damageType="HarmClassA" /\ actualDamageHistory[id].amount>0Exact module download · Source bundle and reproduction instructions
DamageMaximumHandSize104 · operator
reference-profile · input revision 2 · CC0 1.0
DamageMaximumHandSize104(objects,effectiveOtherAdjustment) == MaximumHandSize5("SideB",PersistentCapacityLossQuantity104(objects),effectiveOtherAdjustment)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: PersistentCapacityLossQuantity104, MaximumHandSize5
DamageNetMeatRetireObservation104 · operator
reference-profile · input revision 2 · CC0 1.0
DamageNetMeatRetireObservation104(frame,objects,event,originalObject) ==
/\ DamageBatchReadyForConditionals104(frame,objects,event) /\ originalObject \in frame.selected
/\ frame.packet.damageType \in {"HarmClassA","HarmClassB"}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: DamageBatchReadyForConditionals104
DamageOmitted104 · operator
reference-profile · input revision 2 · CC0 1.0
DamageOmitted104(context,reference,world,id,receipt) ==
/\ context.phase="Resolving" /\ context.currentRef=reference /\ context.currentWorld=world.id /\ world.outcome="Playing"
/\ context.actualEffects=ActualExpectedEffects99(context.state.effects)
/\ id \in DOMAIN context.templates /\ context.templates[id].kind="Damage"
/\ id \notin DOMAIN context.actualEffects
/\ receipt=[tag |-> "NoActualDamagePacket",contextId |-> context.id,reference |-> reference,effectId |-> id,snapshotId |-> world.id]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ActualExpectedEffects99
DamageOwnerMoveMap104 · operator
reference-profile · input revision 2 · CC0 1.0
DamageOwnerMoveMap104(objects,selected,successors,owner) ==
LET fresh=={successors[id] : id \in selected}
IN [id \in (DOMAIN objects \ selected) \cup fresh |-> IF id \notin fresh THEN objects[id]
ELSE [objects[CHOOSE old \in selected : successors[old]=id] EXCEPT !.zone=owner \o "Discard",!.loc="discard",
!.deployed=FALSE,!.activated=FALSE,!.host=0,!.face="Up",!.marks={}]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: fresh
DamagePacketFromExpected104 · operator
reference-profile · input revision 2 · CC0 1.0
DamagePacketFromExpected104(context,reference,world,id,cardFacts,packet) ==
/\ context.phase="Resolving" /\ context.currentRef=reference /\ context.currentWorld=world.id /\ world.outcome="Playing"
/\ context.actualEffects=ActualExpectedEffects99(context.state.effects) /\ ExpectedEffectsValid99(context.actualEffects)
/\ id \in DOMAIN context.actualEffects
/\ LET effect==context.actualEffects[id]
IN /\ effect.kind="Damage" /\ effect.value>0 /\ effect.damageType \in DamageTypes104
/\ effect.damageVerb \in {"Do","Suffer"} /\ effect.actor=DamageResponsible104(effect.damageVerb)
/\ effect.baseOrigin=reference.source /\ effect.sourceCard \in DOMAIN cardFacts
/\ effect.sourceSHA=cardFacts[effect.sourceCard].sourceSHA
/\ (effect.damageVerb="Do" => cardFacts[effect.sourceCard].side="SideA")
/\ packet=[key |-> DamagePacketKey104(context,id),contextId |-> context.id,imminenceId |-> context.imminenceId,effectId |-> id,
reference |-> reference,snapshotId |-> world.id,turnId |-> world.turn.id,source |-> effect.baseOrigin,
sourceCard |-> effect.sourceCard,sourceSHA |-> effect.sourceSHA,verb |-> effect.damageVerb,
responsible |-> effect.actor,damageType |-> effect.damageType,amount |-> effect.value]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ActualExpectedEffects99, ExpectedEffectsValid99, effect, DamagePacketKey104, DamageResponsible104, DamageTypes104
DamagePacketKey104 · operator
reference-profile · input revision 2 · CC0 1.0
DamagePacketKey104(context,id) == <<context.id,context.imminenceId,id,context.currentRef.revision>>Exact module download · Source bundle and reproduction instructions
DamageRandomReceipt104 · operator
reference-profile · input revision 2 · CC0 1.0
DamageRandomReceipt104(packet,remaining,amount,selected,actor,receipt) ==
/\ selected \in RandomDamageChoices104(remaining,amount) /\ actor=packet.responsible
/\ receipt=[tag |-> "ActualRandomDamageSelection",packet |-> packet.key,reference |-> packet.reference,
population |-> remaining,amount |-> amount,selected |-> selected,actor |-> actor]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: RandomDamageChoices104
DamageResponsible104 · operator
reference-profile · input revision 2 · CC0 1.0
DamageResponsible104(verb) == CASE verb="Do" -> "SideA" [] verb="Suffer" -> "SideB" [] OTHER -> "UnsupportedDamageWording"Exact module download · Source bundle and reproduction instructions
DamageSufferedEvent104 · operator
reference-profile · input revision 2 · CC0 1.0
DamageSufferedEvent104(frame,batchId,successors) ==
[tag |-> "DamageSuffered",packet |-> frame.packet.key,reference |-> frame.packet.reference,source |-> frame.packet.source,
sourceCard |-> frame.packet.sourceCard,responsible |-> frame.packet.responsible,damageType |-> frame.packet.damageType,
amount |-> frame.packet.amount,turnId |-> frame.packet.turnId,batchId |-> batchId,
originalObjects |-> frame.selected,successors |-> successors,simultaneous |-> TRUE]Exact module download · Source bundle and reproduction instructions
DamageTypes104 · operator
reference-profile · input revision 2 · CC0 1.0
DamageTypes104 == {"HarmClassB","HarmClassA","PersistentCapacityHarm"}Exact module download · Source bundle and reproduction instructions
DeclineEscalatingResourceContestBoost108 · operator
reference-profile · input revision 2 · CC0 1.0
DeclineEscalatingResourceContestBoost108(before,after,world,player,announcement) ==
/\ EscalatingResourceContestCurrent108(before,world) /\ before.phase="ChooseBoost" /\ before.nextPlayer=player /\ player \in SetupPlayers /\ player \notin before.acted
/\ announcement=[tag |-> "EscalatingResourceContestBoostChoice",escalatingResourceContestId |-> before.id,player |-> player,mode |-> "Decline",amount |-> 0,viewers |-> SetupPlayers]
/\ after=[before EXCEPT !.phase="SetStrength",!.pendingPlayer=player,!.acted=@ \cup {player},!.boosts[player]=[mode |-> "Decline",amount |-> 0,transaction |-> 0]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: EscalatingResourceContestCurrent108, SetupPlayers
DetermineEscalatingResourceContest108 · operator
reference-profile · input revision 2 · CC0 1.0
DetermineEscalatingResourceContest108(before,after,world,afterObjects,eventId,event) ==
/\ EscalatingResourceContestCurrent108(before,world) /\ before.phase="Determine" /\ before.acted=SetupPlayers /\ \A p \in SetupPlayers : before.strengths[p].set
/\ eventId \in (Nat \ {0}) \ world.eventIds /\ afterObjects=world.objects
/\ LET result==IF before.strengths["SideA"].value>before.strengths["SideB"].value THEN "Successful" ELSE "Unsuccessful" IN
/\ event=[id |-> eventId,kind |-> "EscalatingResourceContestResult",escalatingResourceContestId |-> before.id,actor |-> "SideA",source |-> before.packet.source,reference |-> before.caller,
snapshotId |-> world.id,result |-> result,escalatingResourceContestStrength |-> before.strengths["SideA"].value,linkStrength |-> before.strengths["SideB"].value]
/\ after=[before EXCEPT !.phase="Determined",!.point="ProcedureCode0cb35cf3f8e6",!.result=result,!.resultEvent=event]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: result, EscalatingResourceContestCurrent108, SetupPlayers
DiscoverOpenInformation102 · operator
reference-profile · input revision 2 · CC0 1.0
DiscoverOpenInformation102(facts,player,requested,responses,currentSnapshot) ==
/\ player \in SetupPlayers /\ requested \subseteq DOMAIN facts
/\ \A id \in requested : facts[id].viewers=SetupPlayers /\ facts[id].snapshot=currentSnapshot
/\ responses=[id \in requested |-> [value |-> facts[id].value,snapshot |-> currentSnapshot]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: SetupPlayers
DividendApplicationSupport1013 · operator
reference-profile · input revision 2 · CC0 1.0
DividendApplicationSupport1013(plan,context) ==
IF context.templates#DividendEffects1013(plan) THEN "RequiresDividendsCompilerAdapter"
ELSE IF context.state.effects#DividendEffects1013(plan) \/ context.actualEffects#ActualExpectedEffects99(context.state.effects) THEN "RequiresModifiedPlacementAdapter"
ELSE "SupportedOrdinaryPlacementApplications"Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ActualExpectedEffects99, DividendEffects1013
DividendBasis1013 · operator
reference-profile · input revision 2 · CC0 1.0
DividendBasis1013(world,instance,event,basis) ==
/\ DividendEventSupport1013(event)="SupportedOrdinaryObjectiveCompletion" /\ instance.member.id \in DOMAIN world.conditionalLedger.instances /\ instance=world.conditionalLedger.instances[instance.member.id]
/\ instance.occurrence=event.id /\ instance.definition.source=ObjectAbilitySource9(event.object) /\ instance.definitionCopy.syntax.source=ObjectAbilitySource9(event.object)
/\ event.id \in DOMAIN world.objectiveCompletionEvents /\ event.scored=world.objectiveCompletionEvents[event.id] /\ event.object=event.scored.object
/\ instance.definition \in DOMAIN world.dividendDefinitions /\ world.dividendDefinitions[instance.definition].definition=instance.definitionCopy
/\ "WhenScored" \in ConditionalClasses96(instance.definitionCopy)
/\ event.scored.objectiveCompletionId \in DOMAIN world.dividendBindings /\ event.scored.binding=world.dividendBindings[event.scored.objectiveCompletionId]
/\ LET binding==world.dividendBindings[event.scored.objectiveCompletionId] capture==world.dividendCaptures[event.scored.objectiveCompletionId]
IN /\ capture.tag="DividendObjectiveCompletionBegin" /\ capture.objectiveCompletionId=binding.objectiveCompletionId /\ capture.oldObject=binding.oldObject /\ capture.physical=binding.physical
/\ world.dividendDefinitions[instance.definition].card=capture.sourceCard /\ world.dividendDefinitions[instance.definition].sourceSHA=capture.sourceSHA
/\ capture.beginSnapshot=binding.beforeSnapshot /\ binding.newObject=event.object /\ event.scored.kind="ObjectivePlacementd" /\ event.scored.actor="SideA"
/\ basis=[tag |-> "DividendCapturedBasis",instance |-> instance.member.id,occurrence |-> event.id,objectiveCompletionId |-> capture.objectiveCompletionId,target |-> binding.newObject,
physical |-> binding.physical,sourceCard |-> capture.sourceCard,sourceSHA |-> capture.sourceSHA,requirement |-> capture.requirement,progress |-> capture.progress,
repetitions |-> capture.excess,multiplier |-> capture.multiplier]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ConditionalClasses96, ObjectAbilitySource9, binding, capture, DividendEventSupport1013
DividendBeginSupport1013 · operator
reference-profile · input revision 2 · CC0 1.0
DividendBeginSupport1013(begin) ==
CASE begin.mode="Replay" -> "RequiresAsIfObjectiveCompletionCaptureAdapter"
[] begin.mode#"ObjectiveCompletion" -> "NotAnOrdinaryObjectiveCompletion"
[] begin.costProfile#"OrdinaryCostlessObjectiveCompletion" -> "RequiresAdditionalCostCapturePointAdapter"
[] OTHER -> "SupportedObjectiveCompletionBegin"Exact module download · Source bundle and reproduction instructions
DividendCleanupSupport1013 · operator
reference-profile · input revision 2 · CC0 1.0
DividendCleanupSupport1013(world,capture) ==
IF \E id \in DOMAIN world.objects : world.objects[id].host=capture.oldObject /\ world.objects[id].kind#"Progress" THEN "RequiresOtherHostedCleanupAdapter"
ELSE IF \E id \in capture.physicalProgress : ~BankPhysicalToken4(world.objects[id]) THEN "RequiresConvertedCounterCleanupAdapter"
ELSE "SupportedNativeProgressCleanup"Exact module download · Source bundle and reproduction instructions
Resolved project definitions: BankPhysicalToken4
DividendEffects1013 · operator
reference-profile · input revision 2 · CC0 1.0
DividendEffects1013(plan) ==
[id \in 1..plan.basis.repetitions |-> [id |-> id,kind |-> "PlaceCounters",actor |-> "SideA",value |-> plan.basis.multiplier,target |-> plan.basis.target,counterKind |-> "Objective",counterKinds |-> {"Objective"},
loadDefinition |-> 0,sourceCard |-> plan.basis.sourceCard,sourceSHA |-> plan.basis.sourceSHA,baseOrigin |-> plan.reference.source,dividendInstance |-> plan.instance,application |-> id]]Exact module download · Source bundle and reproduction instructions
DividendEventSupport1013 · operator
reference-profile · input revision 2 · CC0 1.0
DividendEventSupport1013(event) ==
IF event.kind#"ObjectivePlacementd" THEN "NotAScoredOccurrence" ELSE IF event.scopeKind="Ability" THEN "RequiresAsIfObjectiveCompletionCaptureAdapter" ELSE "SupportedOrdinaryObjectiveCompletion"Exact module download · Source bundle and reproduction instructions
DividendFact1013 · operator
reference-profile · input revision 2 · CC0 1.0
DividendFact1013(card,cardFacts) ==
card \in DividendSources1013 /\ card \in DOMAIN cardFacts /\ DividendFacts1013!DividendPrintedFacts1013[card].sourceSHA=cardFacts[card].sourceSHAExact module download · Source bundle and reproduction instructions
Resolved project definitions: DividendFacts1013!DividendPrintedFacts1013, DividendSources1013
DividendFacts1013!DividendPrintedFacts1013 · operator
reference-profile · input revision 2 · CC0 1.0
Instantiated alias. This exact declaration supplies its substitutions; original operator body: DividendPrintedFacts1013
DividendFacts1013 == INSTANCE SettlementFactsExact module download · Source bundle and reproduction instructions
DividendObjectiveCompletionMap1013 · operator
reference-profile · input revision 2 · CC0 1.0
DividendObjectiveCompletionMap1013(objects,old,new) ==
ReplacementOverlay99(Without101(objects,{old}),[id \in {new} |-> [objects[old] EXCEPT !.zone="SideAObjectiveCompletion",!.deployed=FALSE,!.face="Up",!.loc=0,!.host=0,!.activated=FALSE,!.marks={},!.area="NoValue",!.targetSite="NoValue"]])Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, Without101
DividendPhysicalProgress1013 · operator
reference-profile · input revision 2 · CC0 1.0
DividendPhysicalProgress1013(world,host) ==
{id \in DOMAIN world.objects : world.objects[id].form="Counter" /\ world.objects[id].kind="Progress" /\ world.objects[id].host=host /\ world.objects[id].zone=world.objects[host].zone}Exact module download · Source bundle and reproduction instructions
DividendPlanBound1013 · operator
reference-profile · input revision 2 · CC0 1.0
DividendPlanBound1013(world,plan) ==
/\ plan.instance \in DOMAIN world.dividendBodyAnchors
/\ world.dividendBodyAnchors[plan.instance]=[basis |-> plan.basis,reference |-> plan.reference]
/\ plan.reference.source=ObjectAbilitySource9(plan.basis.target)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ObjectAbilitySource9
DividendSources1013 · operator
reference-profile · input revision 2 · CC0 1.0
DividendSources1013 == DOMAIN DividendFacts1013!DividendPrintedFacts1013Exact module download · Source bundle and reproduction instructions
Resolved project definitions: DividendFacts1013!DividendPrintedFacts1013
DividendTargetStatus1013 · operator
reference-profile · input revision 2 · CC0 1.0
DividendTargetStatus1013(world,plan) ==
IF plan.basis.target \notin DOMAIN world.objects THEN "ReferencedObjectGone"
ELSE IF world.objects[plan.basis.target].form#"Card" \/ world.objects[plan.basis.target].zone \notin {"Play","SideAObjectiveCompletion","SideBObjectiveCompletion"} THEN "UnhostableReferencedObject"
ELSE IF world.objects[plan.basis.target].card#plan.basis.physical THEN "DifferentPhysicalObject" ELSE "SupportedPlacementTarget"Exact module download · Source bundle and reproduction instructions
DrainEscalatingResourceContestCheckpoint108 · operator
reference-profile · input revision 2 · CC0 1.0
DrainEscalatingResourceContestCheckpoint108(before,after,world,cardFacts,cp,ledger,stack,order) ==
/\ EscalatingResourceContestCurrent108(before,world) /\ before.phase \in {"InitialCheckpoint","BoostCheckpoint"}
/\ cp.id \in DOMAIN world.checkpointFrames /\ world.checkpointFrames[cp.id]=cp /\ ledger=world.checkpointLedger
/\ cp.caller=EscalatingResourceContestCheckpointCaller108(before) /\ cp.id \notin before.checkpoints
/\ CheckpointDrained103(cp,ledger,stack)
/\ IF before.phase="InitialCheckpoint" THEN
/\ EscalatingResourceContestOrder108(world,before,cardFacts,order)
/\ after=[before EXCEPT !.phase="ChooseBoost",!.point=IF order[1]="SideA" THEN "ProcedureCode083016920358" ELSE "ProcedureCode785a8b2e5de4",!.order=order,!.nextPlayer=order[1],!.checkpoints=@ \cup {cp.id}]
ELSE /\ order=before.order
/\ after=[before EXCEPT !.phase="SetStrength",!.checkpoints=@ \cup {cp.id}]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CheckpointDrained103, EscalatingResourceContestCheckpointCaller108, EscalatingResourceContestCurrent108, EscalatingResourceContestOrder108
DrainExposureMarkerAction105 · operator
reference-profile · input revision 2 · CC0 1.0
DrainExposureMarkerAction105(before,after,world,cp,ledger,stack) ==
/\ before.phase \in {"BaseCostCheckpoint","AdditionalCostCheckpoint","EffectCheckpoint"} /\ world.outcome="Playing"
/\ LET scope==CASE before.phase="BaseCostCheckpoint" -> "BaseCost" [] before.phase="AdditionalCostCheckpoint" -> "AdditionalCost" [] OTHER -> "Effect"
IN /\ cp.caller=ExposureMarkerCheckpointCaller105(before,scope) /\ cp.snapshotId=world.id /\ CheckpointDrained103(cp,ledger,stack)
/\ IF scope="BaseCost" THEN
/\ ActionEffectsBegin5(before.action,after.action,TRUE) /\ after=[before EXCEPT !.phase="Targets",!.action=after.action]
ELSE IF scope="AdditionalCost" THEN after=[before EXCEPT !.phase="EffectReady"]
ELSE /\ ActionComplete5(before.action,after.action,TRUE) /\ after=[before EXCEPT !.phase="Complete",!.action=after.action]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: scope, CheckpointDrained103, ExposureMarkerCheckpointCaller105, ActionComplete5, ActionEffectsBegin5
EligiblePrintedLinkSources107 · operator
reference-profile · input revision 2 · CC0 1.0
EligiblePrintedLinkSources107(world) ==
{id \in PrintedLinkObjectIds107(world) : world.objects[id].deployed /\ world.objects[id].zone="Play" /\ world.objects[id].face="Up" /\
world.controllers[id]="SideB" /\ world.printedLinkAbilities[id] \in world.activeAbilities}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: PrintedLinkObjectIds107
EmptyLink109 · operator
reference-profile · input revision 2 · CC0 1.0
EmptyLink109(world,cardFacts,link) ==
/\ link.id \in DOMAIN world.loadLinks /\ link=world.loadLinks[link.id] /\ link.kind \in CounterKinds101 /\ link.loadDefinition \in Nat \ {0}
/\ link.host \in DOMAIN world.objects /\ world.objects[link.host].form="Card" /\ world.objects[link.host].card=link.physical
/\ LinkDefinition107(world,world.objects[link.host])=link.card /\ link.card \in DOMAIN cardFacts /\ link.sourceSHA=cardFacts[link.card].sourceSHA
/\ ConditionalDefinitionValid96(link.emptyDefinition) /\ link.emptyDefinition.primaryKind="Static"
/\ link.emptyDefinition.syntax.source=ObjectAbilitySource9(link.host)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ConditionalDefinitionValid96, ObjectAbilitySource9, CounterKinds101, LinkDefinition107
EmptyStaticTruth109 · operator
reference-profile · input revision 2 · CC0 1.0
EmptyStaticTruth109(world,cardFacts,link,cp,read,truth) ==
/\ ReadEmpty109(world,cardFacts,link,read) /\ world.id=cp.beginSnapshot.id /\ cp.beginSnapshot.loadState=LoadState109(world)
/\ ConditionalKey96(link.emptyDefinition) \in DOMAIN cp.beginSnapshot.definitions
/\ cp.beginSnapshot.definitions[ConditionalKey96(link.emptyDefinition)]=link.emptyDefinition
/\ truth=[tag |-> "ConditionalStaticTruth",ability |-> link.emptyDefinition.syntax.id,source |-> link.emptyDefinition.syntax.source,
checkpointId |-> cp.id,snapshotId |-> cp.beginSnapshot.id,condition |-> link.emptyDefinition.primaryCondition,holds |-> read.empty]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ConditionalKey96, LoadState109, ReadEmpty109
EscalatingResourceContestAssociatedBodyGate108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestAssociatedBodyGate108(frame,a) ==
frame.result \in {"Successful","Unsuccessful"} /\ (a.bodyCondition.kind="NoValue" \/ (a.bodyCondition.kind="EscalatingResourceContestStrengthAtLeast" /\ frame.resultEvent.escalatingResourceContestStrength>=a.bodyCondition.amount))Exact module download · Source bundle and reproduction instructions
EscalatingResourceContestAssociatedCandidate108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestAssociatedCandidate108(frame,a,event,stipulation) ==
/\ EscalatingResourceContestAssociatedOccurrence108(frame,a,event,event.snapshot)
/\ stipulation=EscalatingResourceContestAssociatedStipulation108(frame,a,event)
/\ TriggerPattern96(a.definition,event) /\ TriggerStipulations96(a.definition,event,stipulation)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: TriggerPattern96, TriggerStipulations96, EscalatingResourceContestAssociatedOccurrence108, EscalatingResourceContestAssociatedStipulation108
EscalatingResourceContestAssociatedInstructionCondition108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestAssociatedInstructionCondition108(frame,a,event,instance,condition) ==
/\ EscalatingResourceContestAssociatedOccurrence108(frame,a,event,event.snapshot)
/\ instance.occurrence=event.id /\ instance.definition=ConditionalKey96(a.definition) /\ instance.definitionCopy=a.definition
/\ condition=[tag |-> "EscalatingResourceContestAssociatedInstructionCondition",escalatingResourceContestId |-> frame.id,occurrence |-> event.id,
definition |-> instance.definition,instance |-> instance.member.id,holds |-> EscalatingResourceContestAssociatedBodyGate108(frame,a)]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ConditionalKey96, EscalatingResourceContestAssociatedBodyGate108, EscalatingResourceContestAssociatedOccurrence108
EscalatingResourceContestAssociatedMatches108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestAssociatedMatches108(frame,a) ==
frame.result \in {"Successful","Unsuccessful"} /\
(a.trigger="AnyResult" \/ (a.trigger="Successful" /\ frame.result="Successful") \/ (a.trigger="Unsuccessful" /\ frame.result="Unsuccessful"))Exact module download · Source bundle and reproduction instructions
EscalatingResourceContestAssociatedOccurrence108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestAssociatedOccurrence108(frame,a,event,snapshot) ==
/\ a.id \in DOMAIN frame.packet.associations /\ a=frame.packet.associations[a.id]
/\ frame.result \in {"Successful","Unsuccessful"} /\ event.id \in Nat \ {0}
/\ event.rawResultId=frame.resultEvent.id /\ event.escalatingResourceContestId=frame.id
/\ event.kind="EscalatingResourceContestAssociatedResult" /\ event.actor="SideA" /\ event.side="SideA" /\ event.snapshot=snapshot
/\ snapshot.id=frame.resultEvent.snapshotId /\ event.scopeKind="Ability" /\ event.scopeDefinition=ConditionalKey96(a.definition)
/\ event.escalatingResourceContestStrength=frame.resultEvent.escalatingResourceContestStrength /\ event.linkStrength=frame.resultEvent.linkStrength /\ event.result=frame.result
/\ event.object=frame.packet.source.objectExact module download · Source bundle and reproduction instructions
Resolved project definitions: ConditionalKey96
EscalatingResourceContestAssociatedStipulation108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestAssociatedStipulation108(frame,a,event) ==
[tag |-> "ConditionalTriggerStipulations",ability |-> a.definition.syntax.id,source |-> a.definition.syntax.source,
occurrence |-> event.id,snapshotId |-> event.snapshot.id,results |-> [id \in a.definition.triggerRequirements |-> EscalatingResourceContestAssociatedMatches108(frame,a)]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: EscalatingResourceContestAssociatedMatches108
EscalatingResourceContestBoostRule108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestBoostRule108(player) == RuleAbilitySource9(IF player="SideA" THEN "ProcedureCode000048c944c1" ELSE "ProcedureCode306f617c02aa")Exact module download · Source bundle and reproduction instructions
Resolved project definitions: RuleAbilitySource9
EscalatingResourceContestCheckpointCaller108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestCheckpointCaller108(frame) ==
IF frame.phase="InitialCheckpoint" THEN InstructionPauseCaller911([id |-> frame.instance],frame.caller,"EscalatingResourceContest",frame,"ProcedureCoded1e36ce96789")
ELSE [kind |-> "EscalatingResourceContestBoostCostCheckpoint",escalatingResourceContestId |-> frame.id,instance |-> frame.instance,caller |-> frame.caller,
player |-> frame.pendingPlayer,transactionId |-> frame.boosts[frame.pendingPlayer].transaction,point |-> frame.point]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InstructionPauseCaller911
EscalatingResourceContestContextualLink108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestContextualLink108(frame,world,cardFacts,base,declarations,read,value) ==
/\ ReadSideBLink107(world,cardFacts,base,declarations,read)
/\ DOMAIN world.escalatingResourceContestLinkPolicies=IF frame.ordinal=1 THEN EscalatingResourceContestRoleIds108(world,"EscalatingResourceContestLinkZero","Specimen0154") ELSE {}
/\ \A id \in DOMAIN world.escalatingResourceContestLinkPolicies :
LET p==world.escalatingResourceContestLinkPolicies[id] IN
/\ p.snapshotId=world.id /\ p.escalatingResourceContestId=frame.id /\ p.value=0 /\ p.ability=id
/\ EscalatingResourceContestSourceRead108(world,p.source,p.sourceObject,p.sourceSHA,id,cardFacts)
/\ p.sourceObject.zone="SideAObjectiveCompletion" /\ LinkDefinition107(world,p.sourceObject)="Specimen0154"
/\ value=IF DOMAIN world.escalatingResourceContestLinkPolicies={} THEN read.value ELSE 0Exact module download · Source bundle and reproduction instructions
Resolved project definitions: p, EscalatingResourceContestRoleIds108, EscalatingResourceContestSourceRead108, LinkDefinition107, ReadSideBLink107
EscalatingResourceContestCurrent108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestCurrent108(frame,world) ==
frame.id \in DOMAIN world.escalatingResourceContestFrames /\ world.escalatingResourceContestFrames[frame.id]=frame /\ ~frame.complete /\ ~frame.returned /\ world.outcome="Playing" /\ world.turn.id=frame.turnIdExact module download · Source bundle and reproduction instructions
EscalatingResourceContestDuringTraversal108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestDuringTraversal108(world) == DuringTraversal6(world.traversal) /\ TimingRef9("SchemaAtom138",world.traversal.id) \in world.insideExact module download · Source bundle and reproduction instructions
Resolved project definitions: TimingRef9, DuringTraversal6
EscalatingResourceContestInitialFrame108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestInitialFrame108(id,packet,turnId,ordinal) ==
[tag |-> "ActualEscalatingResourceContestProcedure",id |-> id,instance |-> packet.reference.abilityInstance,caller |-> packet.reference,packet |-> packet,
turnId |-> turnId,ordinal |-> ordinal,phase |-> "InitialCheckpoint",point |-> "ProcedureCoded1e36ce96789",order |-> <<>>,nextPlayer |-> "NoValue",acted |-> {},
boosts |-> [p \in SetupPlayers |-> [mode |-> "NoValue",amount |-> 0,transaction |-> 0]],
strengths |-> [p \in SetupPlayers |-> [set |-> FALSE,value |-> 0]],pendingPlayer |-> "NoValue",checkpoints |-> {},
result |-> "Undetermined",resultEvent |-> [id |-> 0],complete |-> FALSE,returned |-> FALSE]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: SetupPlayers
EscalatingResourceContestOmitted108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestOmitted108(context,reference,world,id) ==
context.phase="Resolving" /\ context.currentRef=reference /\ context.currentWorld=world.id /\ context.actualEffects=ActualExpectedEffects99(context.state.effects) /\
id \in DOMAIN context.templates /\ context.templates[id].kind="EscalatingResourceContest" /\ id \notin DOMAIN context.actualEffectsExact module download · Source bundle and reproduction instructions
Resolved project definitions: ActualExpectedEffects99
EscalatingResourceContestOrder108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestOrder108(world,frame,cardFacts,order) ==
/\ DOMAIN world.escalatingResourceContestOrderPolicies=IF EscalatingResourceContestDuringTraversal108(world) THEN EscalatingResourceContestRoleIds108(world,"EscalatingResourceContestOrder","Specimen0231") ELSE {}
/\ \A id \in DOMAIN world.escalatingResourceContestOrderPolicies :
LET p==world.escalatingResourceContestOrderPolicies[id] IN
/\ p.snapshotId=world.id /\ p.escalatingResourceContestId=frame.id /\ p.order= <<"SideB","SideA">> /\ p.ability=id
/\ EscalatingResourceContestSourceRead108(world,p.source,p.sourceObject,p.sourceSHA,id,cardFacts)
/\ world.controllers[p.source.object]="SideA" /\ LinkDefinition107(world,p.sourceObject)="Specimen0231"
/\ order=IF DOMAIN world.escalatingResourceContestOrderPolicies={} THEN <<"SideA","SideB">> ELSE <<"SideB","SideA">>Exact module download · Source bundle and reproduction instructions
Resolved project definitions: p, EscalatingResourceContestDuringTraversal108, EscalatingResourceContestRoleIds108, EscalatingResourceContestSourceRead108, LinkDefinition107
EscalatingResourceContestPacket108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestPacket108(context,reference,world,id,cardFacts,packet) ==
/\ context.phase="Resolving" /\ context.currentRef=reference /\ context.currentWorld=world.id /\ world.outcome="Playing"
/\ context.actualEffects=ActualExpectedEffects99(context.state.effects) /\ id \in DOMAIN context.actualEffects /\ id \in DOMAIN context.templates
/\ context.templates[id].kind="EscalatingResourceContest"
/\ LET effect==context.actualEffects[id] IN
/\ effect.kind="EscalatingResourceContest" /\ effect.value \in Int /\ effect.actor="SideA" /\ effect.baseOrigin=reference.source
/\ effect.sourceCard=context.templates[id].sourceCard /\ effect.sourceSHA=context.templates[id].sourceSHA
/\ effect.sourceCard \in DOMAIN cardFacts /\ effect.sourceSHA=cardFacts[effect.sourceCard].sourceSHA
/\ \A clause \in DOMAIN effect.associations :
LET a==effect.associations[clause] IN
/\ a.id=clause /\ a.trigger \in {"Successful","Unsuccessful","AnyResult"}
/\ a.source=reference.source /\ a.sourceSHA=effect.sourceSHA
/\ ConditionalDefinitionValid96(a.definition) /\ a.definition.syntax.source=reference.source
/\ a.definition.primaryKind="Trigger" /\ a.definition.trigger.kinds={"EscalatingResourceContestAssociatedResult"}
/\ a.definition.triggerRequirements=IF a.trigger="AnyResult" THEN {} ELSE {1}
/\ a.bodyCondition.kind \in {"NoValue","EscalatingResourceContestStrengthAtLeast"}
/\ (a.bodyCondition.kind="EscalatingResourceContestStrengthAtLeast" => a.bodyCondition.amount \in Int)
/\ packet=[key |-> <<context.id,reference,id>>,contextId |-> context.id,reference |-> reference,effectId |-> id,
source |-> effect.baseOrigin,sourceCard |-> effect.sourceCard,sourceSHA |-> effect.sourceSHA,base |-> effect.value,associations |-> effect.associations]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ActualExpectedEffects99, ConditionalDefinitionValid96, a, effect
EscalatingResourceContestPermissionUseSources108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestPermissionUseSources108(payment,permissions) ==
CounterPermissionUseSources9(payment,[id \in DOMAIN permissions |-> [source |-> permissions[id].source,paymentId |-> permissions[id].paymentId,allowsPayment |-> TRUE,paidCounters |-> permissions[id].counters \cap payment.paidCounterIds]])Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CounterPermissionUseSources9
EscalatingResourceContestPoolIds108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestPoolIds108(objects,player) ==
IF player="SideB" THEN BaseSideBPoolIds106(objects)
ELSE {id \in DOMAIN objects : objects[id].form="Counter" /\ objects[id].kind="ResourceUnit" /\ objects[id].host=0 /\
(objects[id].zone="SideAResourceUnits" \/ (objects[id].zone="Play" /\ objects[id].resourceUnitLocation="SideAPool"))}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: BaseSideBPoolIds106
EscalatingResourceContestRecurringPermission108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestRecurringPermission108(frame,world,payer,transaction,p,cardFacts) ==
/\ EscalatingResourceContestCurrent108(frame,world)
/\ p.escalatingResourceContestId=frame.id /\ p.snapshotId=world.id /\ p.player=payer /\ p.paymentId=transaction /\ p.purpose="EscalatingResourceContest"
/\ EscalatingResourceContestSourceRead108(world,p.source,p.sourceObject,p.sourceSHA,p.ability,cardFacts)
/\ world.controllers[p.source.object]=payer /\ world.abilityRoles[p.ability]="EscalatingResourceContestPermission"
/\ LinkDefinition107(world,p.sourceObject)=IF payer="SideA" THEN "Specimen0184" ELSE "Specimen0056"
/\ \A id \in p.counters : id \in DOMAIN world.objects /\ world.objects[id].form="Counter" /\ world.objects[id].kind="ResourceUnit" /\
~world.objects[id].virtual /\ world.objects[id].host=p.source.object /\ world.controllers[id]=payerExact module download · Source bundle and reproduction instructions
Resolved project definitions: EscalatingResourceContestCurrent108, EscalatingResourceContestSourceRead108, LinkDefinition107
EscalatingResourceContestRoleIds108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestRoleIds108(world,role,definition) ==
{id \in world.activeAbilities \cap DOMAIN world.abilityRoles \cap DOMAIN world.abilitySources :
world.abilityRoles[id]=role /\ world.abilitySources[id].kind="Object" /\ world.abilitySources[id].object \in DOMAIN world.objects /\
LinkDefinition107(world,world.objects[world.abilitySources[id].object])=definition}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: LinkDefinition107
EscalatingResourceContestSourceRead108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestSourceRead108(world,source,object,sourceSHA,ability,cardFacts) ==
/\ source.kind="Object" /\ source.object \in DOMAIN world.objects /\ object=world.objects[source.object]
/\ object.card \in DOMAIN world.definitions /\ LinkDefinition107(world,object) \in DOMAIN cardFacts
/\ sourceSHA=cardFacts[LinkDefinition107(world,object)].sourceSHA
/\ ability \in world.activeAbilities /\ ability \in DOMAIN world.abilitySources /\ world.abilitySources[ability]=source
/\ DefaultActive([object EXCEPT !.card=LinkDefinition107(world,object)],world.started,cardFacts)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: LinkDefinition107, DefaultActive
EstablishEscalatingResourceContestStrength108 · operator
reference-profile · input revision 2 · CC0 1.0
EstablishEscalatingResourceContestStrength108(before,after,world,cardFacts,base,declarations,linkRead,contextualLink) ==
/\ EscalatingResourceContestCurrent108(before,world) /\ before.phase="SetStrength" /\ before.pendingPlayer \in before.acted
/\ LET player==before.pendingPlayer
value==IF player="SideA" THEN before.packet.base+before.boosts[player].amount ELSE contextualLink+before.boosts[player].amount
IN /\ ~before.strengths[player].set
/\ IF player="SideB" THEN EscalatingResourceContestContextualLink108(before,world,cardFacts,base,declarations,linkRead,contextualLink) ELSE contextualLink=0
/\ after=[before EXCEPT !.strengths[player]=[set |-> TRUE,value |-> value],!.pendingPlayer="NoValue",
!.phase=IF before.acted=SetupPlayers THEN "Determine" ELSE "ChooseBoost",
!.nextPlayer=IF before.acted=SetupPlayers THEN "NoValue" ELSE before.order[2],
!.point=IF before.acted=SetupPlayers THEN "ProcedureCode42d1fb0bb9d2" ELSE IF before.order[2]="SideA" THEN "ProcedureCode083016920358" ELSE "ProcedureCode785a8b2e5de4"]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: player, value, EscalatingResourceContestContextualLink108, EscalatingResourceContestCurrent108, SetupPlayers
ExampleFamily009SelectionShape104 · operator
reference-profile · input revision 2 · CC0 1.0
ExampleFamily009SelectionShape104(packet,authority,actualDamageHistory) ==
/\ authority.card="Specimen0051" /\ DamageFirstNetThisTurn104(packet,actualDamageHistory)
/\ authority.slots[1]=[mode |-> "Choose",actor |-> "SideA"]
/\ \A i \in 2..Len(authority.slots) : authority.slots[i]=[mode |-> "Random",actor |-> packet.responsible]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: DamageFirstNetThisTurn104
ExampleFamily011ExposureMarkerPermission105 · operator
reference-profile · input revision 2 · CC0 1.0
ExampleFamily011ExposureMarkerPermission105(world,kind,transaction,permission,cardFacts) ==
/\ kind="RemoveExposureMarker" /\ permission.action=kind /\ permission.player="SideB" /\ permission.paymentId=transaction
/\ permission.snapshotId=world.id /\ permission.allowsPayment /\ permission.sourceObject.card="Specimen0058"
/\ ExposureMarkerSourceBound105(world,permission.source,permission.sourceObject,permission.sourceSHA,cardFacts)
/\ \A id \in permission.paidCounters : id \in DOMAIN world.objects /\ BankPhysicalToken4(world.objects[id])
/\ world.objects[id].kind="ResourceUnit" /\ world.objects[id].host=permission.source.object /\ world.controllers[id]="SideB"Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ExposureMarkerSourceBound105, BankPhysicalToken4
ExampleFamily049DeployedReference1010 · operator
reference-profile · input revision 2 · CC0 1.0
ExampleFamily049DeployedReference1010(beforeObjects,afterObjects,old,new,successors,used,source,deployReference,reference) ==
/\ deployReference.source=source /\ old \in DOMAIN beforeObjects /\ beforeObjects[old].zone="SideBHand"
/\ successors=[id \in {old} |-> new]
/\ CardBatchTransfer8(beforeObjects,afterObjects,{old},successors,used,"Play","Up",[id \in {old} |-> 0])
/\ reference=[tag |-> "InstructionDeployedObject",source |-> source,fromInstruction |-> deployReference,oldObject |-> old,object |-> new,physical |-> beforeObjects[old].card]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CardBatchTransfer8
ExampleFamily094ExposureMarkerCostShape105 · operator
reference-profile · input revision 2 · CC0 1.0
ExampleFamily094ExposureMarkerCostShape105(kind,sourceObject,chosenReduction,delta) ==
/\ sourceObject.card="Specimen0233"
/\ IF sourceObject.front THEN delta=IF kind="RemoveExposureMarker" THEN 1 ELSE 0
ELSE delta=IF kind="RetireResource" /\ chosenReduction THEN -2 ELSE 0Exact module download · Source bundle and reproduction instructions
ExecuteBankHostedCounterInstruction109 · operator
reference-profile · input revision 2 · CC0 1.0
ExecuteBankHostedCounterInstruction109(context,reference,world,id,cardFacts,afterObjects,afterHistory,afterCompleted,selected,added,afterNext,eventId,event) ==
/\ CounterInstruction109(context,reference,world,id,cardFacts)
/\ HostedCounterExecutionDisposition109(world,context.actualEffects[id])="Supported"
/\ eventId \in (Nat \ {0}) \ (world.counterEventIds \cup DOMAIN world.loadHistory)
/\ CounterInstructionKey109(context,reference,id) \notin world.completedCounterInstructions
/\ LET e==context.actualEffects[id]
first==world.nextCounterObject
created==IF e.kind="RemoveCounters" THEN {} ELSE first..(first+e.value-1)
history==[tag |-> "CompletedLoad",host |-> e.target,kind |-> e.counterKind,loadDefinition |-> e.loadDefinition,
reference |-> reference,sourceCard |-> e.sourceCard,sourceSHA |-> e.sourceSHA,amount |-> e.value,createdCounterIds |-> created,snapshotId |-> world.id]
IN /\ IF e.kind="RemoveCounters" THEN
/\ added=[emptyId \in {} |-> emptyId] /\ afterNext=first
/\ selected \subseteq MovableHostedTokens109(world.objects,e.target,e.counterKind)
/\ Cardinality(selected)=MinOf(e.value,Cardinality(MovableHostedTokens109(world.objects,e.target,e.counterKind)))
/\ BankSpendReturn4(world.objects,afterObjects,selected,TRUE)
ELSE
/\ selected={} /\ first \in Nat \ {0} /\ created \cap world.usedObjects={}
/\ added=[i \in created |-> LoadedCounterToken109(e.counterKind,world.objects[e.target].zone,e.target,e.actor)]
/\ afterNext=first+e.value
/\ BankMintProjection4(world.objects,afterObjects,added,e.value,e.counterKind,world.usedObjects,BankDefaultSource4(IF e.kind="LoadCounters" THEN "Load" ELSE "Place",FALSE,[kind |-> "NoValue"]),TRUE,TRUE)
/\ afterHistory=IF e.kind="LoadCounters" THEN ReplacementOverlay99(world.loadHistory,[i \in {eventId} |-> history]) ELSE world.loadHistory
/\ afterCompleted=world.completedCounterInstructions \cup {CounterInstructionKey109(context,reference,id)}
/\ event=[tag |-> "HostedCounterInstructionComplete",id |-> eventId,operation |-> e.kind,reference |-> reference,host |-> e.target,
kind |-> e.counterKind,amount |-> e.value,selected |-> selected,created |-> created,snapshotId |-> world.id,complete |-> TRUE]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, created, e, first, history, CounterInstruction109, CounterInstructionKey109, HostedCounterExecutionDisposition109, LoadedCounterToken109, MovableHostedTokens109, MinOf, BankDefaultSource4, BankMintProjection4, BankSpendReturn4
ExpiredRetainedPlayIds103 · operator
reference-profile · input revision 2 · CC0 1.0
ExpiredRetainedPlayIds103(retentions,objects,liveIds) ==
{retentions[id].source : id \in {i \in DOMAIN retentions \ liveIds : retentions[i].source \in DOMAIN objects /\ objects[retentions[i].source].zone="Play"}}Exact module download · Source bundle and reproduction instructions
ExposureMarkerActionActor105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerActionActor105(kind) == IF kind="RetireResource" THEN "SideA" ELSE "SideB"Exact module download · Source bundle and reproduction instructions
ExposureMarkerActionKey105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerActionKey105(kind) == BasicActionKey5(ExposureMarkerActionActor105(kind),kind)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ExposureMarkerActionActor105, BasicActionKey5
ExposureMarkerActionRule105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerActionRule105(kind) == IF kind="RetireResource" THEN "ProcedureCodeef666cf169ed" ELSE "ProcedureCode383141df25e9"Exact module download · Source bundle and reproduction instructions
ExposureMarkerActionStatusGate105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerActionStatusGate105(kind,hasExposureMarkers) == kind="RemoveExposureMarker" \/ (kind="RetireResource" /\ hasExposureMarkers)Exact module download · Source bundle and reproduction instructions
ExposureMarkerActionTargets105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerActionTargets105(frame,world) == IF frame.kind="RetireResource" THEN ResourceTargetIds105(world) ELSE MovableExposureMarkerIds105(world.objects)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: MovableExposureMarkerIds105, ResourceTargetIds105
ExposureMarkerCheckpointCaller105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerCheckpointCaller105(frame,scope) ==
[kind |-> "BasicExposureMarkerActionCheckpoint",action |-> frame.id,scope |-> scope,
transaction |-> IF scope="BaseCost" THEN frame.transaction ELSE IF scope="AdditionalCost" THEN frame.nestedTransaction ELSE 0]Exact module download · Source bundle and reproduction instructions
ExposureMarkerCostModifiers105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerCostModifiers105(world,kind,mods,cardFacts) ==
/\ mods=world.exposureMarkerCostModifiers[kind]
/\ \A source \in world.activeSources \cap DOMAIN world.objects :
IF world.objects[source].card="Specimen0233" /\ DefaultActive(world.objects[source],world.started,cardFacts) THEN
/\ Cardinality({id \in DOMAIN mods : mods[id].source.object=source})<=1
/\ (world.objects[source].front /\ kind="RemoveExposureMarker" => Cardinality({id \in DOMAIN mods : mods[id].source.object=source})=1)
ELSE TRUE
/\ \A id \in DOMAIN mods : mods[id].snapshotId=world.id /\ mods[id].action=kind /\ mods[id].delta \in Int
/\ ExposureMarkerSourceBound105(world,mods[id].source,mods[id].sourceObject,mods[id].sourceSHA,cardFacts)
/\ (mods[id].sourceObject.card="Specimen0233" => ExampleFamily094ExposureMarkerCostShape105(kind,mods[id].sourceObject,mods[id].chosenReduction,mods[id].delta))Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ExampleFamily094ExposureMarkerCostShape105, ExposureMarkerSourceBound105, DefaultActive
ExposureMarkerCounterRow105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerCounterRow105 == [DamageCoreCounterRow104 EXCEPT !.kind="ExposureMarker",!.zone="SideBExposureMarkers"]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: DamageCoreCounterRow104
ExposureMarkerIds105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerIds105(objects) == {id \in DOMAIN objects : objects[id].form="Counter" /\ objects[id].kind="ExposureMarker" /\ objects[id].zone="SideBExposureMarkers" /\ objects[id].host=0}Exact module download · Source bundle and reproduction instructions
ExposureMarkerPaymentPermissionSources105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerPaymentPermissionSources105(payment,permissions) ==
CounterPermissionUseSources9(payment,[id \in DOMAIN permissions |-> [permissions[id] EXCEPT !.paidCounters=@ \cap payment.paidCounterIds]])Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CounterPermissionUseSources9
ExposureMarkerQuantity105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerQuantity105(objects) == Cardinality(ExposureMarkerIds105(objects))Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ExposureMarkerIds105
ExposureMarkerResourceUnitCost105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerResourceUnitCost105(mods) ==
ModifiedCost(2,<<SumMap([id \in {i \in DOMAIN mods : mods[i].delta>0} |-> mods[id].delta])>>,
<<SumMap([id \in {i \in DOMAIN mods : mods[i].delta<0} |-> -mods[id].delta])>>)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ModifiedCost, SumMap
ExposureMarkerResourceUnitEligible105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerResourceUnitEligible105(world,player,permissions) ==
{id \in DOMAIN world.objects : BankPhysicalToken4(world.objects[id]) /\ world.objects[id].kind="ResourceUnit" /\ world.controllers[id]=player /\
((world.objects[id].zone=player \o "ResourceUnits" /\ world.objects[id].host=0) \/
\E p \in DOMAIN permissions : id \in permissions[p].paidCounters)}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: BankPhysicalToken4
ExposureMarkerSourceBound105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerSourceBound105(world,source,object,sourceSHA,cardFacts) ==
/\ source.kind="Object" /\ source.object \in DOMAIN world.objects /\ object=world.objects[source.object]
/\ object.card \in DOMAIN cardFacts /\ sourceSHA=cardFacts[object.card].sourceSHA
/\ source.object \in world.activeSources /\ DefaultActive(object,world.started,cardFacts)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: DefaultActive
ExposureMarkerStateView105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerStateView105(objects,declarations) ==
[quantity |-> ExposureMarkerQuantity105(objects),hasExposureMarkers |-> ExposureMarkerQuantity105(objects)>0 \/ DOMAIN declarations#{},movable |-> MovableExposureMarkerIds105(objects)]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ExposureMarkerQuantity105, MovableExposureMarkerIds105
FinishBid1014 · operator
reference-profile · input revision 2 · CC0 1.0
FinishBid1014(before,after,world,checkpoint,ledger,completion) ==
/\ BidCheckpointReady1014(before,world,checkpoint,ledger)
/\ completion=[tag |-> "BiddingInstructionComplete",bidId |-> before.id,caller |-> before.revealCaller,result |-> before.result,checkpoint |-> checkpoint.id,paid |-> TRUE]
/\ after=[before EXCEPT !.phase="Complete",!.complete=TRUE]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: BidCheckpointReady1014
FirstMarkEvent1011 · operator
reference-profile · input revision 2 · CC0 1.0
FirstMarkEvent1011(world,mark,kind,event) ==
event \in MarkRelatedEvents1011(world,mark,kind) /\ \A earlier \in MarkRelatedEvents1011(world,mark,kind) : world.history[earlier].serial>=world.history[event].serialExact module download · Source bundle and reproduction instructions
Resolved project definitions: MarkRelatedEvents1011
GeneralBidInstructionCheckpoint1014 · operator
reference-profile · input revision 2 · CC0 1.0
GeneralBidInstructionCheckpoint1014(before,after,world,checkpoint,ledger) ==
/\ BidCurrent1014(before,world) /\ before.phase="WaitingReveal" /\ ~before.paid
/\ checkpoint.id \in DOMAIN world.checkpoints /\ world.checkpoints[checkpoint.id]=checkpoint /\ world.conditionalLedger=ledger
/\ LET stage==IF before.guess="NoValue" THEN "Selection" ELSE "Guess" IN
/\ checkpoint.caller=[kind |-> "GeneralBiddingInstructionEnd",bidId |-> before.id,caller |-> before.caller,stage |-> stage]
/\ stage \notin before.generalStages /\ CheckpointDrained103(checkpoint,ledger,<<>>)
/\ after=[before EXCEPT !.generalStages=@ \cup {stage},!.generalCheckpoints=@ \cup {checkpoint.id}]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: stage, BidCurrent1014, CheckpointDrained103
GrantLiabilityMarkerFund106 · operator
reference-profile · input revision 2 · CC0 1.0
GrantLiabilityMarkerFund106(before,after,world,afterObjects,declarations,cardFacts,added,usedIds,events) ==
/\ world.traversal=before.traversal /\ TraversalTimingPresent6(before.traversal) /\ ~before.traversal.formalBegun /\ world.outcome="Playing"
/\ CurrentLiabilityMarker106(world,declarations,cardFacts,LiabilityMarkerQuantity106(world.objects))
/\ AddInitiationLiabilityMarker6(before,after,Cardinality(LiabilityMarkerFundIds106(world.objects)),Cardinality(LiabilityMarkerFundIds106(afterObjects)),LiabilityMarkerQuantity106(world.objects))
/\ \A id \in DOMAIN added : added[id]=LiabilityMarkerFundRow106
/\ BankMintProjection4(world.objects,afterObjects,added,LiabilityMarkerQuantity106(world.objects),"ResourceUnit",usedIds,[kind |-> "Zone",zone |-> "Bank"],TRUE,TRUE)
/\ events=IF DOMAIN added={} THEN {} ELSE {[tag |-> "LiabilityMarkerFundLoaded",traversalId |-> before.traversal.id,source |-> RuleAbilitySource9("ProcedureCode5da712559aad"),
snapshotId |-> world.id,added |-> DOMAIN added,amount |-> LiabilityMarkerQuantity106(world.objects)]}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: RuleAbilitySource9, CurrentLiabilityMarker106, LiabilityMarkerFundIds106, LiabilityMarkerFundRow106, LiabilityMarkerQuantity106, BankMintProjection4, AddInitiationLiabilityMarker6, TraversalTimingPresent6
HistoricalMark1011 · operator
reference-profile · input revision 2 · CC0 1.0
HistoricalMark1011(world,mark) ==
mark.tag="CurrentGlobalMark" /\ mark.present /\
\E id \in DOMAIN world.history : LET e==world.history[id] IN
e.kind="MarkDesignated" /\ e.effectId=mark.effectId /\ e.targetSite=mark.targetSite /\ e.turn=mark.turn /\ e.serial=mark.cutoffExact module download · Source bundle and reproduction instructions
Resolved project definitions: e
HostedCounterExecutionDisposition109 · operator
reference-profile · input revision 2 · CC0 1.0
HostedCounterExecutionDisposition109(world,e) ==
IF CounterInstructionDisposition109(e)#"Supported" THEN CounterInstructionDisposition109(e)
ELSE IF e.kind="RemoveCounters" /\ e.value>Cardinality(MovableHostedTokens109(world.objects,e.target,e.counterKind)) /\
{id \in HostedCounterIds109(world.objects,e.target,e.counterKind) : ~world.objects[id].virtual /\ world.objects[id].card#"none"}#{}
THEN "RequiresConvertedCounterDeparture" ELSE "Supported"Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CounterInstructionDisposition109, HostedCounterIds109, MovableHostedTokens109
HostedCounterIds109 · operator
reference-profile · input revision 2 · CC0 1.0
HostedCounterIds109(objects,host,kind) ==
{id \in DOMAIN objects : objects[id].form="Counter" /\ objects[id].kind=kind /\ objects[id].host=host /\ objects[id].zone=objects[host].zone}Exact module download · Source bundle and reproduction instructions
IdentifyMark1011 · operator
reference-profile · input revision 2 · CC0 1.0
IdentifyMark1011(before,after,a,context,origin,operation,cardFacts,read,draw,sampler,effectId,eventId,execution,completion,events) ==
/\ MarkInstruction1011(context,origin,before,operation,cardFacts) /\ MarkRead1011(before,a,context.actualEffects[operation].actor,read)
/\ IF read.present THEN
/\ context.actualEffects[operation].blueprints=[emptyId \in {} |-> emptyId] /\ draw=[tag |-> "NoDraw"]
/\ after=before /\ events={}
/\ completion=[tag |-> "IdentifyMarkComplete",reference |-> context.currentRef,operation |-> operation,created |-> FALSE,effectId |-> read.effectId,targetSite |-> read.targetSite]
ELSE
/\ ~before.turn.formalEnded /\ eventId \in (Nat \ {0}) \ DOMAIN before.history
/\ LET targetSite==draw.targetSite
cutoff==before.eventSerial+1
blueprint==MarkBlueprint1011(context.currentRef.source,IF origin.plan.origin="Rule" THEN "Rule" ELSE origin.parent.kind,targetSite,cutoff,before.turn.id)
event==[id |-> eventId,kind |-> "MarkDesignated",serial |-> cutoff,turn |-> before.turn.id,targetSite |-> targetSite,effectId |-> effectId,reference |-> context.currentRef,source |-> context.currentRef.source]
IN /\ MarkDraw1011(before,context,operation,draw,sampler,targetSite)
/\ context.actualEffects[operation].blueprints=[id \in {effectId} |-> blueprint]
/\ CreateObservedLingeringEffects910(before.lingering,after.lingering,context,origin,operation,execution,a)
/\ after=[before EXCEPT !.lingering=after.lingering,!.eventSerial=cutoff,!.history=ReplacementOverlay99(@,[id \in {eventId} |-> event]),
!.draws=ReplacementOverlay99(@,[id \in {draw.id} |-> draw]),!.pendingRandomDraws=Without101(@,{draw.id})]
/\ completion=[tag |-> "IdentifyMarkComplete",reference |-> context.currentRef,operation |-> operation,created |-> TRUE,effectId |-> effectId,targetSite |-> targetSite]
/\ events={event}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CreateObservedLingeringEffects910, ReplacementOverlay99, blueprint, cutoff, event, targetSite, MarkDraw1011, MarkInstruction1011, MarkRead1011, Without101
IllegalRetireChooser103 · operator
reference-profile · input revision 2 · CC0 1.0
IllegalRetireChooser103(choices,controllers,activePlayer) ==
LET objects==UNION choices
players=={controllers[id] : id \in objects}
IN IF Cardinality(choices)<=1 THEN "NoValue" ELSE IF Cardinality(players)=1 /\ players \subseteq SetupPlayers THEN CHOOSE p \in players : TRUE ELSE activePlayerExact module download · Source bundle and reproduction instructions
Resolved project definitions: players, SetupPlayers
InformationClass102 · operator
reference-profile · input revision 2 · CC0 1.0
InformationClass102(viewers) == IF viewers=SetupPlayers THEN "Open" ELSE "Hidden"Exact module download · Source bundle and reproduction instructions
Resolved project definitions: SetupPlayers
InformationFact102 · operator
reference-profile · input revision 2 · CC0 1.0
InformationFact102(value,viewers,snapshot) ==
[value |-> value,viewers |-> viewers,snapshot |-> snapshot]Exact module download · Source bundle and reproduction instructions
LiabilityMarkerCounterDeparture106 · operator
reference-profile · input revision 2 · CC0 1.0
LiabilityMarkerCounterDeparture106(objects,afterObjects,selected,successors,usedIds,printed,owners,visible,batchId,beforeHistory,afterHistory,events) ==
/\ CheckpointRetirePost103(objects,afterObjects,selected,successors,usedIds,printed,owners,visible)
/\ LET cards=={id \in selected : objects[id].card#"none"} IN
IF cards={} THEN BankSpendReturn4(objects,afterObjects,selected,TRUE) /\ afterHistory=beforeHistory /\ events={}
ELSE RecordMovement8(beforeHistory,afterHistory,batchId,"Retire",cards,"Complete",TRUE,{MovementEvent8(batchId,"Retire",cards)}) /\ events={MovementEvent8(batchId,"Retire",cards)}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: cards, CheckpointRetirePost103, BankSpendReturn4, MovementEvent8, RecordMovement8
LiabilityMarkerCounterRow106 · operator
reference-profile · input revision 2 · CC0 1.0
LiabilityMarkerCounterRow106 == [DamageCoreCounterRow104 EXCEPT !.kind="LiabilityMarker",!.zone="SideALiabilityMarker",!.placedBy="SideA"]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: DamageCoreCounterRow104
LiabilityMarkerFundController106 · operator
reference-profile · input revision 2 · CC0 1.0
LiabilityMarkerFundController106(object,ordinaryController) ==
IF LiabilityMarkerFundIds106([id \in {1} |-> object])={1} THEN "SideB" ELSE ordinaryControllerExact module download · Source bundle and reproduction instructions
Resolved project definitions: LiabilityMarkerFundIds106
LiabilityMarkerFundIds106 · operator
reference-profile · input revision 2 · CC0 1.0
LiabilityMarkerFundIds106(objects) ==
{id \in DOMAIN objects : objects[id].form="Counter" /\ objects[id].kind="ResourceUnit" /\ objects[id].zone="Play" /\ objects[id].host=0 /\ objects[id].resourceUnitLocation="LiabilityMarkerFund"}Exact module download · Source bundle and reproduction instructions
LiabilityMarkerFundRow106 · operator
reference-profile · input revision 2 · CC0 1.0
LiabilityMarkerFundRow106 == ReplacementOverlay99(DamageCoreCounterRow104,
[kind |-> "ResourceUnit",zone |-> "Play",resourceUnitLocation |-> "LiabilityMarkerFund",placedBy |-> "SideB"])Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, DamageCoreCounterRow104
LiabilityMarkerIds106 · operator
reference-profile · input revision 2 · CC0 1.0
LiabilityMarkerIds106(objects) ==
{id \in DOMAIN objects : objects[id].form="Counter" /\ objects[id].kind="LiabilityMarker" /\ objects[id].zone="SideALiabilityMarker" /\ objects[id].host=0}Exact module download · Source bundle and reproduction instructions
LiabilityMarkerPacket106 · operator
reference-profile · input revision 2 · CC0 1.0
LiabilityMarkerPacket106(context,reference,world,id,cardFacts,packet) ==
/\ context.phase="Resolving" /\ context.currentRef=reference /\ context.currentWorld=world.id /\ world.outcome="Playing"
/\ context.actualEffects=ActualExpectedEffects99(context.state.effects) /\ id \in DOMAIN context.templates
/\ LET original==context.templates[id]
kept==id \in DOMAIN context.actualEffects
actual==IF kept THEN context.actualEffects[id] ELSE original
IN /\ original.kind="LiabilityMarker" /\ original.operation \in {"Take","Give","Remove"} /\ original.target="SideA"
/\ actual.kind=original.kind /\ actual.operation=original.operation /\ actual.target="SideA" /\ actual.actor=original.actor
/\ actual.actor \in SetupPlayers /\ (actual.operation="Take" => actual.actor="SideA") /\ (actual.operation="Give" => actual.actor="SideB")
/\ original.baseOrigin=reference.source /\ actual.baseOrigin=reference.source /\ actual.sourceCard=original.sourceCard /\ actual.sourceSHA=original.sourceSHA
/\ actual.sourceCard \in DOMAIN cardFacts /\ actual.sourceSHA=cardFacts[actual.sourceCard].sourceSHA
/\ actual.value \in Int
/\ packet=[contextId |-> context.id,reference |-> reference,effectId |-> id,snapshotId |-> world.id,
source |-> actual.baseOrigin,sourceCard |-> actual.sourceCard,sourceSHA |-> actual.sourceSHA,operation |-> actual.operation,actor |-> actual.actor,
amount |-> IF ~kept \/ actual.value<=0 THEN 0 ELSE actual.value]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ActualExpectedEffects99, actual, kept, original, SetupPlayers
LiabilityMarkerQuantity106 · operator
reference-profile · input revision 2 · CC0 1.0
LiabilityMarkerQuantity106(objects) == Cardinality(LiabilityMarkerIds106(objects))Exact module download · Source bundle and reproduction instructions
Resolved project definitions: LiabilityMarkerIds106
LiabilityMarkerSpendSources106 · operator
reference-profile · input revision 2 · CC0 1.0
LiabilityMarkerSpendSources106(payment) ==
CounterPermissionUseSources9(payment,[id \in {1} |-> [source |-> RuleAbilitySource9("ProcedureCode51c5eb4c9e6c"),paymentId |-> payment.id,allowsPayment |-> TRUE,paidCounters |-> payment.fundCounters]])Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CounterPermissionUseSources9, RuleAbilitySource9
LinkBaseRead107 · operator
reference-profile · input revision 2 · CC0 1.0
LinkBaseRead107(world,cardFacts,read) ==
/\ world.sideBProfile \in DOMAIN world.objects /\ world.sideBProfile \in DOMAIN world.properties
/\ LET object==world.objects[world.sideBProfile]
definition==LinkDefinition107(world,object)
properties==SideBCharacteristics8(object,world.properties[world.sideBProfile])
IN /\ object.form="Card" /\ object.kind="Profile" /\ object.zone="Play" /\ object.side="SideB"
/\ definition \in DOMAIN world.profileLinkFacts /\ definition \in DOMAIN cardFacts
/\ cardFacts[definition].kind="Profile" /\ cardFacts[definition].side="SideB"
/\ world.profileLinkFacts[definition].sourceSHA=cardFacts[definition].sourceSHA
/\ "baseLink" \in DOMAIN properties /\ properties.baseLink \in Int
/\ read=[tag |-> "CurrentBaseLink",snapshotId |-> world.id,object |-> world.sideBProfile,physical |-> object.card,definition |-> definition,
sourceSHA |-> cardFacts[definition].sourceSHA,printedBase |-> world.profileLinkFacts[definition].baseLink,value |-> properties.baseLink]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: definition, object, properties
LinkDefinition107 · operator
reference-profile · input revision 2 · CC0 1.0
LinkDefinition107(world,object) == world.definitions[object.card]Exact module download · Source bundle and reproduction instructions
LinkInstructionSnapshot107 · operator
reference-profile · input revision 2 · CC0 1.0
LinkInstructionSnapshot107(world,cardFacts,base,declarations,read,snapshot) ==
/\ ReadSideBLink107(world,cardFacts,base,declarations,read)
/\ snapshot=[tag |-> "CurrentLinkInstructionSnapshot",id |-> world.id,link |-> [player \in {"SideB"} |-> read.value]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReadSideBLink107
LinkedLoadIds109 · operator
reference-profile · input revision 2 · CC0 1.0
LinkedLoadIds109(world,link) ==
{id \in DOMAIN world.loadHistory : LET h==world.loadHistory[id] IN
h.tag="CompletedLoad" /\ h.host=link.host /\ h.kind=link.kind /\ h.loadDefinition=link.loadDefinition /\ h.amount>0 /\
h.reference.source=ObjectAbilitySource9(link.host) /\ h.sourceCard=link.card /\ h.sourceSHA=link.sourceSHA}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ObjectAbilitySource9, h
LiveMarkIds1011 · operator
reference-profile · input revision 2 · CC0 1.0
LiveMarkIds1011(registry,world) == MarkEffectIds1011(registry) \cap ActiveLingeringIds910(registry,world)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ActiveLingeringIds910, MarkEffectIds1011
LoadState109 · operator
reference-profile · input revision 2 · CC0 1.0
LoadState109(world) == [objects |-> world.objects,definitions |-> world.definitions,history |-> world.loadHistory,links |-> world.loadLinks]Exact module download · Source bundle and reproduction instructions
LoadedCounterToken109 · operator
reference-profile · input revision 2 · CC0 1.0
LoadedCounterToken109(kind,zone,host,actor) ==
[card |-> "none",form |-> "Counter",kind |-> kind,zone |-> zone,loc |-> host,deployed |-> FALSE,face |-> "Up",front |-> TRUE,
activated |-> FALSE,host |-> host,placedBy |-> actor,virtual |-> FALSE,objectivePoints |-> 0,marks |-> {}]Exact module download · Source bundle and reproduction instructions
LoopTrait101 · operator
reference-profile · input revision 2 · CC0 1.0
LoopTrait101(kind,duringTraversal,withdrawTraversalProhibited) ==
CASE kind="Mandatory" -> "ChooseCount"
[] kind="Optional" /\ duringTraversal /\ ~withdrawTraversalProhibited -> "SideBWithdrawTraversal"
[] kind="Optional" /\ duringTraversal /\ withdrawTraversalProhibited -> "SideAContinueTraversal"
[] OTHER -> "NoRuleIn10.1.6"Exact module download · Source bundle and reproduction instructions
MarkBalancedSampler1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkBalancedSampler1011(sampler) ==
/\ sampler.tag="UniformFiniteAtoms" /\ sampler.space#{} /\ IsFiniteSet(sampler.space) /\ DOMAIN sampler.mapping=sampler.space
/\ {sampler.mapping[atom] : atom \in sampler.space} \subseteq CentralTargetSites4
/\ sampler.weights=[atom \in sampler.space |-> 1] /\ sampler.totalWeight=Cardinality(sampler.space)
/\ \A targetSite \in CentralTargetSites4 : 3*Cardinality({atom \in sampler.space : sampler.mapping[atom]=targetSite})=Cardinality(sampler.space)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CentralTargetSites4
MarkBlueprint1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkBlueprint1011(source,originKind,targetSite,cutoff,turn) ==
[kind |-> "Ordinary",source |-> source,originKind |-> originKind,target |-> 0,value |-> [targetSite |-> targetSite,cutoff |-> cutoff,turn |-> turn],
baseDuration |-> [kind |-> "Timing",ref |-> TimingRef9("Turn",turn)],durationMode |-> "Specified",durationClass |-> "Turn",choiceKey |-> "GlobalMark",
lingeringConsumers |-> {},otherConsumers |-> {},definitionId |-> 101101,whenYourTurnBegins |-> FALSE,onlyChoice |-> FALSE]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: TimingRef9
MarkConditionalStipulation1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkConditionalStipulation1011(world,a,d,event,rule,receipt) ==
/\ MarkWorldBound1011(world,world.lingering,a) /\ ConditionalDefinitionValid96(d) /\ d.primaryKind="Trigger" /\ d.triggerRequirements={1}
/\ ConditionalKey96(d) \in DOMAIN world.markRules /\ rule=world.markRules[ConditionalKey96(d)] /\ rule.definition=d
/\ rule.card \in DOMAIN world.cardFacts /\ rule.sourceSHA=world.cardFacts[rule.card].sourceSHA /\ rule.role=MarkRole1011(rule.card) /\ rule.role#"Unsupported"
/\ d.syntax.source.kind="Object" /\ rule.physical \in DOMAIN world.sourceDefinitions /\ world.sourceDefinitions[rule.physical]=rule.card
/\ IF d.syntax.source.object \in DOMAIN world.objects THEN world.objects[d.syntax.source.object].card=rule.physical ELSE TRUE
/\ event.id \in DOMAIN world.history /\ event=world.history[event.id].occurrence
/\ LET row==world.history[event.id]
mark==row.mark
kind==CASE rule.role="FirstSuccess" -> "TraversalSuccessful" [] rule.role="FirstTraversalEnd" -> "TraversalEnded" [] OTHER -> "EncounterBarrier"
matches==HistoricalMark1011(world,mark) /\ event.kind=kind /\ event.actor="SideB" /\
IF rule.role="EncounterDuringMarkTraversal" THEN event.id \in MarkRelatedEvents1011(world,mark,"EncounterBarrier")
ELSE FirstMarkEvent1011(world,mark,kind,event.id)
IN receipt=[tag |-> "ConditionalTriggerStipulations",ability |-> d.syntax.id,source |-> d.syntax.source,occurrence |-> event.id,snapshotId |-> event.snapshot.id,
results |-> [id \in {1} |-> matches]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ConditionalDefinitionValid96, ConditionalKey96, matches, MarkRole1011, MarkWorldBound1011
MarkDraw1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkDraw1011(world,context,operation,draw,sampler,targetSite) ==
/\ draw.id \in Nat \ {0} /\ draw.id \in DOMAIN world.pendingRandomDraws /\ draw=world.pendingRandomDraws[draw.id] /\ draw.id \notin DOMAIN world.draws
/\ draw.tag="UniformMarkDraw" /\ draw.phase="InstructionResolution" /\ draw.snapshotId=world.id /\ draw.reference=context.currentRef /\ draw.operation=operation
/\ MarkBalancedSampler1011(sampler) /\ draw.sampler=sampler /\ draw.atom \in sampler.space /\ targetSite=sampler.mapping[draw.atom] /\ draw.targetSite=targetSiteExact module download · Source bundle and reproduction instructions
Resolved project definitions: MarkBalancedSampler1011
MarkEffectIds1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkEffectIds1011(registry) == {id \in DOMAIN registry.effects : registry.effects[id].definitionId=101101 /\ registry.effects[id].choiceKey="GlobalMark"}Exact module download · Source bundle and reproduction instructions
MarkHistoryRead1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkHistoryRead1011(world,a,player,kind,mark,receipt) ==
/\ MarkRead1011(world,a,player,mark)
/\ receipt=[tag |-> "CurrentMarkHistory",worldId |-> world.id,effectId |-> mark.effectId,kind |-> kind,events |-> MarkRelatedEvents1011(world,mark,kind),
first |-> {id \in MarkRelatedEvents1011(world,mark,kind) : FirstMarkEvent1011(world,mark,kind,id)}]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: FirstMarkEvent1011, MarkRead1011, MarkRelatedEvents1011
MarkInstruction1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkInstruction1011(context,origin,world,operation,cardFacts) ==
/\ cardFacts=world.cardFacts /\ context.phase="Resolving" /\ context.currentWorld=world.id /\ origin.kind="Instruction" /\ origin.plan.phase="Resolving"
/\ context.currentRef=InstructionWindowRef93(origin.plan) /\ ConditionalCreationInstruction96(origin.plan,origin.parent,origin.ruleStep)
/\ context.actualEffects=ActualExpectedEffects99(context.state.effects) /\ operation \in DOMAIN context.actualEffects /\ operation \in DOMAIN context.templates
/\ LET e==context.actualEffects[operation] IN
/\ e.kind="CreateLingering" /\ e.semantic="IdentifyMark" /\ e.actor \in SetupPlayers
/\ e.sourceCard=context.templates[operation].sourceCard /\ e.sourceSHA=context.templates[operation].sourceSHA
/\ e.sourceCard \in DOMAIN cardFacts /\ e.sourceSHA=cardFacts[e.sourceCard].sourceSHA /\ e.baseOrigin=context.currentRef.source
/\ context.currentRef.source.kind="Object"
/\ IF context.currentRef.source.object \in DOMAIN world.objects THEN world.sourceDefinitions[world.objects[context.currentRef.source.object].card]=e.sourceCard ELSE TRUEExact module download · Source bundle and reproduction instructions
Resolved project definitions: ActualExpectedEffects99, ConditionalCreationInstruction96, InstructionWindowRef93, e, SetupPlayers
MarkJournalValid1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkJournalValid1011(world) ==
/\ world.eventSerial \in Nat
/\ \A id \in DOMAIN world.history : world.history[id].id=id /\ world.history[id].serial \in 1..world.eventSerial
/\ \A a,b \in DOMAIN world.history : a#b => world.history[a].serial#world.history[b].serialExact module download · Source bundle and reproduction instructions
MarkProtectionRelation1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkProtectionRelation1011(world,a,mark,barrierCard,protection,receipt) ==
/\ MarkRead1011(world,a,"SideB",mark) /\ protection=world.barrierProtection
/\ receipt=[tag |-> "BarrierProtectingMark",worldId |-> world.id,barrierCard |-> barrierCard,holds |-> mark.present /\ barrierCard \in DOMAIN world.objects /\ world.objects[barrierCard].form="Card" /\ world.objects[barrierCard].kind="Barrier" /\ barrierCard \in DOMAIN protection /\ protection[barrierCard]=mark.targetSite]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: MarkRead1011
MarkRead1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkRead1011(world,a,player,read) ==
/\ player \in SetupPlayers /\ MarkWorldBound1011(world,world.lingering,a)
/\ ReadActiveLingering910(world.lingering,a,[tag |-> "CurrentActiveLingeringEffects",worldId |-> a.current.id,ids |-> ActiveLingeringIds910(world.lingering,a.current)])
/\ LET ids==LiveMarkIds1011(world.lingering,a.current) IN
read=IF ids={} THEN [tag |-> "CurrentGlobalMark",worldId |-> world.id,present |-> FALSE,effectId |-> 0,targetSite |-> "NoValue",cutoff |-> 0,turn |-> world.turn.id]
ELSE LET id==CHOOSE id \in ids : TRUE
value==world.lingering.effects[id].value
IN [tag |-> "CurrentGlobalMark",worldId |-> world.id,present |-> TRUE,effectId |-> id,targetSite |-> value.targetSite,cutoff |-> value.cutoff,turn |-> value.turn]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ActiveLingeringIds910, ReadActiveLingering910, id, ids, value, MarkWorldBound1011, SetupPlayers
MarkRegistryValid1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkRegistryValid1011(registry,world) ==
/\ Cardinality(LiveMarkIds1011(registry,world))<=1
/\ \A id \in MarkEffectIds1011(registry) :
LET e==registry.effects[id] IN
/\ e.kind="Ordinary" /\ e.choicePolicy="NoValue" /\ e.value.targetSite \in CentralTargetSites4 /\ e.value.cutoff \in Nat \ {0}
/\ e.value.turn=e.creationTurn /\ e.baseDuration=[kind |-> "Timing",ref |-> TimingRef9("Turn",e.creationTurn)] /\ e.durationClass="Turn"Exact module download · Source bundle and reproduction instructions
Resolved project definitions: TimingRef9, e, LiveMarkIds1011, MarkEffectIds1011, CentralTargetSites4
MarkRelatedEvents1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkRelatedEvents1011(world,mark,kind) ==
IF ~mark.present THEN {} ELSE
{id \in DOMAIN world.history : LET e==world.history[id] IN e.kind=kind /\ e.targetSite=mark.targetSite /\ e.turn=mark.turn /\ e.serial>mark.cutoff}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: e
MarkRole1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkRole1011(card) ==
CASE card \in {"Specimen0165","Specimen0259"} -> "FirstSuccess"
[] card="Specimen0119" -> "FirstTraversalEnd"
[] card="Specimen0026" -> "EncounterDuringMarkTraversal"
[] OTHER -> "Unsupported"Exact module download · Source bundle and reproduction instructions
MarkSpecimen0119Body1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkSpecimen0119Body1011(world,event,receipt) ==
/\ event.kind="TraversalEnded" /\ event.id \in DOMAIN world.history /\ event=world.history[event.id].occurrence
/\ LET row==world.history[event.id]
mark==row.mark
siteInspections=={id \in MarkRelatedEvents1011(world,mark,"Inspection") : world.history[id].traversalId=row.traversalId /\ world.history[id].serial<=row.serial}
IN receipt=[tag |-> "Specimen0119InstructionCondition",occurrence |-> event.id,traversalId |-> row.traversalId,holds |-> HistoricalMark1011(world,mark) /\ siteInspections#{}]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: mark, row, siteInspections, HistoricalMark1011
MarkSpecimen0259Branch1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkSpecimen0259Branch1011(world,event,branch) ==
/\ event.kind="TraversalSuccessful" /\ event.id \in DOMAIN world.history /\ event=world.history[event.id].occurrence /\ HistoricalMark1011(world,world.history[event.id].mark)
/\ branch=[tag |-> "Specimen0259InstructionBranch",occurrence |-> event.id,branch |-> IF world.history[event.id].mark.targetSite="SchemaAtom082" THEN "AdditionalCentralAItemInspection" ELSE "InspectionCentralAAfterTraversal"]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: HistoricalMark1011
MarkTraversalRelation1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkTraversalRelation1011(world,a,mark,receipt) ==
/\ MarkRead1011(world,a,"SideB",mark)
/\ receipt=[tag |-> "OngoingTraversalOnMark",worldId |-> world.id,traversalId |-> world.control.traversal.id,holds |-> mark.present /\ DuringTraversal6(world.control.traversal) /\ TimingRef9("SchemaAtom138",world.control.traversal.id) \in world.inside /\ world.control.traversal.attacked=mark.targetSite]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: TimingRef9, MarkRead1011, DuringTraversal6
MarkWorldBound1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkWorldBound1011(world,registry,a) ==
/\ LifetimeWorldProjection910(world)=a.current /\ world.lingering=registry /\ LifetimeReady910(registry,a)
/\ MarkRegistryValid1011(registry,a.current) /\ MarkJournalValid1011(world)
/\ \A id \in LiveMarkIds1011(registry,a.current) :
LET e==registry.effects[id] IN
\E event \in DOMAIN world.history :
/\ world.history[event].kind="MarkDesignated" /\ world.history[event].effectId=id /\ world.history[event].targetSite=e.value.targetSite
/\ world.history[event].serial=e.value.cutoff /\ world.history[event].turn=e.value.turn
/\ world.history[event].reference=e.creation[2] /\ world.history[event].source=e.sourceExact module download · Source bundle and reproduction instructions
Resolved project definitions: LifetimeReady910, LifetimeWorldProjection910, e, LiveMarkIds1011, MarkJournalValid1011, MarkRegistryValid1011
MergeCheckpointDepartures103 · operator
reference-profile · input revision 2 · CC0 1.0
MergeCheckpointDepartures103(before,added) ==
[id \in DOMAIN before \cup DOMAIN added |-> IF id \in DOMAIN added THEN added[id] ELSE before[id]]Exact module download · Source bundle and reproduction instructions
MovableExposureMarkerIds105 · operator
reference-profile · input revision 2 · CC0 1.0
MovableExposureMarkerIds105(objects) == {id \in ExposureMarkerIds105(objects) : ~objects[id].virtual}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ExposureMarkerIds105
MovableHostedTokens109 · operator
reference-profile · input revision 2 · CC0 1.0
MovableHostedTokens109(objects,host,kind) ==
{id \in HostedCounterIds109(objects,host,kind) : BankPhysicalToken4(objects[id])}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: HostedCounterIds109, BankPhysicalToken4
MovableLiabilityMarkerIds106 · operator
reference-profile · input revision 2 · CC0 1.0
MovableLiabilityMarkerIds106(objects) == {id \in LiabilityMarkerIds106(objects) : ~objects[id].virtual}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: LiabilityMarkerIds106
MoveDividendObjective1013 · operator
reference-profile · input revision 2 · CC0 1.0
MoveDividendObjective1013(world,next,begin,capture,new,moved,binding,eventId,event) ==
/\ world.outcome="Playing" /\ CaptureDividendBegin1013(world,begin,world.cardFacts,capture)
/\ begin.id \in DOMAIN world.dividendCaptures /\ capture=world.dividendCaptures[begin.id] /\ capture.beforeObjects=world.objects
/\ DividendCleanupSupport1013(world,capture)="SupportedNativeProgressCleanup"
/\ moved=DividendObjectiveCompletionMap1013(world.objects,capture.oldObject,new)
/\ CardBatchTransfer8(world.objects,moved,{capture.oldObject},[old \in {capture.oldObject} |-> new],world.usedObjects,"SideAObjectiveCompletion","Up",[old \in {capture.oldObject} |-> 0])
/\ NormalObjectiveCompletionClaimObjectivePost4(moved[new],"SideA","Scored",TRUE)
/\ LiabilityMarkerCounterDeparture106(moved,next.objects,capture.physicalProgress,[id \in {} |-> id],world.usedObjects \cup {new},world.printed,world.owners,world.visible,eventId,world.movementHistory,next.movementHistory,{})
/\ eventId \in (Nat \ {0}) \ world.objectiveCompletionEventIds /\ next.id \in (Nat \ {0}) \ world.usedWorlds
/\ binding=[tag |-> "DividendObjectiveCompletionBinding",objectiveCompletionId |-> begin.id,oldObject |-> capture.oldObject,newObject |-> new,physical |-> capture.physical,beforeSnapshot |-> world.id,afterSnapshot |-> next.id]
/\ event=[id |-> eventId,kind |-> "ObjectivePlacementd",actor |-> "SideA",object |-> new,objectiveCompletionId |-> begin.id,binding |-> binding]
/\ next=[world EXCEPT !.id=next.id,!.objects=next.objects,!.movementHistory=next.movementHistory,!.usedObjects=@ \cup {new},!.usedWorlds=@ \cup {next.id},
!.requirements=ReplacementOverlay99(Without101(@,{capture.oldObject}),[id \in {new} |-> DividendFacts1013!DividendPrintedFacts1013[capture.sourceCard].requirement]),
!.consideredProgress=ReplacementOverlay99(Without101(@,{capture.oldObject}),[id \in {new} |-> 0]),!.historicalPhysical=ReplacementOverlay99(@,[id \in {capture.oldObject} |-> capture.physical]),
!.dividendBindings=ReplacementOverlay99(@,[id \in {begin.id} |-> binding]),!.objectiveCompletionEventIds=@ \cup {eventId},!.objectiveCompletionEvents=ReplacementOverlay99(@,[id \in {eventId} |-> event])]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, CaptureDividendBegin1013, DividendCleanupSupport1013, DividendFacts1013!DividendPrintedFacts1013, DividendObjectiveCompletionMap1013, LiabilityMarkerCounterDeparture106, Without101, NormalObjectiveCompletionClaimObjectivePost4, CardBatchTransfer8
NamedReference101 · operator
reference-profile · input revision 2 · CC0 1.0
NamedReference101(source,printedOwnName,referenceName,copyQualifier,objects,currentNames) ==
IF referenceName=printedOwnName /\ ~copyQualifier THEN {source}
ELSE {i \in DOMAIN objects \cap DOMAIN currentNames : currentNames[i]=referenceName}Exact module download · Source bundle and reproduction instructions
NewCheckpoint103 · operator
reference-profile · input revision 2 · CC0 1.0
NewCheckpoint103(id,caller,beginSnapshotId,insideStructures) ==
[id |-> id,caller |-> caller,beginSnapshotId |-> beginSnapshotId,snapshotId |-> beginSnapshotId,
inside |-> insideStructures,point |-> "ProcedureCodee605a78f5d5e",owed |-> CheckpointStages103,done |-> {},discharged |-> {},
recognition |-> [id |-> 0,caller |-> "NoValue"],recognized |-> [emptyId \in {} |-> emptyId],phase |-> "Steps",returned |-> FALSE,
windowId |-> 0,outcome |-> "Playing",overrideLog |-> <<>>,hostPasses |-> 0,retiredRemotes |-> {}]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CheckpointStages103
NewSabotageOccurrence1012 · operator
reference-profile · input revision 2 · CC0 1.0
NewSabotageOccurrence1012(id,batch,unit,snapshot,beforeSnapshot) ==
[id |-> id,kind |-> IF unit=0 THEN "CardsRetireed" ELSE "CardRetireed",object |-> unit,actor |-> batch.actor,side |-> "SideA",snapshot |-> snapshot,effectId |-> batch.id,
movement |-> [tag |-> IF unit=0 THEN "BatchRetire" ELSE "Retire",oldObject |-> unit,newObject |-> IF unit=0 THEN 0 ELSE batch.successors[unit],beforeSnapshot |-> beforeSnapshot],
scopeKind |-> "Global",scopeDefinition |-> [ability |-> 0,source |-> RuleAbilitySource9("NoValue")],structure |-> NoTimingRef9,step |-> "NoValue",traversal |-> NoTraversal6,siteInspection |-> [traversalId |-> 0,origin |-> "NoValue"],
batchId |-> batch.id,batch |-> batch,unit |-> unit]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: NoTimingRef9, RuleAbilitySource9, NoTraversal6
NextChargeAfterCheckpoint1010 · operator
reference-profile · input revision 2 · CC0 1.0
NextChargeAfterCheckpoint1010(beforeAbility,afterAbility,beforePlan,afterPlan,world,cp,ledger,stack,cohort,entry) ==
/\ cohort.ability=beforeAbility /\ cohort.id=beforeAbility.id /\ cohort.source=beforeAbility.source
/\ cp.id \in DOMAIN world.instructionCheckpoints /\ world.instructionCheckpoints[cp.id]=cp /\ ledger=world.conditionalLedger
/\ cp.caller=PlayInstructionCaller97(cohort) /\ CheckpointDrained103(cp,ledger,stack)
/\ entry.checkpointAndAllNewerChainsComplete
/\ EnterNextAbilityInstruction93(beforeAbility,afterAbility,beforePlan,afterPlan,entry)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: EnterNextAbilityInstruction93, PlayInstructionCaller97, CheckpointDrained103
NormalizeDamageType104 · operator
reference-profile · input revision 2 · CC0 1.0
NormalizeDamageType104(kind) == IF kind="CapacityHarmAlias" THEN "PersistentCapacityHarm" ELSE kindExact module download · Source bundle and reproduction instructions
ObserveCheckpointKernel103 · operator
reference-profile · input revision 2 · CC0 1.0
ObserveCheckpointKernel103(frame,beforeRegistry,afterRegistry,beforeLedger,afterLedger,beforeStack,afterStack,
beforeSnapshot,afterSnapshot,baseWorld,execution,beforeAuthority,afterAuthority) ==
/\ CheckpointPrivatePersistentBound103(frame,beforeRegistry,beforeLedger)
/\ frame.snapshotId=beforeAuthority.current.id
/\ LifetimeReady910(beforeRegistry,beforeAuthority) /\ PersistentRegistryWorldBound912(beforeRegistry,beforeAuthority.current)
/\ PersistentConditionalDefinitions912(beforeRegistry,beforeSnapshot.definitions)
/\ afterAuthority.current=PersistentWorld912(baseWorld,beforeRegistry)
/\ CommitLifetimeKernelCore910(beforeAuthority,afterAuthority,afterAuthority.current,execution)
/\ LET local==[afterRegistry EXCEPT !.frontier=beforeRegistry.frontier]
IN /\ ObserveLingering910(beforeRegistry,local,afterAuthority.current)
/\ afterRegistry.frontier=LifetimeFrontier910(afterAuthority,Len(afterAuthority.order))
/\ PersistentRegistryWorldBound912(afterRegistry,afterAuthority.current)
/\ beforeSnapshot.id=beforeAuthority.current.id /\ afterSnapshot.id=afterAuthority.current.id
/\ LingeringConditionalWorld910(beforeSnapshot,beforeLedger,beforeAuthority.current)
/\ LingeringConditionalWorld910(afterSnapshot,beforeLedger,afterAuthority.current)
/\ afterSnapshot=LingeringConditionalSnapshot910(afterSnapshot,local,beforeLedger,afterAuthority.current)
/\ PersistentConditionalDefinitions912(local,afterSnapshot.definitions)
/\ ObserveConditionalActivity96(beforeLedger,beforeLedger,afterLedger,beforeStack,afterStack,beforeSnapshot,afterSnapshot)
/\ CheckpointCaptured103(frame,afterLedger)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CommitLifetimeKernelCore910, LifetimeFrontier910, LifetimeReady910, LingeringConditionalSnapshot910, LingeringConditionalWorld910, ObserveConditionalActivity96, ObserveLingering910, PersistentConditionalDefinitions912, PersistentRegistryWorldBound912, PersistentWorld912, local, CheckpointCaptured103, CheckpointPrivatePersistentBound103
ObserveCurrentInformation102 · operator
reference-profile · input revision 2 · CC0 1.0
ObserveCurrentInformation102(before,after,facts,fact,player,currentSnapshot) ==
/\ player \in SetupPlayers /\ fact \in DOMAIN facts /\ facts[fact].snapshot=currentSnapshot
/\ player \in facts[fact].viewers
/\ after=Append(before,[tag |-> "AuthoritativeObservation",player |-> player,fact |-> fact,
value |-> facts[fact].value,snapshot |-> currentSnapshot])Exact module download · Source bundle and reproduction instructions
Resolved project definitions: SetupPlayers
OpenCheckpointAtSite103 · operator
reference-profile · input revision 2 · CC0 1.0
OpenCheckpointAtSite103(frame,id,site,event,insideStructures,usedCheckpoints) ==
/\ CheckpointSite103(site,event,insideStructures) /\ id \in (Nat \ {0}) \ usedCheckpoints
/\ frame=NewCheckpoint103(id,site.caller,site.snapshotId,site.inside)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CheckpointSite103, NewCheckpoint103
OpenCheckpointReaction103 · operator
reference-profile · input revision 2 · CC0 1.0
OpenCheckpointReaction103(before,after,ledger,beforeStack,afterStack,site,opening,usedWindows) ==
/\ DOMAIN before.recognized#{} /\ CheckpointCaptured103(before,ledger)
/\ CheckpointCompletion103(before,ledger,[id |-> before.snapshotId],opening.completion)
/\ opening.checkpointId=before.id /\ opening.caller=before.caller
/\ opening.windowId=CheckpointRecognizedWindow103(before)
/\ \A id \in DOMAIN before.recognized : before.recognized[id].windowId=opening.windowId
/\ LET canonicalOpening==[opening EXCEPT !.completion=opening.completion]
raw==Append(beforeStack,NewPriorityWindow9(opening.windowId,"Reaction",PriorityOpeningSite9(beforeStack,site),
before.recognized,opening.group,opening.beginning,opening.instruction,opening.effectRevision))
pending=={id \in DOMAIN before.recognized : ledger.instances[id].status="Pending"}
IN /\ OpenPriorityWindow9(beforeStack,raw,opening.windowId,"Reaction",site,before.recognized,canonicalOpening,usedWindows)
/\ afterStack=ReplaceWindowTop9(raw,[WindowTop9(raw) EXCEPT !.pending=pending,!.lostPending=DOMAIN before.recognized \ pending])
/\ after=[before EXCEPT !.phase="Reaction",!.windowId=opening.windowId]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: OpenPriorityWindow9, ReplaceWindowTop9, WindowTop9, canonicalOpening, pending, raw, CheckpointCaptured103, CheckpointCompletion103, CheckpointRecognizedWindow103
OpenDividendPlan1013 · operator
reference-profile · input revision 2 · CC0 1.0
OpenDividendPlan1013(world,instance,event,basis,plan) ==
/\ world.outcome="Playing" /\ instance.status="Resolving" /\ DividendBasis1013(world,instance,event,basis)
/\ instance.member.id \notin DOMAIN world.dividendBodyAnchors
/\ plan=[tag |-> "DividendInstructionPlan",instance |-> instance.member.id,reference |-> InstructionWindowRef93(OpenInstruction93(instance.definitionCopy.instructions[1],"Ability",instance.member.id,instance.definition.source,"SideAObjectiveCompletion",1,"NoValue",<<"RepeatedObjectivePlacement">>,FALSE)),
basis |-> basis,cursor |-> 1,applied |-> {},skipped |-> {},totalPlaced |-> 0,complete |-> FALSE]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InstructionWindowRef93, OpenInstruction93, DividendBasis1013
OpenSabotage1012 · operator
reference-profile · input revision 2 · CC0 1.0
OpenSabotage1012(id,context,operation,world,packet,frame) ==
/\ SabotagePacket1012(context,world,operation,packet) /\ SabotageSupport1012(packet)="SupportedResolutionComponent" /\ SabotageZones1012(world)
/\ id \in (Nat \ {0}) \ world.usedProcedures /\ packet.key \notin world.completedSabotage
/\ frame=OpenSabotageFrame1012(id,context,operation,world,packet)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: OpenSabotageFrame1012, SabotagePacket1012, SabotageSupport1012, SabotageZones1012
OpenSabotageFrame1012 · operator
reference-profile · input revision 2 · CC0 1.0
OpenSabotageFrame1012(id,context,operation,world,packet) ==
[tag |-> "SabotageResolution",id |-> id,contextId |-> context.id,operation |-> operation,reference |-> context.currentRef,packet |-> packet,
scope |-> SabotageScope1012(world),phase |-> "Choose",choiceSealed |-> FALSE,aHandChosen |-> {},aDrawPileCount |-> 0,successors |-> [x \in {} |-> x],complete |-> FALSE,afterWorld |-> 0]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: SabotageScope1012
PayEscalatingResourceContestBoost108 · operator
reference-profile · input revision 2 · CC0 1.0
PayEscalatingResourceContestBoost108(before,after,world,afterObjects,player,amount,selected,transaction,payment,announcement,cardFacts,permissions,usedPayments,
successors,usedIds,printed,owners,visible,batchId,beforeHistory,afterHistory,movementEvents,spendEvents) ==
/\ EscalatingResourceContestCurrent108(before,world) /\ before.phase="ChooseBoost" /\ before.nextPlayer=player /\ player \in SetupPlayers /\ player \notin before.acted
/\ usedPayments=world.usedPayments /\ usedIds=world.usedObjects
/\ amount \in Nat /\ transaction \in (Nat \ {0}) \ usedPayments
/\ world.resourceUnitCost=[tag |-> "EscalatingResourceContestBoostCostContext",id |-> transaction,escalatingResourceContestId |-> before.id,player |-> player,amount |-> amount,
snapshotId |-> world.id,source |-> EscalatingResourceContestBoostRule108(player),parent |-> before.caller,status |-> "Paying"]
/\ permissions=world.escalatingResourceContestSpendPermissions[player]
/\ \A id \in DOMAIN permissions : EscalatingResourceContestRecurringPermission108(before,world,player,transaction,permissions[id],cardFacts)
/\ LET fund==IF player="SideB" /\ EscalatingResourceContestDuringTraversal108(world) THEN LiabilityMarkerFundIds106(world.objects) ELSE {}
hosted==UNION {permissions[id].counters : id \in DOMAIN permissions}
IN /\ selected \subseteq {id \in (EscalatingResourceContestPoolIds108(world.objects,player) \cup fund \cup hosted) : LiabilityMarkerFundController106(world.objects[id],world.controllers[id])=player} /\ Cardinality(selected)=amount
/\ selected \subseteq CheckpointPhysicalIds103(world.objects)
/\ LiabilityMarkerCounterDeparture106(world.objects,afterObjects,selected,successors,usedIds,printed,owners,visible,batchId,beforeHistory,afterHistory,movementEvents)
/\ payment=[tag |-> "CompletedEscalatingResourceContestBoostCost",id |-> transaction,escalatingResourceContestId |-> before.id,player |-> player,amount |-> amount,
snapshotId |-> world.id,source |-> EscalatingResourceContestBoostRule108(player),parent |-> before.caller,paidCounterIds |-> selected,complete |-> TRUE]
/\ announcement=[tag |-> "EscalatingResourceContestBoostChoice",escalatingResourceContestId |-> before.id,player |-> player,mode |-> "Pay",amount |-> amount,viewers |-> SetupPlayers]
/\ spendEvents=IF amount=0 THEN {} ELSE {[kind |-> "EscalatingResourceContestResourceUnitsSpent",escalatingResourceContestId |-> before.id,player |-> player,amount |-> amount,
transactionId |-> transaction,escalatingResourceContestSource |-> before.packet.source,beforeSnapshotId |-> world.id]}
/\ after=[before EXCEPT !.phase="BoostCheckpoint",!.pendingPlayer=player,!.acted=@ \cup {player},!.boosts[player]=[mode |-> "Pay",amount |-> amount,transaction |-> transaction]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: fund, hosted, CheckpointPhysicalIds103, EscalatingResourceContestBoostRule108, EscalatingResourceContestCurrent108, EscalatingResourceContestPoolIds108, EscalatingResourceContestRecurringPermission108, LiabilityMarkerCounterDeparture106, LiabilityMarkerFundController106, SetupPlayers
PayExposureMarkerAction105 · operator
reference-profile · input revision 2 · CC0 1.0
PayExposureMarkerAction105(before,after,stack,world,afterWorld,declarations,afterDeclarations,cardFacts,mods,permissions,selected,payment) ==
/\ before.phase="Reserved" /\ world.outcome="Playing" /\ Len(stack)>0 /\ OwnActionPhase5(world.turn,before.player)
/\ WindowTop9(stack).id=before.windowId /\ WindowTop9(stack).busy=before.option /\ WindowTop9(stack).busyTransaction=before.transaction /\ WindowTop9(stack).stage="Resolving"
/\ CurrentExposureMarkerState105(world,declarations,cardFacts,ExposureMarkerStateView105(world.objects,declarations)) /\ ExposureMarkerActionStatusGate105(before.kind,ExposureMarkerStateView105(world.objects,declarations).hasExposureMarkers)
/\ ExposureMarkerCostModifiers105(world,before.kind,mods,cardFacts) /\ permissions=world.exposureMarkerSpendPermissions
/\ \A p \in DOMAIN permissions : ExampleFamily011ExposureMarkerPermission105(world,before.kind,before.transaction,permissions[p],cardFacts)
/\ selected \subseteq ExposureMarkerResourceUnitEligible105(world,before.player,permissions) /\ Cardinality(selected)=ExposureMarkerResourceUnitCost105(mods)
/\ world.actionPoints[before.player]>=1 /\ afterWorld.id \in Nat \ {0} /\ afterWorld.id#world.id
/\ BankSpendReturn4(world.objects,afterWorld.objects,selected,TRUE)
/\ afterWorld=[world EXCEPT !.id=afterWorld.id,!.objects=afterWorld.objects,!.controllers=Without101(@,selected),
!.actionPoints[before.player]=@-1,!.spent[before.player]=@+1]
/\ CurrentExposureMarkerState105(afterWorld,afterDeclarations,cardFacts,ExposureMarkerStateView105(afterWorld.objects,afterDeclarations)) /\ ExposureMarkerActionStatusGate105(before.kind,ExposureMarkerStateView105(afterWorld.objects,afterDeclarations).hasExposureMarkers)
/\ payment=[tag |-> "BasicExposureMarkerTriggerPayment",id |-> before.transaction,actionId |-> before.id,player |-> before.player,
beforeSnapshot |-> world.id,afterSnapshot |-> afterWorld.id,actionPoints |-> 1,resourceUnits |-> ExposureMarkerResourceUnitCost105(mods),paidCounterIds |-> selected,complete |-> TRUE]
/\ LET action==NewAction5(before.id,before.player,ExposureMarkerActionKey105(before.kind)) IN
/\ ActionStart5(world.turn,before.player,TRUE,<<[kind |-> "SpendActionPoints",amount |-> 1],[kind |-> "SpendResourceUnits",amount |-> ExposureMarkerResourceUnitCost105(mods)]>>,
TRUE,TRUE,TRUE,before.id,ExposureMarkerActionKey105(before.kind),action)
/\ after=[before EXCEPT !.phase="BaseCostCheckpoint",!.activationSnapshot=world.id,!.action=action,!.payment=payment]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: WindowTop9, action, CurrentExposureMarkerState105, ExampleFamily011ExposureMarkerPermission105, ExposureMarkerActionKey105, ExposureMarkerActionStatusGate105, ExposureMarkerCostModifiers105, ExposureMarkerResourceUnitCost105, ExposureMarkerResourceUnitEligible105, ExposureMarkerStateView105, Without101, BankSpendReturn4, ActionStart5, OwnActionPhase5
PayResourceAdditional105 · operator
reference-profile · input revision 2 · CC0 1.0
PayResourceAdditional105(before,after,world,afterWorld,cardFacts,assignments,successors,usedIds,transaction,eventIds,beforeHistory,afterHistory,events) ==
/\ before.phase="AdditionalCosts" /\ before.target \in ResourceTargetIds105(world) /\ before.target \notin world.currentRetireProhibitions /\ ResourceAdditionalCosts105(before,world,cardFacts)
/\ transaction \in Nat \ {0} /\ transaction#before.transaction /\ DOMAIN assignments=DOMAIN before.effectCosts
/\ \A cost \in DOMAIN assignments : assignments[cost] \subseteq before.effectCosts[cost].eligible /\ Cardinality(assignments[cost])=before.effectCosts[cost].amount
/\ \A a,b \in DOMAIN assignments : a#b => assignments[a] \cap assignments[b]={}
/\ DOMAIN eventIds=DOMAIN assignments /\ Cardinality({eventIds[cost] : cost \in DOMAIN eventIds})=Cardinality(DOMAIN eventIds)
/\ \A cost \in DOMAIN eventIds : eventIds[cost] \in (Nat \ {0}) \ DOMAIN beforeHistory
/\ LET selected==UNION {assignments[id] : id \in DOMAIN assignments}
newEvents==[cost \in DOMAIN assignments |-> MovementEvent8(eventIds[cost],"Retire",assignments[cost])]
IN /\ CardBatchTransfer8(world.objects,afterWorld.objects,selected,successors,usedIds,"SideADiscard","Down",[id \in selected |-> "discard"])
/\ afterWorld.id \in Nat \ {0} /\ afterWorld.id#world.id
/\ afterWorld=[world EXCEPT !.id=afterWorld.id,!.objects=afterWorld.objects,
!.controllers=[id \in (DOMAIN @ \ selected) \cup {successors[old] : old \in selected} |->
IF id \in DOMAIN @ \ selected THEN @[id] ELSE "SideA"],!.currentRetireProhibitions=afterWorld.currentRetireProhibitions]
/\ before.target \notin afterWorld.currentRetireProhibitions
/\ afterHistory=[id \in DOMAIN beforeHistory \cup {eventIds[cost] : cost \in DOMAIN eventIds} |->
IF id \in DOMAIN beforeHistory THEN beforeHistory[id] ELSE newEvents[CHOOSE cost \in DOMAIN eventIds : eventIds[cost]=id]]
/\ \A cost \in DOMAIN assignments : RecordMovement8(beforeHistory,[id \in DOMAIN beforeHistory \cup {eventIds[cost]} |->
IF id=eventIds[cost] THEN newEvents[cost] ELSE beforeHistory[id]],eventIds[cost],"Retire",assignments[cost],"Complete",TRUE,{newEvents[cost]})
/\ events={newEvents[cost] : cost \in DOMAIN newEvents}
/\ after=[before EXCEPT !.phase="AdditionalCostCheckpoint",!.nestedTransaction=transaction]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: newEvents, selected, ResourceAdditionalCosts105, ResourceTargetIds105, CardBatchTransfer8, RecordMovement8
PersistentCapacityLossQuantity104 · operator
reference-profile · input revision 2 · CC0 1.0
PersistentCapacityLossQuantity104(objects) == Cardinality({id \in DOMAIN objects : objects[id].form="Counter" /\ objects[id].kind="PersistentCapacityLoss" /\ objects[id].zone="SideBPersistentCapacityLoss" /\ objects[id].host=0})Exact module download · Source bundle and reproduction instructions
PlayerInformationView102 · operator
reference-profile · input revision 2 · CC0 1.0
PlayerInformationView102(facts,player,currentSnapshot) ==
[id \in {i \in DOMAIN facts : player \in facts[i].viewers /\ facts[i].snapshot=currentSnapshot} |-> facts[id].value]Exact module download · Source bundle and reproduction instructions
PrepareExposureMarkerEffect105 · operator
reference-profile · input revision 2 · CC0 1.0
PrepareExposureMarkerEffect105(before,after,world,context,reference,id,cardFacts) ==
/\ before.phase="Targeted" /\ context.phase="Resolving" /\ context.currentRef=reference /\ context.currentWorld=world.id
/\ reference.id=before.instruction /\ reference.abilityInstance=before.id /\ reference.source=RuleAbilitySource9(ExposureMarkerActionRule105(before.kind))
/\ context.actualEffects=ActualExpectedEffects99(context.state.effects) /\ id \in DOMAIN context.templates
/\ context.templates[id].kind=IF before.kind="RetireResource" THEN "RetireCards" ELSE "RemoveExposureMarkers"
/\ LET removed==id \notin DOMAIN context.actualEffects
costs==IF before.kind="RetireResource" /\ ~removed /\ before.target \in ResourceTargetIds105(world) /\ before.target \notin world.currentRetireProhibitions THEN world.additionalResourceCosts ELSE [key \in {} |-> key]
IN /\ IF removed THEN TRUE ELSE context.actualEffects[id].kind=context.templates[id].kind /\ context.actualEffects[id].targetCard=before.target /\ context.actualEffects[id].actor=before.player /\ context.actualEffects[id].value=1
/\ (before.kind="RetireResource" /\ ~removed /\ before.target \in ResourceTargetIds105(world) /\ before.target \notin world.currentRetireProhibitions => ResourceKnownCostInventory105(world,before.target,costs,cardFacts))
/\ after=[before EXCEPT !.effective=[mode |-> IF removed THEN "Removed" ELSE "Kept",reference |-> reference,effectId |-> id],
!.effectCosts=costs,!.phase=IF DOMAIN costs={} THEN "EffectReady" ELSE "AdditionalCosts"]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ActualExpectedEffects99, RuleAbilitySource9, costs, removed, ExposureMarkerActionRule105, ResourceKnownCostInventory105, ResourceTargetIds105
PrintedLinkObjectIds107 · operator
reference-profile · input revision 2 · CC0 1.0
PrintedLinkObjectIds107(world) ==
{id \in DOMAIN world.objects : world.objects[id].form="Card" /\ world.objects[id].card \in DOMAIN world.definitions /\
LinkDefinition107(world,world.objects[id]) \in DOMAIN world.linkSymbolFacts}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: LinkDefinition107
PublicChoiceFacts102 · operator
reference-profile · input revision 2 · CC0 1.0
PublicChoiceFacts102(actualOpenRememberedChoices,snapshot) ==
[id \in DOMAIN actualOpenRememberedChoices |-> InformationFact102(actualOpenRememberedChoices[id],SetupPlayers,snapshot)]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InformationFact102, SetupPlayers
PublishBidOccurrence1014 · operator
reference-profile · input revision 2 · CC0 1.0
PublishBidOccurrence1014(world,event,definition,card,priorEvents,occurrence,cardFacts) ==
/\ cardFacts=world.cardFacts /\ BidPublished1014(event,world) /\ card \in DOMAIN cardFacts /\ BidObserverRule1014(card)#"UnsupportedObserver"
/\ priorEvents=[id \in {id \in DOMAIN world.bidEvents : world.bidEvents[id].serial<event.serial} |-> world.bidEvents[id]]
/\ definition.syntax.source.object \in DOMAIN world.objects /\ LinkDefinition107(world,world.objects[definition.syntax.source.object])=card
/\ ConditionalDefinitionValid96(definition) /\ definition.primaryKind="Trigger" /\ definition.trigger.kinds={"BidsRevealedAndPaid"}
/\ definition.triggerRequirements={} /\ BidObserverCondition1014(BidObserverRule1014(card),event,priorEvents,cardFacts)
/\ occurrence.kind="BidsRevealedAndPaid" /\ occurrence.effectId=event.id /\ occurrence.snapshot=event.snapshot /\ occurrence.bidId=event.bidId
/\ occurrence.amounts=event.amounts /\ occurrence.result=event.result /\ occurrence.scopeKind="Ability" /\ occurrence.scopeDefinition=ConditionalKey96(definition)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ConditionalDefinitionValid96, ConditionalKey96, BidObserverCondition1014, BidObserverRule1014, BidPublished1014, LinkDefinition107
PublishDividendPlan1013 · operator
reference-profile · input revision 2 · CC0 1.0
PublishDividendPlan1013(before,next,instance,event,basis,plan) ==
/\ OpenDividendPlan1013(before,instance,event,basis,plan)
/\ next=[before EXCEPT !.dividendBodyAnchors=ReplacementOverlay99(@,[id \in {plan.instance} |-> [basis |-> basis,reference |-> plan.reference]])]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, OpenDividendPlan1013
PublishSabotageOccurrences1012 · operator
reference-profile · input revision 2 · CC0 1.0
PublishSabotageOccurrences1012(world,batch,allocation,snapshot,beforeSnapshot,occurrences) ==
/\ batch.id \in DOMAIN world.sabotageEvents /\ batch=world.sabotageEvents[batch.id] /\ batch.objects#{}
/\ snapshot.id=world.id /\ snapshot.objects=world.objects /\ batch.afterSnapshot=world.id /\ beforeSnapshot.id=batch.beforeSnapshot
/\ DOMAIN allocation={0} \cup batch.objects /\ {allocation[unit] : unit \in DOMAIN allocation} \subseteq (Nat \ {0}) \ world.usedOccurrenceIds
/\ Cardinality({allocation[unit] : unit \in DOMAIN allocation})=Cardinality(DOMAIN allocation)
/\ occurrences=[id \in {allocation[unit] : unit \in DOMAIN allocation} |-> LET unit==CHOOSE unit \in DOMAIN allocation : allocation[unit]=id
IN NewSabotageOccurrence1012(id,batch,unit,snapshot,beforeSnapshot)]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: unit, NewSabotageOccurrence1012
PurgeClusterIds101 · operator
reference-profile · input revision 2 · CC0 1.0
PurgeClusterIds101(objects) ==
{i \in DOMAIN objects : objects[i].form="Counter" /\ objects[i].kind="SchemaAtom180" /\ ~objects[i].virtual /\
objects[i].host \in DOMAIN objects /\ objects[objects[i].host].form="Card"}Exact module download · Source bundle and reproduction instructions
PurgeClusterOriginalProjectionPost101 · operator
reference-profile · input revision 2 · CC0 1.0
PurgeClusterOriginalProjectionPost101(objects,afterObjects,returnedToBank,revertedAndRetireed) ==
LET plan==PurgeClusterPlan101(objects)
IN /\ returnedToBank=plan.bank /\ revertedAndRetireed=plan.revertAndRetire
/\ DOMAIN afterObjects=DOMAIN objects \ plan.targets
/\ \A i \in DOMAIN afterObjects : afterObjects[i]=objects[i]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: plan
PurgeClusterPlan101 · operator
reference-profile · input revision 2 · CC0 1.0
PurgeClusterPlan101(objects) ==
LET targets==PurgeClusterIds101(objects)
IN [targets |-> targets,
bank |-> {i \in targets : objects[i].card="none"},
revertAndRetire |-> {i \in targets : objects[i].card#"none"}]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: targets
RandomDamageChoices104 · operator
reference-profile · input revision 2 · CC0 1.0
RandomDamageChoices104(population,amount) == {selected \in SUBSET population : Cardinality(selected)=amount}Exact module download · Source bundle and reproduction instructions
ReadDividendExampleFamily052Requirement1013 · operator
reference-profile · input revision 2 · CC0 1.0
ReadDividendExampleFamily052Requirement1013(world,objective,read) ==
/\ objective \in DOMAIN world.objects /\ world.objects[objective].form="Card" /\ world.objects[objective].kind="Objective"
/\ world.requirementProfile="PrintedAndExampleFamily052Only"
/\ LET card==world.definitions[world.objects[objective].card]
sources=={id \in DOMAIN world.objects : world.objects[id].form="Card" /\ world.objects[id].kind="Attachment" /\ world.objects[id].deployed /\ world.objects[id].zone="Play" /\ world.objects[id].activated /\ world.objects[id].face="Up" /\
world.definitions[world.objects[id].card]="Specimen0208" /\ world.objects[id].area="Root" /\ world.objects[id].targetSite=world.objects[objective].targetSite /\ world.objects[objective].deployed /\ world.objects[objective].area="Root"}
IN /\ DividendFact1013(card,world.cardFacts)
/\ read=[tag |-> "CurrentExampleFamily052ObjectiveRequirement",snapshotId |-> world.id,object |-> objective,sourceIds |-> sources,sourceSHA |-> world.cardFacts["Specimen0208"].sourceSHA,
value |-> DividendFacts1013!DividendPrintedFacts1013[card].requirement-Cardinality(sources)]
/\ world.requirements[objective]=read.valueExact module download · Source bundle and reproduction instructions
Resolved project definitions: card, sources, DividendFact1013, DividendFacts1013!DividendPrintedFacts1013
ReadEmpty109 · operator
reference-profile · input revision 2 · CC0 1.0
ReadEmpty109(world,cardFacts,link,read) ==
/\ EmptyLink109(world,cardFacts,link)
/\ read=[tag |-> "CurrentLinkedEmpty",snapshotId |-> world.id,linkId |-> link.id,host |-> link.host,physical |-> link.physical,
kind |-> link.kind,loadDefinition |-> link.loadDefinition,linkedLoads |-> LinkedLoadIds109(world,link),
effectiveCounterIds |-> HostedCounterIds109(world.objects,link.host,link.kind),
empty |-> LinkedLoadIds109(world,link)#{} /\ HostedCounterIds109(world.objects,link.host,link.kind)={}]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: EmptyLink109, HostedCounterIds109, LinkedLoadIds109
ReadSabotageDiscardSite1012 · operator
reference-profile · input revision 2 · CC0 1.0
ReadSabotageDiscardSite1012(frame,world,viewer,currentVisibleIds,read) ==
/\ viewer \in SetupPlayers /\ currentVisibleIds=world.currentLookIds[viewer] /\ frame.packet.key \in world.completedSabotage /\ frame.id \in world.usedProcedures
/\ frame.complete /\ frame.phase="Complete" /\ frame.choiceSealed /\ frame.afterWorld=world.id
/\ LET moved=={frame.successors[id] : id \in DOMAIN frame.successors}
IN /\ moved \subseteq DOMAIN world.objects /\ \A id \in moved : world.objects[id].zone="SideADiscard" /\ world.objects[id].face="Down"
/\ read=[tag |-> "SabotageArchiveLook",viewer |-> viewer,snapshotId |-> world.id,
visible |-> DiscardSiteVisibleCards4(moved,[id \in moved |-> world.objects[id].face],viewer,currentVisibleIds)]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: moved, DiscardSiteVisibleCards4, SetupPlayers
ReadSideBLink107 · operator
reference-profile · input revision 2 · CC0 1.0
ReadSideBLink107(world,cardFacts,base,declarations,read) ==
/\ LinkBaseRead107(world,cardFacts,base) /\ CurrentLinkDeclarations107(world,cardFacts,declarations)
/\ read=[tag |-> "CurrentSideBLink",snapshotId |-> world.id,profile |-> base.object,base |-> base.value,
contributions |-> [id \in DOMAIN declarations |-> declarations[id].projection.value],
value |-> base.value+SumMap([id \in DOMAIN declarations |-> declarations[id].projection.value])]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CurrentLinkDeclarations107, LinkBaseRead107, SumMap
ReceivePriorityAfterCheckpoint103 · operator
reference-profile · input revision 2 · CC0 1.0
ReceivePriorityAfterCheckpoint103(frame,ledger,beforeStack,afterStack,receipt) ==
/\ CheckpointDrained103(frame,ledger,beforeStack) /\ receipt.id=frame.id
/\ CheckpointPriorityWithConditionals96(ledger,beforeStack,afterStack,receipt)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CheckpointPriorityWithConditionals96, CheckpointDrained103
RecognizeCheckpoint103 · operator
reference-profile · input revision 2 · CC0 1.0
RecognizeCheckpoint103(before,after,beforeLedger,afterLedger,beforeStack,afterStack,x) ==
/\ CheckpointAt103(before,"ProcedureCodee605a78f5d5e") /\ x.cp.id=before.id /\ x.cp.caller=before.caller
/\ x.cp.beginSnapshot.id=before.beginSnapshotId /\ x.cp.processingSnapshot.id=before.snapshotId
/\ CASE x.route="Persistent" ->
ProcessPersistentCheckpoint912(x.registry,beforeLedger,afterLedger,beforeStack,afterStack,x.definitions,x.lexemes,x.cp,
x.conditions,x.allocation,x.bindings,x.departures,x.holds,x.scope,x.usedWindows,x.cardFacts,x.world,x.authority)
[] x.route="Ordinary" ->
ProcessConditionalCheckpoint99(beforeLedger,afterLedger,beforeStack,afterStack,x.definitions,x.lexemes,x.cp,
x.conditions,x.allocation,x.bindings,x.departures,x.holds,x.usedWindows,x.cardFacts)
[] OTHER -> FALSE
/\ LET advanced==[after EXCEPT !.recognition=before.recognition,!.recognized=before.recognized]
IN /\ CheckpointStageAdvance103(before,advanced,"ProcedureCodee605a78f5d5e",before.snapshotId)
/\ after=[advanced EXCEPT !.recognition=x.cp,!.recognized=CheckpointMemberMap103(afterLedger,before.id)]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ProcessConditionalCheckpoint99, ProcessPersistentCheckpoint912, advanced, CheckpointAt103, CheckpointMemberMap103, CheckpointStageAdvance103
RecordBidGuess1014 · operator
reference-profile · input revision 2 · CC0 1.0
RecordBidGuess1014(before,after,world,player,guess,continuation) ==
/\ BidCurrent1014(before,world) /\ before.phase="WaitingReveal" /\ before.packet.participants={"SideB"} /\ player="SideA" /\ before.guess="NoValue"
/\ "Selection" \in before.generalStages /\ guess \in {"Even","Odd"} /\ continuation=world.bidContinuations[before.id]
/\ continuation.tag="AuthorizedBidGuess" /\ continuation.bidId=before.id /\ continuation.instance=before.caller.abilityInstance /\ continuation.player=player /\ continuation.snapshotId=world.id
/\ after=[before EXCEPT !.guess=guess]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: BidCurrent1014
RecordHostDeparture103 · operator
reference-profile · input revision 2 · CC0 1.0
RecordHostDeparture103(beforeHistory,afterHistory,eventId,beforeObjects,afterObjects,source,sourceAfter,hostedSuccessors) ==
/\ eventId \in Nat \ {0} /\ <<"Movement",eventId>> \notin DOMAIN beforeHistory /\ source \in DOMAIN beforeObjects
/\ sourceAfter \in DOMAIN afterObjects /\ afterObjects[sourceAfter].card=beforeObjects[source].card
/\ LET hosted=={id \in DOMAIN beforeObjects : beforeObjects[id].host=source}
current=={IF id \in DOMAIN hostedSuccessors THEN hostedSuccessors[id] ELSE id : id \in hosted}
objectiveCompletionLeft==beforeObjects[source].form="Card" /\ beforeObjects[source].kind="Objective" /\
beforeObjects[source].zone \in SetupObjectiveZones /\ afterObjects[sourceAfter].zone \notin SetupObjectiveZones
uninstalled==beforeObjects[source].form="Card" /\ beforeObjects[source].deployed /\ ~afterObjects[sourceAfter].deployed
IN /\ DOMAIN hostedSuccessors \subseteq hosted
/\ \A id \in DOMAIN hostedSuccessors : hostedSuccessors[id] \in DOMAIN afterObjects /\
afterObjects[hostedSuccessors[id]].card=beforeObjects[id].card /\ hostedSuccessors[id]#id /\ id \notin DOMAIN afterObjects
/\ objectiveCompletionLeft \/ uninstalled
/\ afterHistory=[id \in DOMAIN beforeHistory \cup {<<"Movement",eventId>>} |-> IF id= <<"Movement",eventId>>
THEN [source |-> source,objectiveCompletionLeft |-> objectiveCompletionLeft,uninstalled |-> uninstalled,hostRemoved |-> uninstalled \/ objectiveCompletionLeft,children |-> current] ELSE beforeHistory[id]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: current, hosted, objectiveCompletionLeft, uninstalled
RemoveLiabilityMarker106 · operator
reference-profile · input revision 2 · CC0 1.0
RemoveLiabilityMarker106(context,reference,world,id,cardFacts,packet,afterObjects,selected,successors,usedIds,printed,owners,visible,batchId,beforeHistory,afterHistory,events) ==
/\ LiabilityMarkerPacket106(context,reference,world,id,cardFacts,packet) /\ packet.operation="Remove"
/\ selected \subseteq MovableLiabilityMarkerIds106(world.objects)
/\ Cardinality(selected)=IF packet.amount<=Cardinality(MovableLiabilityMarkerIds106(world.objects)) THEN packet.amount ELSE Cardinality(MovableLiabilityMarkerIds106(world.objects))
/\ LiabilityMarkerCounterDeparture106(world.objects,afterObjects,selected,successors,usedIds,printed,owners,visible,batchId,beforeHistory,afterHistory,events)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: LiabilityMarkerCounterDeparture106, LiabilityMarkerPacket106, MovableLiabilityMarkerIds106
ReserveExposureMarkerAction105 · operator
reference-profile · input revision 2 · CC0 1.0
ReserveExposureMarkerAction105(beforeStack,afterStack,world,declarations,cardFacts,state,kind,option,legality,actionId,usedActions,frame) ==
/\ kind \in {"RetireResource","RemoveExposureMarker"} /\ CurrentExposureMarkerState105(world,declarations,cardFacts,state)
/\ ExposureMarkerActionStatusGate105(kind,state.hasExposureMarkers) /\ OwnActionPhase5(world.turn,ExposureMarkerActionActor105(kind)) /\ world.outcome="Playing"
/\ actionId \in (Nat \ {0}) \ usedActions /\ Len(beforeStack)>0
/\ LET w==WindowTop9(beforeStack) IN
/\ w.kind="NeutralValue00001" /\ WindowSiteAllowed9("NeutralValue00001",w.site)
/\ w.site=TurnPrioritySite9(world.turn,world.step,world.phaseId,world.actionPoints[ExposureMarkerActionActor105(kind)],[turn |-> world.turn,step |-> world.step])
/\ \A i \in 1..Len(beforeStack) : beforeStack[i].kind="NeutralValue00001" => beforeStack[i].busy.id=0
/\ option.kind="NeutralValue00001" /\ option.controller=ExposureMarkerActionActor105(kind) /\ option.source=RuleAbilitySource9(ExposureMarkerActionRule105(kind))
/\ option.target=0 /\ option.newStructures={}
/\ BeginPriorityOption9(beforeStack,afterStack,option,world.objects,legality,[id \in {} |-> id])
/\ frame=[id |-> actionId,kind |-> kind,player |-> ExposureMarkerActionActor105(kind),windowId |-> w.id,option |-> option,transaction |-> legality.transactionId,
activationSnapshot |-> 0,phase |-> "Reserved",action |-> [id |-> 0],target |-> 0,instruction |-> 0,effective |-> [mode |-> "NoValue"],
nestedTransaction |-> 0,effectCosts |-> [id \in {} |-> id],payment |-> [complete |-> FALSE]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: BeginPriorityOption9, RuleAbilitySource9, TurnPrioritySite9, WindowSiteAllowed9, w, CurrentExposureMarkerState105, ExposureMarkerActionActor105, ExposureMarkerActionRule105, ExposureMarkerActionStatusGate105, OwnActionPhase5
ResolveCharge1010 · operator
reference-profile · input revision 2 · CC0 1.0
ResolveCharge1010(context,world,id,cardFacts,admission,spec,afterObjects,afterHistory,afterCompleted,added,eventId,completion,events) ==
/\ ChargePacket1010(context,world,id,cardFacts,admission,spec)
/\ ChargeAdmissionKey1010(context,id) \notin world.completedCharges /\ eventId \in (Nat \ {0}) \ world.chargeEventIds
/\ LET targets==CurrentChargeTargets1010(world,admission,spec)
IN /\ Cardinality(DOMAIN added)=Cardinality(targets)
/\ {added[i].host : i \in DOMAIN added}=targets
/\ \A target \in targets : Cardinality({i \in DOMAIN added : added[i].host=target})=1
/\ \A i \in DOMAIN added : added[i]=LoadedCounterToken109("Power",world.objects[added[i].host].zone,added[i].host,spec.actor)
/\ BankMintProjection4(world.objects,afterObjects,added,Cardinality(targets),"Power",world.usedObjects,BankDefaultSource4("Place",FALSE,[kind |-> "NoValue"]),TRUE,TRUE)
/\ afterHistory=world.loadHistory /\ afterCompleted=world.completedCharges \cup {ChargeAdmissionKey1010(context,id)}
/\ completion=[tag |-> "ChargeInstructionComplete",id |-> eventId,reference |-> context.currentRef,admission |-> ChargeAdmissionKey1010(context,id),charged |-> targets,complete |-> TRUE]
/\ events={[tag |-> "PowerCounterPlacedByCharge",instruction |-> context.currentRef,host |-> target,counter |-> CHOOSE i \in DOMAIN added : added[i].host=target,
source |-> context.currentRef.source,snapshotId |-> world.id] : target \in targets}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: targets, ChargeAdmissionKey1010, ChargePacket1010, LoadedCounterToken109, BankDefaultSource4, BankMintProjection4
ResolveDamageBatch104 · operator
reference-profile · input revision 2 · CC0 1.0
ResolveDamageBatch104(before,after,objects,afterObjects,successors,usedIds,owners,addedCore,beforeHistory,afterHistory,batchId,events) ==
/\ before.phase="ReadyToRetire" /\ before.outcome="Playing" /\ objects=before.beforeObjects
/\ before.packet.amount<=Cardinality(before.bHand) /\ Cardinality(before.selected)=before.packet.amount
/\ LET cardsAfter==DamageOwnerMoveMap104(
DamageOwnerMoveMap104(objects,{id \in before.selected : owners[objects[id].card]="SideB"},
[id \in {i \in before.selected : owners[objects[i].card]="SideB"} |-> successors[id]],"SideB"),
{id \in before.selected : owners[objects[id].card]="SideA"},
[id \in {i \in before.selected : owners[objects[i].card]="SideA"} |-> successors[id]],"SideA")
fresh=={successors[id] : id \in before.selected}
movementEvents=={MovementEvent8(batchId,"Retire",before.selected)}
damageEvent==DamageSufferedEvent104(before,batchId,successors)
IN /\ DamageCardBatchTransfer104(objects,cardsAfter,before.selected,successors,usedIds,owners)
/\ DamageCoreCounters104(before.packet,cardsAfter,afterObjects,addedCore,usedIds \cup fresh)
/\ RecordMovement8(beforeHistory,afterHistory,batchId,"Retire",before.selected,"Complete",TRUE,movementEvents)
/\ events=movementEvents \cup {damageEvent}
/\ after=[before EXCEPT !.phase="Complete",!.finalObjects=afterObjects,
!.completion=[batchId |-> batchId,damageEvent |-> damageEvent,movementEvent |-> MovementEvent8(batchId,"Retire",before.selected)]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: cardsAfter, damageEvent, fresh, movementEvents, DamageCardBatchTransfer104, DamageCoreCounters104, MovementEvent8, RecordMovement8
ResolveExposureMarkerAction105 · operator
reference-profile · input revision 2 · CC0 1.0
ResolveExposureMarkerAction105(before,after,world,afterObjects,successors,usedIds,printed,owners,visible,batchId,beforeHistory,afterHistory,beforeDepartures,afterDepartures,events) ==
/\ before.phase="EffectReady" /\ before.action.status="Effects" /\ world.outcome="Playing"
/\ LET blocked==IF before.kind="RetireResource" THEN world.currentRetireProhibitions ELSE world.currentExposureMarkerRemovalProhibitions
due==IF before.effective.mode="Kept" /\ before.target \in ExposureMarkerActionTargets105(before,world) /\ before.target \notin blocked THEN {before.target} ELSE {}
cards=={id \in due : world.objects[id].card#"none"}
IN /\ CheckpointRetirePost103(world.objects,afterObjects,due,successors,usedIds,printed,owners,visible)
/\ IF cards={} THEN
/\ BankSpendReturn4(world.objects,afterObjects,due,TRUE) /\ afterHistory=beforeHistory /\ afterDepartures=beforeDepartures
ELSE
/\ RecordMovement8(beforeHistory,afterHistory,batchId,"Retire",cards,"Complete",TRUE,{MovementEvent8(batchId,"Retire",cards)})
/\ IF before.kind="RetireResource" THEN RecordHostDeparture103(beforeDepartures,afterDepartures,batchId,world.objects,afterObjects,before.target,successors[before.target],[id \in {} |-> id])
ELSE afterDepartures=beforeDepartures
/\ events=(IF cards={} THEN {} ELSE {MovementEvent8(batchId,"Retire",cards)}) \cup
(IF before.kind="RemoveExposureMarker" /\ due#{} THEN {[tag |-> "ExposureMarkerRemoved",actionId |-> before.id,player |-> "SideB",counter |-> before.target]} ELSE {})
/\ after=[before EXCEPT !.phase="EffectCheckpoint"]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: cards, due, CheckpointRetirePost103, RecordHostDeparture103, BankSpendReturn4, MovementEvent8, RecordMovement8
ResolveMandatoryLoop101 · operator
reference-profile · input revision 2 · CC0 1.0
ResolveMandatoryLoop101(frame,afterFrame,beforeGame,afterGame,count,witness,Iteration(_,_)) ==
/\ frame.kind="Mandatory" /\ frame.phase="Detected" /\ frame.resolver \in SetupPlayers
/\ count \in Nat /\ Len(witness)=count+1
/\ witness[1]=beforeGame /\ witness[count+1]=afterGame
/\ \A i \in 1..count : Iteration(witness[i],witness[i+1])
/\ afterFrame=[frame EXCEPT !.phase="Ended",!.iterations=count]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: SetupPlayers
ResolveOptionalTraversalLoop101 · operator
reference-profile · input revision 2 · CC0 1.0
ResolveOptionalTraversalLoop101(frame,afterFrame,withdrawTraversalProhibited,actor,actualTraversalDisposition) ==
/\ frame.kind="Optional" /\ frame.phase="Detected" /\ frame.traversal \in Nat \ {0}
/\ IF withdrawTraversalProhibited THEN actor="SideA" /\ actualTraversalDisposition="Continue"
ELSE actor="SideB" /\ actualTraversalDisposition="WithdrawTraversal"
/\ afterFrame=[frame EXCEPT !.phase="Ended",!.disposition=actualTraversalDisposition]Exact module download · Source bundle and reproduction instructions
ResolveSabotage1012 · operator
reference-profile · input revision 2 · CC0 1.0
ResolveSabotage1012(before,after,context,operation,world,next,packet,successors,afterId,eventId,eventMap,completion) ==
/\ SabotageFrameBound1012(before,context,operation,world,packet) /\ before.phase="ReadyRetire" /\ before.choiceSealed
/\ before.aHandChosen \subseteq world.aHand /\ before.aDrawPileCount=SabotageTotal1012(world,packet.amount)-Cardinality(before.aHandChosen)
/\ before.aDrawPileCount \in 0..Len(world.aDrawPile) /\ Cardinality(before.aHandChosen)<=SabotageTotal1012(world,packet.amount)
/\ afterId \in (Nat \ {0}) \ world.usedWorlds /\ eventId \in (Nat \ {0}) \ world.eventIds
/\ LET selected==SabotageSelected1012(before,world)
event==SabotageRetireEvent1012(eventId,before,world,afterId,successors)
IN /\ next.objects=SabotageRetireMap1012(world.objects,successors)
/\ CardBatchTransfer8(world.objects,next.objects,selected,successors,world.usedObjects,"SideADiscard","Down",[id \in selected |-> 0])
/\ eventMap=IF selected={} THEN [id \in {} |-> id] ELSE [id \in {eventId} |-> event]
/\ next=[world EXCEPT !.id=afterId,!.objects=next.objects,!.aHand=@ \ before.aHandChosen,!.aDrawPile=SubSeq(@,before.aDrawPileCount+1,Len(@)),
!.owners=ReplacementOverlay99(Without101(@,selected),[id \in {successors[old] : old \in selected} |-> world.owners[CHOOSE old \in selected : successors[old]=id]]),
!.usedObjects=@ \cup {successors[old] : old \in selected},!.usedProcedures=@ \cup {before.id},!.usedWorlds=@ \cup {afterId},
!.completedSabotage=@ \cup {packet.key},!.eventIds=@ \cup DOMAIN eventMap,!.sabotageEvents=ReplacementOverlay99(@,eventMap)]
/\ SabotageZones1012(next)
/\ after=[before EXCEPT !.phase="Complete",!.successors=successors,!.complete=TRUE,!.afterWorld=afterId]
/\ completion=[tag |-> "SabotageBodyComplete",reference |-> before.reference,operation |-> operation,snapshotId |-> afterId,frameId |-> before.id,
actor |-> "SideA",trashed |-> selected,events |-> DOMAIN eventMap,complete |-> TRUE]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, event, selected, SabotageFrameBound1012, SabotageRetireMap1012, SabotageTotal1012, SabotageZones1012, Without101, CardBatchTransfer8
ResourceAdditionalCosts105 · operator
reference-profile · input revision 2 · CC0 1.0
ResourceAdditionalCosts105(frame,world,cardFacts) ==
/\ frame.effectCosts=world.additionalResourceCosts /\ DOMAIN frame.effectCosts#{}
/\ \A id \in DOMAIN frame.effectCosts :
LET c==frame.effectCosts[id] IN
/\ c.snapshotId=world.id /\ c.actionId=frame.id /\ c.target=frame.target /\ c.kind="RetireCentralA" /\ c.amount=1
/\ ExposureMarkerSourceBound105(world,c.source,c.sourceObject,c.sourceSHA,cardFacts)
/\ c.eligible \subseteq {card \in DOMAIN world.objects : world.objects[card].form="Card" /\ world.objects[card].zone="SideAHand" /\ card \notin world.currentRetireProhibitions}
/\ (c.sourceObject.card="Specimen0212" => "SchemaAtom044" \in world.subtypes[frame.target])
/\ (c.sourceObject.card="Specimen0136" => c.source.object=frame.target /\ ThreatFlagGate93(<<[category |-> "AbilityFlag",subtype |-> "Threat",value |-> 3]>>,world.points))Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ThreatFlagGate93, c, ExposureMarkerSourceBound105
ResourceKnownCostInventory105 · operator
reference-profile · input revision 2 · CC0 1.0
ResourceKnownCostInventory105(world,target,costs,cardFacts) ==
LET required==ResourceKnownCostSources105(world,target,cardFacts)
observed=={costs[id].source.object : id \in {id \in DOMAIN costs : costs[id].source.object \in DOMAIN world.objects /\
world.objects[costs[id].source.object].card \in {"Specimen0212","Specimen0136"}}}
IN /\ observed=required
/\ \A source \in required : Cardinality({id \in DOMAIN costs : costs[id].source=ObjectAbilitySource9(source)})=1Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ObjectAbilitySource9, observed, required
ResourceKnownCostSources105 · operator
reference-profile · input revision 2 · CC0 1.0
ResourceKnownCostSources105(world,target,cardFacts) ==
{source \in world.activeSources \cap DOMAIN world.objects :
DefaultActive(world.objects[source],world.started,cardFacts) /\
((world.objects[source].card="Specimen0212" /\ "SchemaAtom044" \in world.subtypes[target]) \/
(world.objects[source].card="Specimen0136" /\ source=target /\
ThreatFlagGate93(<<[category |-> "AbilityFlag",subtype |-> "Threat",value |-> 3]>>,world.points)))}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ThreatFlagGate93, DefaultActive
ResourceTargetIds105 · operator
reference-profile · input revision 2 · CC0 1.0
ResourceTargetIds105(world) ==
{id \in DOMAIN world.objects : world.objects[id].form="Card" /\ world.objects[id].zone="Play" /\ world.objects[id].deployed /\
BasicCardTarget5("SideA","RetireResource",world.objects[id].kind,world.objects[id].zone,world.objects[id].deployed) /\ world.owners[world.objects[id].card]="SideB"}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: BasicCardTarget5
ResourceUnitPoolFact102 · operator
reference-profile · input revision 2 · CC0 1.0
ResourceUnitPoolFact102(player,objects,snapshot) ==
InformationFact102(Cardinality({i \in DOMAIN objects : objects[i].form="Counter" /\ objects[i].kind="ResourceUnit" /\
objects[i].zone=player \o "ResourceUnits"}),SetupPlayers,snapshot)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InformationFact102, SetupPlayers
RestoreDiscardConversions103 · operator
reference-profile · input revision 2 · CC0 1.0
RestoreDiscardConversions103(objects,afterObjects,conversions,afterConversions,printed) ==
LET due=={id \in DOMAIN objects \cap DOMAIN conversions : objects[id].zone \in {"SideADiscard","SideBDiscard"} /\ objects[id].card#"none"}
IN /\ \A id \in due : ConversionValid101(conversions[id]) /\ conversions[id].card=objects[id].card
/\ afterObjects=[id \in DOMAIN objects |-> IF id \in due THEN [objects[id] EXCEPT
!.form="Card",!.kind=printed[objects[id].card].kind,!.properties=printed[objects[id].card],!.host=0,!.deployed=FALSE]
ELSE objects[id]]
/\ afterConversions=Without101(conversions,due)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: due, ConversionValid101, Without101
ResumeConditionalInstructionAfterCheckpoint103 · operator
reference-profile · input revision 2 · CC0 1.0
ResumeConditionalInstructionAfterCheckpoint103(frame,ledger,stack,before,after,receipt) ==
/\ CheckpointDrained103(frame,ledger,stack) /\ receipt.id=frame.id
/\ ConditionalInstructionCheckpoint96(ledger,stack,before,after,receipt)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ConditionalInstructionCheckpoint96, CheckpointDrained103
ResumePaidAfterCheckpoint103 · operator
reference-profile · input revision 2 · CC0 1.0
ResumePaidAfterCheckpoint103(frame,ledger,stack,before,after,objects,transits,receipt) ==
/\ CheckpointDrained103(frame,ledger,stack) /\ receipt.id=frame.id
/\ PaidCheckpointWithConditionals96(ledger,stack,before,after,objects,transits,receipt)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: PaidCheckpointWithConditionals96, CheckpointDrained103
ReturnBid1014 · operator
reference-profile · input revision 2 · CC0 1.0
ReturnBid1014(before,after,completion,caller) ==
/\ completion.tag="BiddingInstructionComplete" /\ completion.result=before.result
/\ before.complete /\ ~before.returned /\ caller=before.revealCaller /\ completion.bidId=before.id /\ completion.caller=caller /\ completion.paid
/\ after=[before EXCEPT !.phase="Returned",!.returned=TRUE]Exact module download · Source bundle and reproduction instructions
ReturnCheckpointAfterReaction103 · operator
reference-profile · input revision 2 · CC0 1.0
ReturnCheckpointAfterReaction103(before,after,ledger,beforeStack,afterStack,caller) ==
/\ before.phase="Reaction" /\ ~before.returned /\ caller=before.caller
/\ CheckpointCaptured103(before,ledger) /\ DOMAIN before.recognized#{}
/\ ConditionalCheckpointDrained96(ledger,beforeStack,before.id)
/\ Len(beforeStack)>0 /\ WindowTop9(beforeStack).id=before.windowId
/\ DOMAIN WindowTop9(beforeStack).members=DOMAIN before.recognized
/\ \A id \in DOMAIN before.recognized : WindowTop9(beforeStack).members[id]=before.recognized[id]
/\ PopClosedPriorityWindow9(beforeStack,afterStack)
/\ after=[before EXCEPT !.phase="Returned",!.returned=TRUE]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ConditionalCheckpointDrained96, PopClosedPriorityWindow9, WindowTop9, CheckpointCaptured103
ReturnCheckpointWithoutReaction103 · operator
reference-profile · input revision 2 · CC0 1.0
ReturnCheckpointWithoutReaction103(before,after,ledger,world,completion,caller) ==
/\ CheckpointCompletion103(before,ledger,world,completion) /\ DOMAIN before.recognized={}
/\ caller=before.caller /\ after=[before EXCEPT !.phase="Returned",!.returned=TRUE]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CheckpointCompletion103
ReturnEscalatingResourceContest108 · operator
reference-profile · input revision 2 · CC0 1.0
ReturnEscalatingResourceContest108(before,after,world,completion) ==
/\ before.id \in DOMAIN world.escalatingResourceContestFrames /\ world.escalatingResourceContestFrames[before.id]=before /\ before.phase="Complete" /\ before.complete /\ ~before.returned
/\ completion=[tag |-> "OwnedEscalatingResourceContestProcedureReturn",escalatingResourceContestId |-> before.id,instance |-> before.instance,caller |-> before.caller,
operation |-> before.packet.effectId,resultEvent |-> before.resultEvent,complete |-> TRUE,unprocessedCheckpointRequests |-> {}]
/\ after=[before EXCEPT !.phase="Returned",!.returned=TRUE]Exact module download · Source bundle and reproduction instructions
ReturnExposureMarkerAction105 · operator
reference-profile · input revision 2 · CC0 1.0
ReturnExposureMarkerAction105(frame,beforeStack,afterStack,receipt) ==
/\ frame.phase="Complete" /\ frame.action.status="Complete" /\ Len(beforeStack)>0
/\ WindowTop9(beforeStack).id=frame.windowId /\ WindowTop9(beforeStack).busy=frame.option /\ WindowTop9(beforeStack).busyTransaction=frame.transaction
/\ CompletePriorityOption9(beforeStack,afterStack,receipt)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CompletePriorityOption9, WindowTop9
ReturnLiabilityMarkerFund106 · operator
reference-profile · input revision 2 · CC0 1.0
ReturnLiabilityMarkerFund106(before,after,world,afterObjects,successors,usedIds,printed,owners,visible,batchId,beforeHistory,afterHistory,events) ==
/\ world.traversal=before.traversal /\ world.outcome="Playing"
/\ LiabilityMarkerFundIds106(world.objects) \subseteq CheckpointPhysicalIds103(world.objects)
/\ ReturnLiabilityMarkerFund6(before,after,Cardinality(LiabilityMarkerFundIds106(world.objects)),Cardinality(LiabilityMarkerFundIds106(afterObjects)),0,Cardinality(LiabilityMarkerFundIds106(world.objects)))
/\ LiabilityMarkerCounterDeparture106(world.objects,afterObjects,LiabilityMarkerFundIds106(world.objects),successors,usedIds,printed,owners,visible,batchId,beforeHistory,afterHistory,events)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CheckpointPhysicalIds103, LiabilityMarkerCounterDeparture106, LiabilityMarkerFundIds106, ReturnLiabilityMarkerFund6
RevealBids1014 · operator
reference-profile · input revision 2 · CC0 1.0
RevealBids1014(before,after,world,cardFacts,transactions,continuation) ==
/\ cardFacts=world.cardFacts /\ BidCurrent1014(before,world) /\ before.phase \in {"RevealDue","WaitingReveal"} /\ DOMAIN before.selections=before.packet.participants
/\ BidRevealSupport1014(before,world,cardFacts)="OrdinaryFullPayment"
/\ continuation=world.bidContinuations[before.id] /\ continuation.tag="AuthorizedBidReveal" /\ continuation.bidId=before.id
/\ continuation.instance=before.caller.abilityInstance /\ continuation.snapshotId=world.id /\ continuation.source=before.caller.source
/\ (before.phase="RevealDue" => continuation.instruction=before.caller)
/\ (before.phase="WaitingReveal" => "Selection" \in before.generalStages /\ continuation.instruction#before.caller)
/\ (before.packet.sourceCard \in {"Specimen0191","Specimen0200"} => before.guess#"NoValue" /\ "Guess" \in before.generalStages)
/\ DOMAIN transactions=before.packet.participants /\ \A p \in DOMAIN transactions : transactions[p] \in (Nat \ {0}) \ BidReservedCosts1014(world)
/\ \A p,q \in DOMAIN transactions : p#q => transactions[p]#transactions[q]
/\ after=[before EXCEPT !.phase="ChoosePayment",!.revealed=before.packet.participants,!.paymentWorld=world.id,!.paymentScope=BidPaymentScope1014(world),
!.transactions=transactions,!.revealCaller=continuation.instruction,!.costs=[p \in before.packet.participants |-> BidNestedCost1014([before EXCEPT !.revealCaller=continuation.instruction],world,p,transactions[p])]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: BidCurrent1014, BidNestedCost1014, BidPaymentScope1014, BidReservedCosts1014, BidRevealSupport1014
RewriteCheckpointOrder103 · operator
reference-profile · input revision 2 · CC0 1.0
RewriteCheckpointOrder103(before,after,a,execution,compiledExceptions) ==
/\ before.phase="Steps" /\ ~before.returned /\ a.id \in DOMAIN compiledExceptions /\ compiledExceptions[a.id]=a
/\ a.checkpointId=before.id /\ a.snapshotId=before.snapshotId /\ a.rule="CheckpointOrder"
/\ a.directContradiction /\ ~a.prohibited /\ a.source.kind="Object" /\ a.source.object \in Nat \ {0}
/\ execution.tag="ActualCheckpointCardOverride" /\ execution.id=a.executionId /\ execution.source=a.source
/\ execution.instruction=a.instruction /\ execution.checkpointId=before.id /\ execution.snapshotId=before.snapshotId /\ execution.resolved
/\ a.beforeOwed=before.owed /\ a.discharged \subseteq SetupRange(before.owed)
/\ a.discharged \subseteq a.explicitlyReplacedObligations
/\ SetupRange(a.afterOwed)=SetupRange(before.owed) \ a.discharged
/\ Len(a.afterOwed)=Cardinality(SetupRange(a.afterOwed))
/\ after=[before EXCEPT !.owed=a.afterOwed,!.discharged=@ \cup a.discharged,!.overrideLog=Append(@,a),
!.point=IF a.afterOwed = <<>> THEN "ProcedureCodeb74d673a0fc6" ELSE a.afterOwed[1],!.phase=IF a.afterOwed = <<>> THEN "Completed" ELSE "Steps"]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: SetupRange
SabotageFrameBound1012 · operator
reference-profile · input revision 2 · CC0 1.0
SabotageFrameBound1012(frame,context,operation,world,packet) ==
/\ SabotagePacket1012(context,world,operation,packet) /\ SabotageSupport1012(packet)="SupportedResolutionComponent" /\ SabotageZones1012(world)
/\ frame.tag="SabotageResolution" /\ frame.id \in (Nat \ {0}) \ world.usedProcedures /\ ~frame.complete
/\ frame.contextId=context.id /\ frame.operation=operation /\ frame.reference=context.currentRef /\ frame.packet=packet /\ frame.scope=SabotageScope1012(world)
/\ packet.key \notin world.completedSabotageExact module download · Source bundle and reproduction instructions
Resolved project definitions: SabotagePacket1012, SabotageScope1012, SabotageSupport1012, SabotageZones1012
SabotageKey1012 · operator
reference-profile · input revision 2 · CC0 1.0
SabotageKey1012(context,operation) == <<context.id,context.currentRef,operation>>Exact module download · Source bundle and reproduction instructions
SabotageObserverRole1012 · operator
reference-profile · input revision 2 · CC0 1.0
SabotageObserverRole1012(card) ==
CASE card="Specimen0024" -> [actor |-> "SideA",scope |-> "CentralABatch"]
[] card \in {"Specimen0072","Specimen0110","Specimen0041"} -> [actor |-> "SideB",scope |-> "SideACard"]
[] OTHER -> [actor |-> "NoValue",scope |-> "Unsupported"]Exact module download · Source bundle and reproduction instructions
SabotageOmitted1012 · operator
reference-profile · input revision 2 · CC0 1.0
SabotageOmitted1012(context,operation,world,afterObjects,afterCentralA,afterADrawPile,events) ==
/\ context.phase="Resolving" /\ context.currentWorld=world.id /\ world.outcome="Playing"
/\ context.id \in DOMAIN world.expectedInstructions /\ context=world.expectedInstructions[context.id]
/\ operation \in DOMAIN context.templates /\ context.templates[operation].kind="SchemaAtom139"
/\ context.actualEffects=ActualExpectedEffects99(context.state.effects) /\ operation \notin DOMAIN context.actualEffects
/\ afterObjects=world.objects /\ afterCentralA=world.aHand /\ afterADrawPile=world.aDrawPile /\ events={}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ActualExpectedEffects99
SabotagePacket1012 · operator
reference-profile · input revision 2 · CC0 1.0
SabotagePacket1012(context,world,operation,packet) ==
/\ world.outcome="Playing" /\ context.phase="Resolving" /\ context.currentWorld=world.id
/\ context.id \in DOMAIN world.expectedInstructions /\ context=world.expectedInstructions[context.id]
/\ ExpectedEffectsValid99(context.state.effects) /\ context.actualEffects=ActualExpectedEffects99(context.state.effects) /\ operation \in DOMAIN context.actualEffects /\ operation \in DOMAIN context.templates
/\ SabotageKey1012(context,operation) \in DOMAIN world.sabotagePackets /\ packet=world.sabotagePackets[SabotageKey1012(context,operation)]
/\ LET e==context.actualEffects[operation] IN
/\ e.id=operation /\ e.kind="SchemaAtom139" /\ context.templates[operation].kind="SchemaAtom139" /\ e.value \in Int
/\ e.actor="SideA" /\ e.abilityController="SideB" /\ e.baseOrigin=context.currentRef.source
/\ e.sourceCard \in SabotageSources1012 /\ e.sourceCard=context.templates[operation].sourceCard /\ e.sourceSHA=context.templates[operation].sourceSHA
/\ e.sourceCard \in DOMAIN world.cardFacts /\ e.sourceSHA=world.cardFacts[e.sourceCard].sourceSHA
/\ packet=[tag |-> "CurrentSabotagePacket",key |-> SabotageKey1012(context,operation),reference |-> context.currentRef,snapshotId |-> world.id,
sourceCard |-> e.sourceCard,sourceSHA |-> e.sourceSHA,amount |-> e.value,actor |-> "SideA",abilityController |-> "SideB",sourcePhysical |-> packet.sourcePhysical,
choicePolicy |-> packet.choicePolicy,trashProfile |-> packet.trashProfile]
/\ context.currentRef.source.kind="Object" /\ packet.sourcePhysical \in DOMAIN world.sourceDefinitions /\ world.sourceDefinitions[packet.sourcePhysical]=e.sourceCard
/\ IF context.currentRef.source.object \in DOMAIN world.objects THEN world.objects[context.currentRef.source.object].card=packet.sourcePhysical
ELSE context.currentRef.source.object \in DOMAIN world.historicalPhysical /\ world.historicalPhysical[context.currentRef.source.object]=packet.sourcePhysicalExact module download · Source bundle and reproduction instructions
Resolved project definitions: ActualExpectedEffects99, ExpectedEffectsValid99, e, SabotageKey1012, SabotageSources1012
SabotagePublicSummary1012 · operator
reference-profile · input revision 2 · CC0 1.0
SabotagePublicSummary1012(event) ==
[tag |-> "SabotageRetireSummary",actor |-> event.actor,aHandCount |-> Cardinality(event.fromCentralA),aDrawPileCount |-> Len(event.fromADrawPile),destination |-> "SchemaAtom018",face |-> "Down"]Exact module download · Source bundle and reproduction instructions
SabotageRetireEvent1012 · operator
reference-profile · input revision 2 · CC0 1.0
SabotageRetireEvent1012(id,frame,world,afterId,successors) ==
[id |-> id,kind |-> "CardsRetireed",actor |-> "SideA",abilityController |-> frame.packet.abilityController,source |-> frame.reference.source,
sourceCard |-> frame.packet.sourceCard,sourceSHA |-> frame.packet.sourceSHA,reference |-> frame.reference,operation |-> frame.operation,
objects |-> SabotageSelected1012(frame,world),fromCentralA |-> frame.aHandChosen,fromADrawPile |-> SubSeq(world.aDrawPile,1,frame.aDrawPileCount),successors |-> successors,
beforeSnapshot |-> world.id,afterSnapshot |-> afterId,destination |-> "SideADiscard",face |-> "Down",simultaneous |-> TRUE]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: SabotageSelected1012
SabotageRetireMap1012 · operator
reference-profile · input revision 2 · CC0 1.0
SabotageRetireMap1012(objects,successors) ==
ReplacementOverlay99(Without101(objects,DOMAIN successors),[new \in {successors[old] : old \in DOMAIN successors} |->
[objects[CHOOSE old \in DOMAIN successors : successors[old]=new] EXCEPT !.zone="SideADiscard",!.face="Down",!.loc=0,!.host=0,!.deployed=FALSE,!.activated=FALSE,!.marks={}]])Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, Without101
SabotageScope1012 · operator
reference-profile · input revision 2 · CC0 1.0
SabotageScope1012(world) ==
[id |-> world.id,objects |-> world.objects,aHand |-> world.aHand,aDrawPile |-> world.aDrawPile,usedObjects |-> world.usedObjects,owners |-> world.owners,known |-> world.sideAKnowledge]Exact module download · Source bundle and reproduction instructions
SabotageSelected1012 · operator
reference-profile · input revision 2 · CC0 1.0
SabotageSelected1012(frame,world) == frame.aHandChosen \cup SetupRange(SubSeq(world.aDrawPile,1,frame.aDrawPileCount))Exact module download · Source bundle and reproduction instructions
Resolved project definitions: SetupRange
SabotageSources1012 · operator
reference-profile · input revision 2 · CC0 1.0
SabotageSources1012 == {"Specimen0159","Specimen0242","Specimen0025","Specimen0083","Specimen0041","Specimen0141","Specimen0048"}Exact module download · Source bundle and reproduction instructions
SabotageSupport1012 · operator
reference-profile · input revision 2 · CC0 1.0
SabotageSupport1012(packet) ==
CASE packet.choicePolicy#"InternalResolutionChoice" -> "RequiresTargetTimingAdapter"
[] packet.trashProfile#"OrdinaryUnreplaced" -> "RequiresOwningRetireAdapter"
[] OTHER -> "SupportedResolutionComponent"Exact module download · Source bundle and reproduction instructions
SabotageTotal1012 · operator
reference-profile · input revision 2 · CC0 1.0
SabotageTotal1012(world,amount) == MinOf(MaxOf(0,amount),Cardinality(world.aHand)+Len(world.aDrawPile))Exact module download · Source bundle and reproduction instructions
SabotageTriggerStipulation1012 · operator
reference-profile · input revision 2 · CC0 1.0
SabotageTriggerStipulation1012(world,d,event,rule,receipt) ==
/\ ConditionalDefinitionValid96(d) /\ d.primaryKind="Trigger" /\ d.triggerRequirements={1}
/\ ConditionalKey96(d) \in DOMAIN world.trashRules /\ rule=world.trashRules[ConditionalKey96(d)] /\ rule.definition=d
/\ rule.card \in DOMAIN world.cardFacts /\ rule.sourceSHA=world.cardFacts[rule.card].sourceSHA /\ rule.role=SabotageObserverRole1012(rule.card) /\ rule.role.scope#"Unsupported"
/\ d.syntax.source.kind="Object" /\ d.syntax.source.object \in DOMAIN world.objects
/\ world.sourceDefinitions[world.objects[d.syntax.source.object].card]=rule.card
/\ event.id \in DOMAIN world.sabotageOccurrences /\ event=world.sabotageOccurrences[event.id]
/\ event.batchId \in DOMAIN world.sabotageEvents /\ event.batch=world.sabotageEvents[event.batchId] /\ event.batch.id=event.batchId
/\ (event.unit=0 \/ event.unit \in event.batch.objects)
/\ event.kind=(IF event.unit=0 THEN "CardsRetireed" ELSE "CardRetireed") /\ event.object=event.unit
/\ event.actor=event.batch.actor /\ event.batch.objects#{} /\ event.batch.actor="SideA"
/\ LET matched==event.actor=rule.role.actor /\ (IF rule.role.scope="CentralABatch" THEN event.unit=0 /\ event.batch.fromCentralA#{} ELSE event.unit \in event.batch.objects)
IN receipt=[tag |-> "ConditionalTriggerStipulations",ability |-> d.syntax.id,source |-> d.syntax.source,occurrence |-> event.id,snapshotId |-> event.snapshot.id,results |-> [part \in {1} |-> matched]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ConditionalDefinitionValid96, ConditionalKey96, matched, SabotageObserverRole1012
SabotageZones1012 · operator
reference-profile · input revision 2 · CC0 1.0
SabotageZones1012(world) ==
/\ DeckObjectOrder8(world.objects,"SideA",world.aDrawPile)
/\ world.aHand={id \in DOMAIN world.objects : world.objects[id].form="Card" /\ world.objects[id].zone="SideAHand"}
/\ world.aHand \cap SetupRange(world.aDrawPile)={}
/\ DOMAIN world.objects \subseteq world.usedObjects /\ DOMAIN world.owners=DOMAIN world.objects
/\ \A id \in world.aHand \cup SetupRange(world.aDrawPile) : world.objects[id].side="SideA" /\ world.owners[id]="SideA" /\ ~world.objects[id].deployed /\ world.objects[id].host=0Exact module download · Source bundle and reproduction instructions
Resolved project definitions: DeckObjectOrder8, SetupRange
SelectDamageNext104 · operator
reference-profile · input revision 2 · CC0 1.0
SelectDamageNext104(before,after,objects,card,actor,receipt) ==
/\ before.phase="SelectingSequentially" /\ before.outcome="Playing" /\ objects=before.beforeObjects
/\ card \in before.bHand \ before.selected
/\ LET index==Len(before.selectionOrder)+1
slot==before.policy.slots[index]
selected==before.selected \cup {card}
IN /\ index<=before.packet.amount /\ actor=slot.actor
/\ IF slot.mode="Random" THEN DamageRandomReceipt104(before.packet,before.bHand \ before.selected,1,{card},actor,receipt)
ELSE receipt=[tag |-> "ActualAuthorizedDamageChoice",packet |-> before.packet.key,reference |-> before.packet.reference,
authorityId |-> before.policy.id,index |-> index,card |-> card,actor |-> actor]
/\ after=[before EXCEPT !.selected=selected,!.selectionOrder=Append(@,card),!.selections=Append(@,receipt),
!.phase=IF Cardinality(selected)=before.packet.amount THEN "ReadyToRetire" ELSE "SelectingSequentially"]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: index, selected, slot, DamageRandomReceipt104
SelectDamageRandomBatch104 · operator
reference-profile · input revision 2 · CC0 1.0
SelectDamageRandomBatch104(before,after,objects,selected,actor,receipt) ==
/\ before.phase="Selecting" /\ before.outcome="Playing" /\ objects=before.beforeObjects /\ before.selected={}
/\ DamageRandomReceipt104(before.packet,before.bHand,before.packet.amount,selected,actor,receipt)
/\ after=[before EXCEPT !.selected=selected,!.selections= <<receipt>>,!.phase="ReadyToRetire"]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: DamageRandomReceipt104
SelectSecretBid1014 · operator
reference-profile · input revision 2 · CC0 1.0
SelectSecretBid1014(before,after,world,player,amount,cardFacts) ==
/\ cardFacts=world.cardFacts /\ BidCurrent1014(before,world) /\ before.phase="Selecting" /\ player \in before.packet.participants \ DOMAIN before.selections
/\ (IF before.packet.rangeMode="AnyAffordable" THEN amount \in Nat ELSE amount \in before.packet.allowed[player]) /\ BidPaymentPlans1014(world,player,amount,cardFacts)#{}
/\ LET selections==ReplacementOverlay99(before.selections,[p \in {player} |-> amount]) IN
after=[before EXCEPT !.selections=selections,!.phase=IF DOMAIN selections=before.packet.participants THEN IF before.packet.reveal="Immediate" THEN "RevealDue" ELSE "WaitingReveal" ELSE "Selecting"]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: selections, BidCurrent1014, BidPaymentPlans1014
SideAMeatDamage104 · operator
reference-profile · input revision 2 · CC0 1.0
SideAMeatDamage104(packet) == packet.responsible="SideA" /\ packet.damageType="HarmClassB"Exact module download · Source bundle and reproduction instructions
SideASabotageView1012 · operator
reference-profile · input revision 2 · CC0 1.0
SideASabotageView1012(world,packet) ==
[tag |-> "SideASabotageDecisionView",actor |-> "SideA",amount |-> packet.amount,
aHand |-> [id \in HandVisibleCards4(world.aHand,"SideA","SideA",{}) |-> world.objects[id].card],aDrawPileCount |-> DeckCount4(world.aDrawPile),previousKnowledge |-> world.sideAKnowledge]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: DeckCount4, HandVisibleCards4
SkipDividendRemainder1013 · operator
reference-profile · input revision 2 · CC0 1.0
SkipDividendRemainder1013(before,after,world) ==
/\ world.outcome="Playing" /\ DividendPlanBound1013(world,before) /\ ~before.complete /\ DividendTargetStatus1013(world,before) \in {"ReferencedObjectGone","UnhostableReferencedObject"}
/\ after=[before EXCEPT !.skipped=@ \cup (before.cursor..before.basis.repetitions),!.cursor=before.basis.repetitions+1]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: DividendPlanBound1013, DividendTargetStatus1013
SkipResourceAdditional105 · operator
reference-profile · input revision 2 · CC0 1.0
SkipResourceAdditional105(before,after,world,reason) ==
/\ before.phase="AdditionalCosts" /\ reason \in {"Declined","Unpayable"} /\ world.outcome="Playing"
/\ after=[before EXCEPT !.phase="EffectReady",!.effective.mode="Removed"]Exact module download · Source bundle and reproduction instructions
SpendLiabilityMarkerFund106 · operator
reference-profile · input revision 2 · CC0 1.0
SpendLiabilityMarkerFund106(world,afterObjects,cost,selected,payment,usedPayments,successors,usedIds,printed,owners,visible,batchId,beforeHistory,afterHistory,events) ==
/\ world.outcome="Playing" /\ DuringTraversal6(world.traversal) /\ TimingRef9("SchemaAtom138",world.traversal.id) \in world.inside
/\ cost=world.resourceUnitCost /\ cost.tag="ResourceUnitCostContext" /\ cost.status="Paying" /\ cost.snapshotId=world.id
/\ cost.traversalId=world.traversal.id /\ cost.player="SideB" /\ cost.amount \in Nat /\ cost.id \in (Nat \ {0}) \ usedPayments
/\ selected \subseteq (LiabilityMarkerFundIds106(world.objects) \cup BaseSideBPoolIds106(world.objects))
/\ selected \subseteq CheckpointPhysicalIds103(world.objects) /\ Cardinality(selected)=cost.amount
/\ LiabilityMarkerCounterDeparture106(world.objects,afterObjects,selected,successors,usedIds,printed,owners,visible,batchId,beforeHistory,afterHistory,events)
/\ payment=[tag |-> "CompletedResourceUnitMethod",id |-> cost.id,source |-> cost.source,player |-> "SideB",traversalId |-> world.traversal.id,
snapshotId |-> world.id,amount |-> cost.amount,paidCounterIds |-> selected,fundCounters |-> selected \cap LiabilityMarkerFundIds106(world.objects),complete |-> TRUE]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: TimingRef9, BaseSideBPoolIds106, CheckpointPhysicalIds103, LiabilityMarkerCounterDeparture106, LiabilityMarkerFundIds106, DuringTraversal6
TakeExposureMarkers105 · operator
reference-profile · input revision 2 · CC0 1.0
TakeExposureMarkers105(context,reference,world,id,afterObjects,added,usedIds,event) ==
/\ context.phase="Resolving" /\ context.currentRef=reference /\ context.currentWorld=world.id /\ world.outcome="Playing"
/\ context.actualEffects=ActualExpectedEffects99(context.state.effects) /\ id \in DOMAIN context.actualEffects
/\ LET effect==context.actualEffects[id] IN
/\ effect.kind="ExposureMarkers" /\ effect.value \in Nat \ {0} /\ effect.actor \in SetupPlayers /\ effect.baseOrigin=reference.source
/\ DOMAIN added \subseteq (Nat \ {0}) \ usedIds /\ \A token \in DOMAIN added : added[token]=ExposureMarkerCounterRow105
/\ BankMintProjection4(world.objects,afterObjects,added,effect.value,"ExposureMarker",usedIds,[kind |-> "Zone",zone |-> "Bank"],TRUE,TRUE)
/\ event=[tag |-> "ExposureMarkersTaken",contextId |-> context.id,reference |-> reference,effectId |-> id,source |-> effect.baseOrigin,actor |-> effect.actor,
player |-> "SideB",amount |-> effect.value,counters |-> DOMAIN added]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ActualExpectedEffects99, effect, ExposureMarkerCounterRow105, BankMintProjection4, SetupPlayers
TakeLiabilityMarker106 · operator
reference-profile · input revision 2 · CC0 1.0
TakeLiabilityMarker106(context,reference,world,id,cardFacts,packet,afterObjects,added,usedIds,events) ==
/\ LiabilityMarkerPacket106(context,reference,world,id,cardFacts,packet) /\ packet.operation \in {"Take","Give"}
/\ \A token \in DOMAIN added : added[token]=LiabilityMarkerCounterRow106
/\ BankMintProjection4(world.objects,afterObjects,added,packet.amount,"LiabilityMarker",usedIds,[kind |-> "Zone",zone |-> "Bank"],TRUE,TRUE)
/\ events=IF packet.amount=0 THEN {} ELSE {[tag |-> "LiabilityMarkerTaken",player |-> "SideA",actor |-> packet.actor,packet |-> packet,
counters |-> DOMAIN added,amount |-> packet.amount]}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: LiabilityMarkerCounterRow106, LiabilityMarkerPacket106, BankMintProjection4
UniqueActivationPlan101 · operator
reference-profile · input revision 2 · CC0 1.0
UniqueActivationPlan101(objects,names,unique,beforeActive,afterActive,newlyActive) ==
LET applicable == newlyActive \in DOMAIN objects /\ newlyActive \in DOMAIN names /\
newlyActive \in unique /\ newlyActive \notin beforeActive /\ newlyActive \in afterActive
cohort == IF newlyActive \in DOMAIN names
THEN {i \in ((afterActive \ beforeActive) \cap DOMAIN objects \cap DOMAIN names) : names[i]=names[newlyActive]}
ELSE {}
disposition == IF ~applicable THEN "NotApplicable"
ELSE IF cohort={newlyActive} THEN "Supported" ELSE "UnsupportedSimultaneousActivation"
IN [valid |-> disposition="Supported",disposition |-> disposition,
targets |-> IF disposition="Supported"
THEN {i \in (afterActive \cap DOMAIN objects \cap DOMAIN names) \ {newlyActive} : names[i]=names[newlyActive]} ELSE {},
timing |-> "NextCheckpoint",preventable |-> FALSE]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: disposition
UniqueActivationRetire101 · operator
reference-profile · input revision 2 · CC0 1.0
UniqueActivationRetire101(plan,actuallyRetireed,actualCheckpointStage,preventionApplied) ==
/\ plan.valid /\ actualCheckpointStage="ProcedureCodefe50c31480ea"
/\ actuallyRetireed=plan.targets /\ ~preventionAppliedExact module download · Source bundle and reproduction instructions
Without101 · operator
reference-profile · input revision 2 · CC0 1.0
Without101(f,keys) == [k \in DOMAIN f \ keys |-> f[k]]Exact module download · Source bundle and reproduction instructions
ZoneCountFact102 · operator
reference-profile · input revision 2 · CC0 1.0
ZoneCountFact102(zone,objects,snapshot) ==
InformationFact102(Cardinality({i \in DOMAIN objects : objects[i].form="Card" /\ objects[i].zone=zone}),SetupPlayers,snapshot)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InformationFact102, SetupPlayers