TypeContracts¶
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.
eligible · operator
reference-profile · input revision 2 · CC0 1.0
eligible == ConsoleCandidates(objects,controllers,active,subtypes,player)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ConsoleCandidates
valid · operator
reference-profile · input revision 2 · CC0 1.0
valid == ConsoleActivationHistoryValid(eligible,history)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: eligible, ConsoleActivationHistoryValid
relevant · operator
reference-profile · input revision 2 · CC0 1.0
relevant == SelectSeq(history,LAMBDA id : id \in eligible)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: LAMBDA
LAMBDA · operator
reference-profile · input revision 2 · CC0 1.0
LAMBDA id : id \in eligibleExact module download · Source bundle and reproduction instructions
absent · operator
reference-profile · input revision 2 · CC0 1.0
absent == [exists |-> FALSE,amount |-> 0]Exact module download · Source bundle and reproduction instructions
applies · operator
reference-profile · input revision 2 · CC0 1.0
applies == c.kind = "Profile" /\ c.front /\ context = "Deckbuilding"Exact module download · Source bundle and reproduction instructions
ids · operator
reference-profile · input revision 2 · CC0 1.0
ids == ActiveProfileObjects(objects,side,cardData)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ActiveProfileObjects
after · operator
reference-profile · input revision 2 · CC0 1.0
after == candidateAfter(trashed)Exact module download · Source bundle and reproduction instructions
ActiveProfileObjects · operator
reference-profile · input revision 2 · CC0 1.0
ActiveProfileObjects(objects, side, cardData) ==
{id \in DOMAIN objects :
objects[id].form = "Card" /\ objects[id].kind = "Profile" /\
cardData[objects[id].card].side = side /\
DefaultActive(objects[id],TRUE,cardData)}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: DefaultActive
AddBarrierResponseCardBoost · operator
reference-profile · input revision 2 · CC0 1.0
AddBarrierResponseCardBoost(before, after, effectId, boost) ==
/\ effectId \notin DOMAIN before
/\ after = [id \in DOMAIN before \cup {effectId} |->
IF id = effectId THEN boost ELSE before[id]]Exact module download · Source bundle and reproduction instructions
AnotherCurrentPlayed · operator
reference-profile · input revision 2 · CC0 1.0
AnotherCurrentPlayed(sourceId, event) ==
/\ event.tag = "Played" /\ event.object # sourceId
/\ event.kind \in {"Plan","Action"} /\ "SchemaAtom048" \in event.subtypesExact module download · Source bundle and reproduction instructions
BarrierDeployResourceUnitCost · operator
reference-profile · input revision 2 · CC0 1.0
BarrierDeployResourceUnitCost(otherBarrierOrder) ==
InherentDeployCost([kind |-> "Barrier"],Len(otherBarrierOrder))Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InherentDeployCost
BarrierDeployTypeLocation · operator
reference-profile · input revision 2 · CC0 1.0
BarrierDeployTypeLocation(actor, kind, destination) ==
/\ actor = "SideA" /\ kind = "Barrier"
/\ destination.zone = "Play" /\ destination.area = "Protecting"
/\ destination.targetSiteKind \in {"SchemaAtom033","SchemaAtom132"}Exact module download · Source bundle and reproduction instructions
BarrierDeploymentPost · operator
reference-profile · input revision 2 · CC0 1.0
BarrierDeploymentPost(o) ==
/\ o.form = "Card" /\ o.kind = "Barrier" /\ o.zone = "Play"
/\ o.deployed /\ o.face = "Down" /\ ~o.activatedExact module download · Source bundle and reproduction instructions
BarrierInstructionOwnerKindValid · operator
reference-profile · input revision 2 · CC0 1.0
BarrierInstructionOwnerKindValid(kind, barrierInstructions) == Len(barrierInstructions) = 0 \/ kind = "Barrier"Exact module download · Source bundle and reproduction instructions
BarrierNormalItemInspectionDeploymentGate · operator
reference-profile · input revision 2 · CC0 1.0
BarrierNormalItemInspectionDeploymentGate(o) ==
o.form = "Card" /\ o.kind = "Barrier" /\ ~o.deployedExact module download · Source bundle and reproduction instructions
BarrierProtectionLayout · operator
reference-profile · input revision 2 · CC0 1.0
BarrierProtectionLayout == [orientation |-> "Horizontal",order |-> "InnermostToOutermost",
outermost |-> "FurthestFromTargetSite"]Exact module download · Source bundle and reproduction instructions
BarrierResponseCardBoost · operator
reference-profile · input revision 2 · CC0 1.0
BarrierResponseCardBoost(targetId, amount, encounterId, hasExplicit, explicitDuration) ==
[target |-> targetId,amount |-> amount,encounter |-> encounterId,
hasExplicit |-> hasExplicit,explicit |-> explicitDuration]Exact module download · Source bundle and reproduction instructions
BarrierResponseCardBoostCheckpointStep · operator
reference-profile · input revision 2 · CC0 1.0
BarrierResponseCardBoostCheckpointStep(before, after, liveEncounters, durationAlive(_), stage) ==
/\ stage = "ProcedureCode88eda145024f"
/\ after = BarrierResponseCardBoostsAfterCheckpoint(before,liveEncounters,durationAlive)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: BarrierResponseCardBoostsAfterCheckpoint
BarrierResponseCardBoostTotal · operator
reference-profile · input revision 2 · CC0 1.0
BarrierResponseCardBoostTotal(boosts, targetId, liveObjectIds) ==
IF targetId \notin liveObjectIds THEN 0
ELSE SumMap([id \in DOMAIN boosts |->
IF boosts[id].target = targetId THEN boosts[id].amount ELSE 0])Exact module download · Source bundle and reproduction instructions
Resolved project definitions: SumMap
BarrierResponseCardBoostUnexpired · operator
reference-profile · input revision 2 · CC0 1.0
BarrierResponseCardBoostUnexpired(boost, liveEncounters, durationAlive(_)) ==
(boost.encounter # 0 /\ boost.encounter \in liveEncounters) \/
(boost.hasExplicit /\ durationAlive(boost.explicit))Exact module download · Source bundle and reproduction instructions
BarrierResponseCardBoostsAfterCheckpoint · operator
reference-profile · input revision 2 · CC0 1.0
BarrierResponseCardBoostsAfterCheckpoint(before, liveEncounters, durationAlive(_)) ==
[id \in {e \in DOMAIN before : BarrierResponseCardBoostUnexpired(before[e],liveEncounters,durationAlive)}
|-> before[id]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: BarrierResponseCardBoostUnexpired
BarrierResponseCardTechnique · operator
reference-profile · input revision 2 · CC0 1.0
BarrierResponseCardTechnique(o, subtypes) ==
o.form = "Card" /\ o.kind = "Technique" /\ "SchemaAtom086" \in subtypesExact module download · Source bundle and reproduction instructions
BarrierTermRefersToType · operator
reference-profile · input revision 2 · CC0 1.0
BarrierTermRefersToType(term) == term \in {"barrierCard","piece of barrier"}Exact module download · Source bundle and reproduction instructions
BarrierTraversalStrengthScope · operator
reference-profile · input revision 2 · CC0 1.0
BarrierTraversalStrengthScope(traversalId, encounterId, checkpointSerial) ==
IF traversalId # 0 THEN [scope |-> "SchemaAtom138",token |-> traversalId]
ELSE IF encounterId # 0 THEN [scope |-> "Encounter",token |-> encounterId]
ELSE [scope |-> "Checkpoint",token |-> checkpointSerial+1]Exact module download · Source bundle and reproduction instructions
CentralRootCardTypeValid · operator
reference-profile · input revision 2 · CC0 1.0
CentralRootCardTypeValid(o) ==
(o.form = "Card" /\ o.deployed /\ o.zone = "Play" /\
o.area = "Root" /\ o.targetSiteKind = "SchemaAtom033") => o.kind = "Attachment"Exact module download · Source bundle and reproduction instructions
ConditionCounterPost · operator
reference-profile · input revision 2 · CC0 1.0
ConditionCounterPost(sourceCard, o) ==
/\ o.card = sourceCard /\ o.form = "Counter" /\ o.kind = "SchemaAtom043"
/\ o.deployed /\ o.zone = "Play"Exact module download · Source bundle and reproduction instructions
ConditionEventSelfDeployGate · operator
reference-profile · input revision 2 · CC0 1.0
ConditionEventSelfDeployGate(o, route, ownAbilityAuthorized) ==
/\ o.form = "Card" /\ o.kind = "Action" /\ "SchemaAtom043" \in o.subtypes
/\ route = "OwnConversion" /\ ownAbilityAuthorizedExact module download · Source bundle and reproduction instructions
ConditionOperationSelfDeployGate · operator
reference-profile · input revision 2 · CC0 1.0
ConditionOperationSelfDeployGate(o, route, ownAbilityAuthorized) ==
/\ o.form = "Card" /\ o.kind = "Plan" /\ "SchemaAtom043" \in o.subtypes
/\ route = "OwnConversion" /\ ownAbilityAuthorizedExact module download · Source bundle and reproduction instructions
ConsoleActivationHistoryValid · operator
reference-profile · input revision 2 · CC0 1.0
ConsoleActivationHistoryValid(eligible, history) == eligible \subseteq SetupRange(history)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: SetupRange
ConsoleCandidates · operator
reference-profile · input revision 2 · CC0 1.0
ConsoleCandidates(objects, controllers, active, subtypes, player) ==
{id \in DOMAIN objects :
objects[id].form = "Card" /\ objects[id].kind = "Equipment" /\
objects[id].deployed /\ controllers[id] = player /\ active[id] /\
"SchemaAtom045" \in subtypes[id]}Exact module download · Source bundle and reproduction instructions
ConsoleCorrection · operator
reference-profile · input revision 2 · CC0 1.0
ConsoleCorrection(objects, controllers, active, subtypes, history, player) ==
LET eligible == ConsoleCandidates(objects,controllers,active,subtypes,player)
valid == ConsoleActivationHistoryValid(eligible,history)
IN [valid |-> valid,preventable |-> FALSE,checkpointStage |-> "ProcedureCodefe50c31480ea",
trash |-> IF valid THEN eligible \ LatestActiveConsole(eligible,history) ELSE {}]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: eligible, valid, LatestActiveConsole
ConsolePrintedDeclarationValid · operator
reference-profile · input revision 2 · CC0 1.0
ConsolePrintedDeclarationValid(c) ==
"SchemaAtom045" \in c.printedSubtypes => c.printedConsoleLimit = 1Exact module download · Source bundle and reproduction instructions
DeployedRootRegions · operator
reference-profile · input revision 2 · CC0 1.0
DeployedRootRegions(objects, targetSite) ==
{id \in DOMAIN objects :
objects[id].form = "Card" /\ objects[id].kind # "Barrier" /\
"SchemaAtom130" \in objects[id].subtypes /\ objects[id].deployed /\
objects[id].zone = "Play" /\ objects[id].area = "Root" /\ objects[id].targetSite = targetSite}Exact module download · Source bundle and reproduction instructions
DeployedTechniqueIds · operator
reference-profile · input revision 2 · CC0 1.0
DeployedTechniqueIds(objects, effectiveTypes) ==
{id \in DOMAIN objects :
objects[id].form = "Card" /\ objects[id].deployed /\ "Technique" \in effectiveTypes[id]}Exact module download · Source bundle and reproduction instructions
DeployingRootRegions · operator
reference-profile · input revision 2 · CC0 1.0
DeployingRootRegions(deploying, targetSite) ==
{id \in DOMAIN deploying :
deploying[id].form = "Card" /\ deploying[id].kind # "Barrier" /\
"SchemaAtom130" \in deploying[id].subtypes /\
deploying[id].destination.zone = "Play" /\ deploying[id].destination.area = "Root" /\
deploying[id].destination.targetSite = targetSite}Exact module download · Source bundle and reproduction instructions
EquipmentTermRefersToType · operator
reference-profile · input revision 2 · CC0 1.0
EquipmentTermRefersToType(term) == term \in {"equipment","piece of equipment"}Exact module download · Source bundle and reproduction instructions
EventCurrentExpires · operator
reference-profile · input revision 2 · CC0 1.0
EventCurrentExpires(sourceId, event) ==
AnotherCurrentPlayed(sourceId,event) \/ event.tag = "ObjectivePlacementd"Exact module download · Source bundle and reproduction instructions
Resolved project definitions: AnotherCurrentPlayed
EventPlayTypeAllowed · operator
reference-profile · input revision 2 · CC0 1.0
EventPlayTypeAllowed(actor, kind) == actor = "SideB" /\ kind = "Action"Exact module download · Source bundle and reproduction instructions
EventRetentionAfterEvent · operator
reference-profile · input revision 2 · CC0 1.0
EventRetentionAfterEvent(before, sourceId, event, objects) ==
ExpirePlayedRetention([before EXCEPT !.inPlay = PlayedSourceInPlay(sourceId,objects)],
before.mode = "SchemaAtom048" /\ EventCurrentExpires(sourceId,event),
PlayedRetireSourceApplicable(sourceId,objects))Exact module download · Source bundle and reproduction instructions
Resolved project definitions: EventCurrentExpires, ExpirePlayedRetention, PlayedRetireSourceApplicable, PlayedSourceInPlay
ExampleItemARegionDeclaration · operator
reference-profile · input revision 2 · CC0 1.0
ExampleItemARegionDeclaration(c) ==
/\ c.kind = "Facility" /\ CanonicalName(c) = <<"Example Item A">>
/\ "SchemaAtom130" \in c.printedSubtypes /\ c.printedRegionLimit = 1Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CanonicalName
ExampleItemBConditionDeclaration · operator
reference-profile · input revision 2 · CC0 1.0
ExampleItemBConditionDeclaration(c) ==
/\ c.kind = "Action" /\ CanonicalName(c) = <<"Example Item B">>
/\ "SchemaAtom043" \in c.printedSubtypesExact module download · Source bundle and reproduction instructions
Resolved project definitions: CanonicalName
ExpirePlayedRetention · operator
reference-profile · input revision 2 · CC0 1.0
ExpirePlayedRetention(before, shouldExpire, sourceApplicable) ==
IF before.live /\ shouldExpire
THEN [before EXCEPT !.live = FALSE,!.pendingRetire = sourceApplicable] ELSE beforeExact module download · Source bundle and reproduction instructions
FacilityActivationStep · operator
reference-profile · input revision 2 · CC0 1.0
FacilityActivationStep(before, after, actor, paidWindow, costsComplete, activationAllowedByRules) ==
/\ actor = "SideA" /\ before.form = "Card" /\ before.kind = "Facility"
/\ before.deployed /\ before.zone = "Play"
/\ before.face = "Down" /\ ~before.activated
/\ paidWindow /\ costsComplete /\ activationAllowedByRules
/\ after = [before EXCEPT !.face = "Up",!.activated = TRUE]Exact module download · Source bundle and reproduction instructions
FacilityDeployTypeLocation · operator
reference-profile · input revision 2 · CC0 1.0
FacilityDeployTypeLocation(actor, kind, destination) ==
/\ actor = "SideA" /\ kind = "Facility"
/\ destination.zone = "Play" /\ destination.area = "Root"
/\ destination.targetSiteKind = "SchemaAtom132"Exact module download · Source bundle and reproduction instructions
FacilityDeploymentPost · operator
reference-profile · input revision 2 · CC0 1.0
FacilityDeploymentPost(o) ==
/\ o.form = "Card" /\ o.kind = "Facility" /\ o.zone = "Play"
/\ o.deployed /\ o.face = "Down" /\ ~o.activatedExact module download · Source bundle and reproduction instructions
InterfaceAbilityLocalGate · operator
reference-profile · input revision 2 · CC0 1.0
InterfaceAbilityLocalGate(actor, source, sourceSubtypes, ability, context,
sourceStrength, barrierStrength, barrierSubtypes, targets) ==
/\ actor = "SideB" /\ ability.isInterface /\ ability.presentActive
/\ context.encounterActive /\ context.step = "ProcedureCode8b3260c0010f"
/\ context.barrierForm = "Card" /\ context.barrierKind = "Barrier"
/\ InterfaceTargetsAllowed(targets,context.barrierId,context.barrierInstructions)
/\ InterfaceSubtypeMatches(ability.restriction,barrierSubtypes)
/\ IF BarrierResponseCardTechnique(source,sourceSubtypes)
THEN sourceStrength.exists /\ barrierStrength.exists /\
StrengthThresholdMet(sourceStrength.amount,barrierStrength.amount)
ELSE TRUEExact module download · Source bundle and reproduction instructions
Resolved project definitions: StrengthThresholdMet, BarrierResponseCardTechnique, InterfaceSubtypeMatches, InterfaceTargetsAllowed
InterfaceFlagValid · operator
reference-profile · input revision 2 · CC0 1.0
InterfaceFlagValid(ability) ==
/\ ability.isInterface \in BOOLEAN
/\ ability.interfaceFlag = IF ability.isInterface THEN "Interface" ELSE "NoValue"Exact module download · Source bundle and reproduction instructions
InterfaceSubtypeMatches · operator
reference-profile · input revision 2 · CC0 1.0
InterfaceSubtypeMatches(restriction, barrierSubtypes) ==
~restriction.present \/ restriction.name \in barrierSubtypesExact module download · Source bundle and reproduction instructions
InterfaceTargetsAllowed · operator
reference-profile · input revision 2 · CC0 1.0
InterfaceTargetsAllowed(targets, barrierId, barrierInstructionIds) ==
\A t \in targets :
(t.kind = "Card" /\ t.object = barrierId) \/
(t.kind = "BarrierInstruction" /\ t.object = barrierId /\ t.barrierInstruction \in barrierInstructionIds)Exact module download · Source bundle and reproduction instructions
ItemInspectionRetireCostOpportunity · operator
reference-profile · input revision 2 · CC0 1.0
ItemInspectionRetireCostOpportunity(actor, o, accessing, effectiveRetirePart) ==
/\ actor = "SideB" /\ o.form = "Card" /\ accessing
/\ o.zone # "SideADiscard"
/\ effectiveRetirePart.existsExact module download · Source bundle and reproduction instructions
LatestActiveConsole · operator
reference-profile · input revision 2 · CC0 1.0
LatestActiveConsole(eligible, history) ==
LET relevant == SelectSeq(history,LAMBDA id : id \in eligible)
IN IF eligible = {} THEN {} ELSE {relevant[Len(relevant)]}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: relevant
ObjectiveAbilityActive · operator
reference-profile · input revision 2 · CC0 1.0
ObjectiveAbilityActive(o, abilityPresent, gameStarted, cardData,
printedFaceupDeploy, sideBObjectiveAreaTextActive, objectiveCompletionClaimObjectiveException) ==
/\ o.form = "Card" /\ o.kind = "Objective"
/\ TextAbilityActive(abilityPresent,ObjectiveCardActive(o,gameStarted,cardData),
(o.deployed /\ o.zone = "Play" /\ printedFaceupDeploy) \/
(o.zone = "SideBObjectiveCompletion" /\ sideBObjectiveAreaTextActive) \/ objectiveCompletionClaimObjectiveException)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: TextAbilityActive, ObjectiveCardActive
ObjectiveActivationStatus · operator
reference-profile · input revision 2 · CC0 1.0
ObjectiveActivationStatus(o) ==
IF o.form = "Card" /\ o.kind = "Objective" /\ o.deployed /\ o.face = "Down"
THEN "Dormant" ELSE "Neither"Exact module download · Source bundle and reproduction instructions
ObjectiveCanActivation · operator
reference-profile · input revision 2 · CC0 1.0
ObjectiveCanActivation(o) == FALSEExact module download · Source bundle and reproduction instructions
ObjectiveCardActive · operator
reference-profile · input revision 2 · CC0 1.0
ObjectiveCardActive(o, gameStarted, cardData) ==
o.form = "Card" /\ o.kind = "Objective" /\ DefaultActive(o,gameStarted,cardData)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: DefaultActive
ObjectiveCharacteristicSlotsValid · operator
reference-profile · input revision 2 · CC0 1.0
ObjectiveCharacteristicSlotsValid(c) ==
ProgressMetadataValid(c) /\ ObjectivePointsMetadataValid(c)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ObjectivePointsMetadataValid, ProgressMetadataValid
ObjectiveDeployTypeLocation · operator
reference-profile · input revision 2 · CC0 1.0
ObjectiveDeployTypeLocation(actor, kind, destination) ==
/\ actor = "SideA" /\ kind = "Objective"
/\ destination.zone = "Play" /\ destination.area = "Root"
/\ destination.targetSiteKind = "SchemaAtom132"Exact module download · Source bundle and reproduction instructions
ObjectiveFacilityRootLimit · operator
reference-profile · input revision 2 · CC0 1.0
ObjectiveFacilityRootLimit(objects, targetSite) ==
Cardinality(ObjectiveFacilityRootOccupants(objects,targetSite)) <= 1Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ObjectiveFacilityRootOccupants
ObjectiveFacilityRootOccupants · operator
reference-profile · input revision 2 · CC0 1.0
ObjectiveFacilityRootOccupants(objects, targetSite) ==
{id \in DOMAIN objects :
objects[id].form = "Card" /\ objects[id].deployed /\
objects[id].zone = "Play" /\ objects[id].area = "Root" /\
objects[id].targetSite = targetSite /\ objects[id].kind \in {"Objective","Facility"}}Exact module download · Source bundle and reproduction instructions
ObjectivePointsInObjectiveArea · operator
reference-profile · input revision 2 · CC0 1.0
ObjectivePointsInObjectiveArea(o, area, effectivePoints) ==
IF area \in {"SideAObjectiveCompletion","SideBObjectiveCompletion"} /\ o.zone = area /\
o.form = "Card" /\ o.kind = "Objective" THEN effectivePoints ELSE 0Exact module download · Source bundle and reproduction instructions
ObjectiveProgressEligible · operator
reference-profile · input revision 2 · CC0 1.0
ObjectiveProgressEligible(o) == o.form = "Card" /\ o.kind = "Objective" /\ o.deployedExact module download · Source bundle and reproduction instructions
OperationCurrentExpires · operator
reference-profile · input revision 2 · CC0 1.0
OperationCurrentExpires(sourceId, event) ==
AnotherCurrentPlayed(sourceId,event) \/ event.tag = "ObjectiveClaimedObjective"Exact module download · Source bundle and reproduction instructions
Resolved project definitions: AnotherCurrentPlayed
OperationPlayTypeAllowed · operator
reference-profile · input revision 2 · CC0 1.0
OperationPlayTypeAllowed(actor, kind) == actor = "SideA" /\ kind = "Plan"Exact module download · Source bundle and reproduction instructions
OperationRetentionAfterEvent · operator
reference-profile · input revision 2 · CC0 1.0
OperationRetentionAfterEvent(before, sourceId, event, objects) ==
ExpirePlayedRetention([before EXCEPT !.inPlay = PlayedSourceInPlay(sourceId,objects)],
CASE before.mode = "SchemaAtom048" -> OperationCurrentExpires(sourceId,event)
[] before.mode = "SchemaAtom099" -> Specimen0133Expires(before.expiresSideATurn,event)
[] OTHER -> FALSE,PlayedRetireSourceApplicable(sourceId,objects))Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ExpirePlayedRetention, OperationCurrentExpires, PlayedRetireSourceApplicable, PlayedSourceInPlay, Specimen0133Expires
PlayedCardActive · operator
reference-profile · input revision 2 · CC0 1.0
PlayedCardActive(o, activationReached) ==
/\ o.form = "Card" /\ o.kind \in {"Plan","Action"}
/\ o.zone = "Play" /\ o.face = "Up" /\ activationReachedExact module download · Source bundle and reproduction instructions
PlayedResolutionRetireDue · operator
reference-profile · input revision 2 · CC0 1.0
PlayedResolutionRetireDue(o, abilitiesFullyResolved, holdLive, nestedRemovalPending) ==
/\ PlayedSourceRetireEligible(o) /\ abilitiesFullyResolved
/\ ~holdLive /\ ~nestedRemovalPendingExact module download · Source bundle and reproduction instructions
Resolved project definitions: PlayedSourceRetireEligible
PlayedRetention · operator
reference-profile · input revision 2 · CC0 1.0
PlayedRetention(mode, sideATurn) ==
[mode |-> mode,live |-> mode # "NoValue",inPlay |-> TRUE,
pendingRetire |-> FALSE,expiresSideATurn |-> sideATurn+1]Exact module download · Source bundle and reproduction instructions
PlayedRetireSourceApplicable · operator
reference-profile · input revision 2 · CC0 1.0
PlayedRetireSourceApplicable(sourceId, objects) ==
IF sourceId \in DOMAIN objects THEN PlayedSourceRetireEligible(objects[sourceId]) ELSE FALSEExact module download · Source bundle and reproduction instructions
Resolved project definitions: PlayedSourceRetireEligible
PlayedSourceInPlay · operator
reference-profile · input revision 2 · CC0 1.0
PlayedSourceInPlay(sourceId, objects) ==
IF sourceId \in DOMAIN objects THEN objects[sourceId].zone = "Play" ELSE FALSEExact module download · Source bundle and reproduction instructions
PlayedSourceRetireEligible · operator
reference-profile · input revision 2 · CC0 1.0
PlayedSourceRetireEligible(o) ==
/\ o.form = "Card" /\ o.kind \in {"Plan","Action"}
/\ o.zone = "Play" /\ o.host = 0Exact module download · Source bundle and reproduction instructions
PlayedTypeNotDeployed · operator
reference-profile · input revision 2 · CC0 1.0
PlayedTypeNotDeployed(o) ==
(o.form = "Card" /\ o.kind \in {"Plan","Action"}) => ~o.deployedExact module download · Source bundle and reproduction instructions
PrintedBarrierResponseCardInterfacesValid · operator
reference-profile · input revision 2 · CC0 1.0
PrintedBarrierResponseCardInterfacesValid(c, printedAbilities) ==
c.printedBarrierResponseCard => \E i \in 1..Len(printedAbilities) : printedAbilities[i].isInterfaceExact module download · Source bundle and reproduction instructions
ProfileDeckValues · operator
reference-profile · input revision 2 · CC0 1.0
ProfileDeckValues(c, context, resolvedMinX, resolvedLimitX) ==
LET applies == c.kind = "Profile" /\ c.front /\ context = "Deckbuilding"
absent == [exists |-> FALSE,amount |-> 0]
IN [applicable |-> applies,
minimum |-> IF applies THEN MinimumDeckPart(c,resolvedMinX) ELSE absent,
importBudget |-> IF applies THEN ImportCostLimitPart(c,resolvedLimitX) ELSE absent]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ImportCostLimitPart, MinimumDeckPart, absent, applies
ProfileFaceActive · operator
reference-profile · input revision 2 · CC0 1.0
ProfileFaceActive(o, faceIsFront, gameStarted, cardData) ==
/\ o.kind = "Profile" /\ o.front = faceIsFront
/\ DefaultActive(o,gameStarted,cardData)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: DefaultActive
ProfileFaceValuesValid · operator
reference-profile · input revision 2 · CC0 1.0
ProfileFaceValuesValid(c) ==
/\ MinimumDeckMetadataValid(c) /\ ImportCostLimitMetadataValid(c)
/\ BaseLinkMetadataValid(c)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: BaseLinkMetadataValid, ImportCostLimitMetadataValid, MinimumDeckMetadataValid
ProfileObjectValid · operator
reference-profile · input revision 2 · CC0 1.0
ProfileObjectValid(o) ==
(o.form = "Card" /\ o.kind = "Profile") => ~o.deployedExact module download · Source bundle and reproduction instructions
ProfileTargetSiteSpecimen0139 · operator
reference-profile · input revision 2 · CC0 1.0
ProfileTargetSiteSpecimen0139(o, cardData) ==
IF o.form = "Card" /\ o.kind = "Profile" /\ o.zone = "Play" /\
cardData[o.card].side = "SideA" THEN "SchemaAtom082" ELSE "NoValue"Exact module download · Source bundle and reproduction instructions
ProtectingCardTypeValid · operator
reference-profile · input revision 2 · CC0 1.0
ProtectingCardTypeValid(o) ==
(o.form = "Card" /\ o.deployed /\ o.area = "Protecting") => o.kind = "Barrier"Exact module download · Source bundle and reproduction instructions
RegionMoveSwapGate · operator
reference-profile · input revision 2 · CC0 1.0
RegionMoveSwapGate(afterObjects, afterDeploying, targetSiteIds) ==
\A targetSite \in targetSiteIds : RegionRootLimit(afterObjects,afterDeploying,targetSite)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: RegionRootLimit
RegionPrintedDeclarationValid · operator
reference-profile · input revision 2 · CC0 1.0
RegionPrintedDeclarationValid(c) ==
"SchemaAtom130" \in c.printedSubtypes => c.printedRegionLimit = 1Exact module download · Source bundle and reproduction instructions
RegionReplacementRetireSatisfied · operator
reference-profile · input revision 2 · CC0 1.0
RegionReplacementRetireSatisfied(required, actuallyRetireed) == required \subseteq actuallyRetireedExact module download · Source bundle and reproduction instructions
RegionRequiredOldRetire · operator
reference-profile · input revision 2 · CC0 1.0
RegionRequiredOldRetire(objects, newId, newCard, destination) ==
IF newCard.form = "Card" /\ newCard.kind # "Barrier" /\ "SchemaAtom130" \in newCard.subtypes /\
destination.zone = "Play" /\ destination.area = "Root"
THEN DeployedRootRegions(objects,destination.targetSite) \ {newId} ELSE {}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: DeployedRootRegions
RegionRootLimit · operator
reference-profile · input revision 2 · CC0 1.0
RegionRootLimit(objects, deploying, targetSite) ==
Cardinality(DeployedRootRegions(objects,targetSite) \cup DeployingRootRegions(deploying,targetSite)) <= 1Exact module download · Source bundle and reproduction instructions
Resolved project definitions: DeployedRootRegions, DeployingRootRegions
ResourceRetireBasicActionLocalGate · operator
reference-profile · input revision 2 · CC0 1.0
ResourceRetireBasicActionLocalGate(actor, target, effectiveTypes, context,
effectiveExposureMarkerCount, costsComplete, actionAllowedByRules) ==
/\ actor = "SideA" /\ context.turn = "SideA" /\ context.phase = "NeutralValue00001"
/\ context.basicActionAvailable /\ SideBHasExposureMarkersForResourceAction(effectiveExposureMarkerCount)
/\ target.form = "Card" /\ target.deployed /\ target.zone = "Play"
/\ "Support" \in effectiveTypes
/\ costsComplete /\ actionAllowedByRulesExact module download · Source bundle and reproduction instructions
Resolved project definitions: SideBHasExposureMarkersForResourceAction
ResourceRetireBasicCost · operator
reference-profile · input revision 2 · CC0 1.0
ResourceRetireBasicCost == [actionPoints |-> 1,resourceUnits |-> 2]Exact module download · Source bundle and reproduction instructions
RetentionCheckpointStep · operator
reference-profile · input revision 2 · CC0 1.0
RetentionCheckpointStep(before, after, sourceId, objects, checkpointStage) ==
/\ before.pendingRetire /\ checkpointStage = "ProcedureCode88eda145024f"
/\ after = [before EXCEPT !.live = FALSE,!.pendingRetire = FALSE,
!.inPlay = IF PlayedRetireSourceApplicable(sourceId,objects) THEN FALSE
ELSE PlayedSourceInPlay(sourceId,objects)]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: PlayedRetireSourceApplicable, PlayedSourceInPlay
RetentionReactionGate · operator
reference-profile · input revision 2 · CC0 1.0
RetentionReactionGate(retentions, objects) ==
\A id \in DOMAIN retentions :
~retentions[id].pendingRetire \/ ~PlayedRetireSourceApplicable(id,objects)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: PlayedRetireSourceApplicable
SideAHasInherentDeployCost · operator
reference-profile · input revision 2 · CC0 1.0
SideAHasInherentDeployCost(kind) == kind = "Barrier"Exact module download · Source bundle and reproduction instructions
SideAHasPlayCost · operator
reference-profile · input revision 2 · CC0 1.0
SideAHasPlayCost(kind) == kind = "Plan"Exact module download · Source bundle and reproduction instructions
SideBHasExposureMarkersForResourceAction · operator
reference-profile · input revision 2 · CC0 1.0
SideBHasExposureMarkersForResourceAction(effectiveExposureMarkerCount) ==
effectiveExposureMarkerCount \in Nat /\ effectiveExposureMarkerCount > 0Exact module download · Source bundle and reproduction instructions
SideBHasPlayCost · operator
reference-profile · input revision 2 · CC0 1.0
SideBHasPlayCost(kind) == kind = "Action"Exact module download · Source bundle and reproduction instructions
SideBPaidDeployPost · operator
reference-profile · input revision 2 · CC0 1.0
SideBPaidDeployPost(o, actor, expectedKind, costsComplete, deployAllowedByRules) ==
/\ actor = "SideB" /\ expectedKind \in {"Equipment","Technique","Support"}
/\ o.form = "Card" /\ o.kind = expectedKind /\ o.zone = "Play"
/\ o.deployed /\ o.face = "Up" /\ ~o.activated
/\ costsComplete /\ deployAllowedByRulesExact module download · Source bundle and reproduction instructions
Specimen0133Expires · operator
reference-profile · input revision 2 · CC0 1.0
Specimen0133Expires(expiresSideATurn, event) ==
event.tag = "TurnBegins" /\ event.actor = "SideA" /\ event.sideATurn >= expiresSideATurnExact module download · Source bundle and reproduction instructions
StandardBarrierActivationStep · operator
reference-profile · input revision 2 · CC0 1.0
StandardBarrierActivationStep(before, after, objectId, actor, context, costsComplete, activationAllowedByRules) ==
/\ actor = "SideA" /\ before.form = "Card" /\ before.kind = "Barrier"
/\ before.deployed /\ before.zone = "Play" /\ before.face = "Down" /\ ~before.activated
/\ context.inTraversal /\ context.window = "ProcedureCode3a6daf593ad4" /\ context.approachedObject = objectId
/\ costsComplete /\ activationAllowedByRules
/\ after = [before EXCEPT !.face = "Up",!.activated = TRUE]Exact module download · Source bundle and reproduction instructions
StandardBarrierInsertion · operator
reference-profile · input revision 2 · CC0 1.0
StandardBarrierInsertion(beforeOrder, afterOrder, newId) ==
/\ newId \notin SetupRange(beforeOrder)
/\ afterOrder = Append(beforeOrder,newId)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: SetupRange
StandardEquipmentCountAllowed · operator
reference-profile · input revision 2 · CC0 1.0
StandardEquipmentCountAllowed(count) == count \in NatExact module download · Source bundle and reproduction instructions
StandardResourceCountAllowed · operator
reference-profile · input revision 2 · CC0 1.0
StandardResourceCountAllowed(count) == count \in NatExact module download · Source bundle and reproduction instructions
StandardUpgradeCountAllowed · operator
reference-profile · input revision 2 · CC0 1.0
StandardUpgradeCountAllowed(count) == count \in NatExact module download · Source bundle and reproduction instructions
StartingProfilesValid · operator
reference-profile · input revision 2 · CC0 1.0
StartingProfilesValid(objects, cardData) ==
/\ \A id \in DOMAIN objects : ProfileObjectValid(objects[id])
/\ \A side \in SetupPlayers :
LET ids == ActiveProfileObjects(objects,side,cardData)
IN /\ Cardinality(ids) = 1
/\ \A id \in ids :
objects[id].front /\ cardData[objects[id].card].owner = sideExact module download · Source bundle and reproduction instructions
Resolved project definitions: SetupPlayers, ids, ProfileObjectValid
StrengthScopeAlive · operator
reference-profile · input revision 2 · CC0 1.0
StrengthScopeAlive(binding, liveTraversalIds, liveEncounterIds, checkpointSerial) ==
CASE binding.scope = "SchemaAtom138" -> binding.token \in liveTraversalIds
[] binding.scope = "Encounter" -> binding.token \in liveEncounterIds
[] binding.scope = "Checkpoint" -> checkpointSerial < binding.tokenExact module download · Source bundle and reproduction instructions
TechniqueCapacityArithmeticFits · operator
reference-profile · input revision 2 · CC0 1.0
TechniqueCapacityArithmeticFits(demand, limit) == SumMap(demand) <= limitExact module download · Source bundle and reproduction instructions
Resolved project definitions: SumMap
TechniqueCapacityCandidateLegal · operator
reference-profile · input revision 2 · CC0 1.0
TechniqueCapacityCandidateLegal(candidate) ==
/\ DOMAIN candidate.demand = candidate.techniqueIds
/\ TechniqueCapacityLegal(candidate.demand,candidate.limit,candidate.allocationFits)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: TechniqueCapacityLegal
TechniqueCapacityCheckpointChoice · operator
reference-profile · input revision 2 · CC0 1.0
TechniqueCapacityCheckpointChoice(deployedIds, trashed, candidateAfter(_)) ==
/\ ~TechniqueCapacityCandidateLegal(candidateAfter({}))
/\ trashed \subseteq deployedIds /\ trashed # {}
/\ TechniqueCapacityCandidateLegal(candidateAfter(trashed))
/\ \A id \in trashed : ~TechniqueCapacityCandidateLegal(candidateAfter(trashed \ {id}))Exact module download · Source bundle and reproduction instructions
Resolved project definitions: TechniqueCapacityCandidateLegal
TechniqueCapacityDemand · operator
reference-profile · input revision 2 · CC0 1.0
TechniqueCapacityDemand(objects, effectiveTypes, effectiveCapacity) ==
[id \in DeployedTechniqueIds(objects,effectiveTypes) |->
IF effectiveCapacity[id].exists THEN effectiveCapacity[id].amount ELSE 0]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: DeployedTechniqueIds
TechniqueCapacityLegal · operator
reference-profile · input revision 2 · CC0 1.0
TechniqueCapacityLegal(demand, limit, allocationFits) ==
TechniqueCapacityArithmeticFits(demand,limit) /\ allocationFitsExact module download · Source bundle and reproduction instructions
Resolved project definitions: TechniqueCapacityArithmeticFits
TechniqueCapacityRepairTiming · operator
reference-profile · input revision 2 · CC0 1.0
TechniqueCapacityRepairTiming(cause) ==
IF cause = "DeployingTechnique" THEN "DuringDeploy" ELSE "NextCheckpoint10.3.1e"Exact module download · Source bundle and reproduction instructions
TechniqueDeployCapacityChoice · operator
reference-profile · input revision 2 · CC0 1.0
TechniqueDeployCapacityChoice(existingIds, newId, trashed, candidateAfter(_)) ==
/\ newId \notin existingIds /\ trashed \subseteq existingIds
/\ LET after == candidateAfter(trashed)
IN /\ newId \in after.techniqueIds /\ trashed \intersect after.techniqueIds = {}
/\ TechniqueCapacityCandidateLegal(after)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: after, TechniqueCapacityCandidateLegal
TechniqueResourceUnitAndCapacity · operator
reference-profile · input revision 2 · CC0 1.0
TechniqueResourceUnitAndCapacity(c, paymentX, increases, reductions, resourceUnitWaived, capacityX) ==
[resourceUnitCost |-> IF resourceUnitWaived THEN 0
ELSE ModifiedCost(CardResourceUnitCost(c,"Deploy",0,TRUE,paymentX).amount,
increases,reductions),
capacity |-> CapacityCostPart(c,capacityX)]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ModifiedCost, CapacityCostPart, CardResourceUnitCost
TechniqueStrengthMetadataValid · operator
reference-profile · input revision 2 · CC0 1.0
TechniqueStrengthMetadataValid(c) ==
/\ c.kind = "Technique" /\ StrengthMetadataValid(c) /\ SubtypeFlagsConsistent(c)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: StrengthMetadataValid, SubtypeFlagsConsistent
UpgradeActivationStep · operator
reference-profile · input revision 2 · CC0 1.0
UpgradeActivationStep(before, after, actor, paidWindow, costsComplete, activationAllowedByRules) ==
/\ actor = "SideA" /\ before.form = "Card" /\ before.kind = "Attachment"
/\ before.deployed /\ before.zone = "Play" /\ before.face = "Down" /\ ~before.activated
/\ paidWindow /\ costsComplete /\ activationAllowedByRules
/\ after = [before EXCEPT !.face = "Up",!.activated = TRUE]Exact module download · Source bundle and reproduction instructions
UpgradeDeployTypeLocation · operator
reference-profile · input revision 2 · CC0 1.0
UpgradeDeployTypeLocation(actor, kind, destination) ==
/\ actor = "SideA" /\ kind = "Attachment" /\ destination.zone = "Play"
/\ destination.area = "Root" /\ destination.targetSiteKind \in {"SchemaAtom033","SchemaAtom132"}Exact module download · Source bundle and reproduction instructions
UpgradeDeploymentPost · operator
reference-profile · input revision 2 · CC0 1.0
UpgradeDeploymentPost(o) ==
/\ o.form = "Card" /\ o.kind = "Attachment" /\ o.zone = "Play"
/\ o.deployed /\ o.face = "Down" /\ ~o.activatedExact module download · Source bundle and reproduction instructions