SchemaContracts¶
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.
resolved · operator
reference-profile · input revision 2 · CC0 1.0
resolved == ResolvedCostCard(c,isPayment,announcedX)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ResolvedCostCard
rules · operator
reference-profile · input revision 2 · CC0 1.0
rules == RulesTextProjection(segments)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: RulesTextProjection
applicable · operator
reference-profile · input revision 2 · CC0 1.0
applicable == c.kind = "Profile" /\ c.side = "SideB"Exact module download · Source bundle and reproduction instructions
value · operator
reference-profile · input revision 2 · CC0 1.0
value == ResolvedNumberPart(c.startingCapacityUnits,resolvedX)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ResolvedNumberPart
LAMBDA · operator
reference-profile · input revision 2 · CC0 1.0
LAMBDA segment : segment.role = "SchemaAtom137"Exact module download · Source bundle and reproduction instructions
AffiliationGroup · operator
reference-profile · input revision 2 · CC0 1.0
AffiliationGroup(affiliation) ==
CASE affiliation \in SideAAffiliations2 -> "SideA"
[] affiliation \in MajorSideBAffiliations2 -> "SchemaAtom104"
[] affiliation \in MiniSideBAffiliations2 -> "SchemaAtom107"
[] affiliation = "Unaffiliated" -> "Unaffiliated"Exact module download · Source bundle and reproduction instructions
Resolved project definitions: MajorSideBAffiliations2, MiniSideBAffiliations2, SideAAffiliations2
AffiliationLogoCorners · operator
reference-profile · input revision 2 · CC0 1.0
AffiliationLogoCorners == {"SchemaAtom164","SchemaAtom165","SchemaAtom027","SchemaAtom028"}Exact module download · Source bundle and reproduction instructions
AffiliationMetadataValid · operator
reference-profile · input revision 2 · CC0 1.0
AffiliationMetadataValid(c) ==
/\ c.side \in {"SideA","SideB"}
/\ c.affiliation \in Affiliations2
/\ c.affiliation = "Unaffiliated" \/
IF c.side = "SideA" THEN c.affiliation \in SideAAffiliations2
ELSE c.affiliation \in SideBAffiliations2Exact module download · Source bundle and reproduction instructions
Resolved project definitions: Affiliations2, SideAAffiliations2, SideBAffiliations2
AffiliationPresentation · operator
reference-profile · input revision 2 · CC0 1.0
AffiliationPresentation(affiliation) ==
[background |-> IF affiliation = "Unaffiliated" THEN "SchemaAtom184" ELSE "SchemaAtom069",
cornerLogo |-> IF affiliation = "Unaffiliated" THEN "NoValue" ELSE affiliation,
watermarkLogo |-> IF affiliation = "Unaffiliated" THEN "NoValue" ELSE affiliation]Exact module download · Source bundle and reproduction instructions
Affiliations2 · operator
reference-profile · input revision 2 · CC0 1.0
Affiliations2 == SchemaSymbol002 \cup {"Unaffiliated"}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: SchemaSymbol002
BaseLinkLayout · operator
reference-profile · input revision 2 · CC0 1.0
BaseLinkLayout == [position |-> "SchemaAtom164",icon |-> "Connection"]Exact module download · Source bundle and reproduction instructions
BaseLinkMetadataValid · operator
reference-profile · input revision 2 · CC0 1.0
BaseLinkMetadataValid(c) ==
/\ NumberPartValid(c.baseLink)
/\ c.baseLink.present = (c.kind = "Profile" /\ c.side = "SideB")Exact module download · Source bundle and reproduction instructions
Resolved project definitions: NumberPartValid
BaseLinkPart · operator
reference-profile · input revision 2 · CC0 1.0
BaseLinkPart(c, resolvedX) == ResolvedNumberPart(c.baseLink,resolvedX)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ResolvedNumberPart
CanonicalName · operator
reference-profile · input revision 2 · CC0 1.0
CanonicalName(c) ==
IF c.kind = "Profile" THEN <<c.canonicalTitle,c.canonicalSubtitle>> ELSE <<c.canonicalTitle>>Exact module download · Source bundle and reproduction instructions
CapacityCostLayout · operator
reference-profile · input revision 2 · CC0 1.0
CapacityCostLayout == [position |-> "SchemaAtom135",icon |-> "SchemaAtom103"]Exact module download · Source bundle and reproduction instructions
CapacityCostMetadataValid · operator
reference-profile · input revision 2 · CC0 1.0
CapacityCostMetadataValid(c) ==
/\ NumberPartValid(c.capacityCost)
/\ c.capacityCost.present = (c.kind = "Technique")Exact module download · Source bundle and reproduction instructions
Resolved project definitions: NumberPartValid
CapacityCostPart · operator
reference-profile · input revision 2 · CC0 1.0
CapacityCostPart(c, resolvedX) == ResolvedNumberPart(c.capacityCost,resolvedX)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ResolvedNumberPart
CapacityLimitWithBase · operator
reference-profile · input revision 2 · CC0 1.0
CapacityLimitWithBase(startingLimit, effectiveAdditiveChanges) ==
startingLimit + SumMap(effectiveAdditiveChanges)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: SumMap
CardResourceUnitCost · operator
reference-profile · input revision 2 · CC0 1.0
CardResourceUnitCost(c, category, protectingBarrierCount, isPayment, announcedX) ==
LET resolved == ResolvedCostCard(c,isPayment,announcedX)
IN CASE category = "Play" -> InherentPlayCost(resolved)
[] category = "Deploy" -> InherentDeployCost(resolved,protectingBarrierCount)
[] category = "Activation" -> InherentActivationCost(resolved)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InherentActivationCost, InherentDeployCost, InherentPlayCost, resolved
CardRulesAstProjection · operator
reference-profile · input revision 2 · CC0 1.0
CardRulesAstProjection(c) == GameplayTextProjection(c.textSegments)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: GameplayTextProjection
CardSubtypesForView · operator
reference-profile · input revision 2 · CC0 1.0
CardSubtypesForView(o, cardData, convertedObjective, conversionSubtypes, gains, losses) ==
IF o.form # "Card" THEN {}
ELSE IF ~SetupRetainsPrintedCharacteristics(o,cardData) THEN {}
ELSE EffectiveSubtypes(
IF convertedObjective THEN conversionSubtypes
ELSE PrintedSubtypeCounts(cardData[o.card].printedSubtypes),gains,losses)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: EffectiveSubtypes, PrintedSubtypeCounts, SetupRetainsPrintedCharacteristics
CardTypeLayout · operator
reference-profile · input revision 2 · CC0 1.0
CardTypeLayout(kind) ==
[position |-> IF kind = "Barrier" THEN "SchemaAtom096" ELSE "SchemaAtom031",
rotationDegrees |-> IF kind = "Barrier" THEN 90 ELSE 0,
bold |-> TRUE,order |-> "SchemaAtom071"]Exact module download · Source bundle and reproduction instructions
CardTypeMetadataValid · operator
reference-profile · input revision 2 · CC0 1.0
CardTypeMetadataValid(c) ==
/\ c.kind \in CardTypes2 /\ c.side \in {"SideA","SideB"}
/\ IF c.side = "SideA" THEN c.kind \in SetupSideAKinds
ELSE c.kind \in SetupSideBKindsExact module download · Source bundle and reproduction instructions
Resolved project definitions: CardTypes2, SetupSideAKinds, SetupSideBKinds
CardTypes2 · operator
reference-profile · input revision 2 · CC0 1.0
CardTypes2 == {"Profile","Objective","Facility","Barrier","Plan","Attachment",
"Action","Equipment","Technique","Support"}Exact module download · Source bundle and reproduction instructions
CardTypesForView · operator
reference-profile · input revision 2 · CC0 1.0
CardTypesForView(o, cardData, convertedObjective) ==
IF o.form # "Card" THEN {}
ELSE IF ~SetupRetainsPrintedCharacteristics(o,cardData) THEN {}
ELSE IF convertedObjective THEN {"Objective"} ELSE {cardData[o.card].kind}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: SetupRetainsPrintedCharacteristics
CardWithoutSubtype · operator
reference-profile · input revision 2 · CC0 1.0
CardWithoutSubtype(o, effectiveSubtypes, subtype) ==
o.form = "Card" /\ subtype \notin effectiveSubtypesExact module download · Source bundle and reproduction instructions
CopiesOfName · operator
reference-profile · input revision 2 · CC0 1.0
CopiesOfName(objects, names, name) ==
{id \in objects \cap DOMAIN names : names[id] = name}Exact module download · Source bundle and reproduction instructions
CostPartLayout · operator
reference-profile · input revision 2 · CC0 1.0
CostPartLayout(category) ==
[position |-> "SchemaAtom164",currency |-> "ResourceUnit",
icon |-> IF category = "Activation" THEN "SchemaAtom148" ELSE "SchemaAtom094"]Exact module download · Source bundle and reproduction instructions
DifferentCanonicalNames · operator
reference-profile · input revision 2 · CC0 1.0
DifferentCanonicalNames(chosen, names) ==
/\ \A i \in 1..Len(chosen) : chosen[i] \in DOMAIN names
/\ \A i,j \in 1..Len(chosen) :
i # j => names[chosen[i]] # names[chosen[j]]Exact module download · Source bundle and reproduction instructions
EffectiveSubtypes · operator
reference-profile · input revision 2 · CC0 1.0
EffectiveSubtypes(base, gains, losses) ==
{t \in Subtypes2 : SubtypeBalance(base,gains,losses,t) > 0}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: SubtypeBalance, Subtypes2
FilledImportCostSlots · operator
reference-profile · input revision 2 · CC0 1.0
FilledImportCostSlots(slots) ==
Cardinality({i \in 1..Len(slots) : slots[i]})Exact module download · Source bundle and reproduction instructions
FirstAbilityCentralTargetSite · operator
reference-profile · input revision 2 · CC0 1.0
FirstAbilityCentralTargetSite(parsedFirstAbility) == parsedFirstAbility.triggerTargetSiteExact module download · Source bundle and reproduction instructions
GameplayTextProjection · operator
reference-profile · input revision 2 · CC0 1.0
GameplayTextProjection(segments) ==
LET rules == RulesTextProjection(segments)
IN [i \in 1..Len(rules) |-> rules[i].rulesAst]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: rules
ImportCostBarLayout · operator
reference-profile · input revision 2 · CC0 1.0
ImportCostBarLayout == [position |-> "SchemaAtom115",slots |-> 5,filledColor |-> "SchemaAtom026"]Exact module download · Source bundle and reproduction instructions
ImportCostEligibleOutOfAffiliation · operator
reference-profile · input revision 2 · CC0 1.0
ImportCostEligibleOutOfAffiliation(card, profile) ==
~OutOfAffiliation(card,profile) \/ card.printedImportCost.presentExact module download · Source bundle and reproduction instructions
Resolved project definitions: OutOfAffiliation
ImportCostLegalityInput · operator
reference-profile · input revision 2 · CC0 1.0
ImportCostLegalityInput(part) ==
[hasImportCost |-> part.exists,importCost |-> part.amount]Exact module download · Source bundle and reproduction instructions
ImportCostLimitLayout · operator
reference-profile · input revision 2 · CC0 1.0
ImportCostLimitLayout(side) ==
[position |-> IF side = "SideA" THEN "SchemaAtom101" ELSE "SchemaAtom102",box |-> "SchemaAtom100"]Exact module download · Source bundle and reproduction instructions
ImportCostLimitMetadataValid · operator
reference-profile · input revision 2 · CC0 1.0
ImportCostLimitMetadataValid(c) ==
/\ c.front \in BOOLEAN /\ NumberPartValid(c.importBudget)
/\ c.importBudget.present = (c.kind = "Profile" /\ c.front)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: NumberPartValid
ImportCostLimitPart · operator
reference-profile · input revision 2 · CC0 1.0
ImportCostLimitPart(c, resolvedX) == ResolvedNumberPart(c.importBudget,resolvedX)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ResolvedNumberPart
ImportCostMetadataValid · operator
reference-profile · input revision 2 · CC0 1.0
ImportCostMetadataValid(c) ==
/\ NumberPartValid(c.printedImportCost) /\ ~c.printedImportCost.isX
/\ c.importCostSlots \in Seq(BOOLEAN)
/\ c.printedAlliance \in BOOLEAN
/\ IF c.printedImportCost.present
THEN /\ Len(c.importCostSlots) = 5
/\ c.printedImportCost.amount \in 0..5
/\ c.printedImportCost.amount = FilledImportCostSlots(c.importCostSlots)
ELSE Len(c.importCostSlots) = 0Exact module download · Source bundle and reproduction instructions
Resolved project definitions: FilledImportCostSlots, NumberPartValid
ImportCostPartForContext · operator
reference-profile · input revision 2 · CC0 1.0
ImportCostPartForContext(c, context, allianceSatisfied) ==
[exists |-> c.printedImportCost.present,
amount |-> IF ~c.printedImportCost.present THEN 0
ELSE IF context = "SchemaAtom053" /\ c.side = "SideA"
/\ c.printedAlliance /\ allianceSatisfied
THEN 0 ELSE c.printedImportCost.amount]Exact module download · Source bundle and reproduction instructions
ImportCostWithinLimit · operator
reference-profile · input revision 2 · CC0 1.0
ImportCostWithinLimit(effectiveImportCostTotal, effectiveLimit) ==
effectiveImportCostTotal <= effectiveLimitExact module download · Source bundle and reproduction instructions
IncrementSubtypeCount · operator
reference-profile · input revision 2 · CC0 1.0
IncrementSubtypeCount(counts, subtype) ==
[t \in DOMAIN counts \cup {subtype} |->
IF t = subtype THEN SubtypeCount(counts,t)+1 ELSE counts[t]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: SubtypeCount
IndicatorMatchesFirstAbility · operator
reference-profile · input revision 2 · CC0 1.0
IndicatorMatchesFirstAbility(c, parsedFirstAbility) ==
IF c.targetSiteIndicator = "NoValue" THEN TRUE
ELSE IndicatorTargetSiteHint(c.targetSiteIndicator) = parsedFirstAbility.triggerTargetSiteExact module download · Source bundle and reproduction instructions
Resolved project definitions: IndicatorTargetSiteHint
IndicatorTargetSiteHint · operator
reference-profile · input revision 2 · CC0 1.0
IndicatorTargetSiteHint(icon) ==
CASE icon = "SchemaAtom120" -> "SchemaAtom082"
[] icon = "SchemaAtom093" -> "SchemaAtom129"
[] icon = "SchemaAtom042" -> "SchemaAtom018"Exact module download · Source bundle and reproduction instructions
IntrinsicSubtypeRule · operator
reference-profile · input revision 2 · CC0 1.0
IntrinsicSubtypeRule(subtype) ==
CASE subtype = "SchemaAtom130" -> "SchemaAtom001"
[] subtype = "SchemaAtom045" -> "SchemaAtom002"
[] subtype = "SchemaAtom086" -> "SchemaAtom003"
[] OTHER -> "NoValue"Exact module download · Source bundle and reproduction instructions
LinkValue · operator
reference-profile · input revision 2 · CC0 1.0
LinkValue(effectiveBaseLink, deployedLinkContributions) ==
effectiveBaseLink + SumMap(deployedLinkContributions)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: SumMap
MajorSideBAffiliations2 · operator
reference-profile · input revision 2 · CC0 1.0
MajorSideBAffiliations2 == {"SchemaAtom015","GroupB","GroupA"}Exact module download · Source bundle and reproduction instructions
MiniSideBAffiliations2 · operator
reference-profile · input revision 2 · CC0 1.0
MiniSideBAffiliations2 == {"SchemaAtom010","SchemaAtom017","SchemaAtom157"}Exact module download · Source bundle and reproduction instructions
MinimumDeckLayout · operator
reference-profile · input revision 2 · CC0 1.0
MinimumDeckLayout(side) ==
[position |-> IF side = "SideA" THEN "SchemaAtom101" ELSE "SchemaAtom102",box |-> "SchemaAtom175"]Exact module download · Source bundle and reproduction instructions
MinimumDeckMetadataValid · operator
reference-profile · input revision 2 · CC0 1.0
MinimumDeckMetadataValid(c) ==
/\ c.front \in BOOLEAN /\ NumberPartValid(c.minDeckSize)
/\ c.minDeckSize.present = (c.kind = "Profile" /\ c.front)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: NumberPartValid
MinimumDeckPart · operator
reference-profile · input revision 2 · CC0 1.0
MinimumDeckPart(c, resolvedX) == ResolvedNumberPart(c.minDeckSize,resolvedX)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ResolvedNumberPart
MinimumDeckSatisfied · operator
reference-profile · input revision 2 · CC0 1.0
MinimumDeckSatisfied(deck, effectiveMinimum) == Len(deck) >= effectiveMinimumExact module download · Source bundle and reproduction instructions
NameMetadataValid · operator
reference-profile · input revision 2 · CC0 1.0
NameMetadataValid(c) ==
/\ c.kind \in SetupSideAKinds \cup SetupSideBKinds
/\ c.title \in STRING /\ c.title # ""
/\ c.canonicalTitle \in STRING /\ c.canonicalTitle # ""
/\ c.subtitle \in STRING /\ c.canonicalSubtitle \in STRING
/\ c.pronouns \in STRING
/\ IF c.kind = "Profile"
THEN c.subtitle # "" /\ c.canonicalSubtitle # ""
ELSE c.subtitle = "" /\ c.canonicalSubtitle = ""Exact module download · Source bundle and reproduction instructions
Resolved project definitions: SetupSideAKinds, SetupSideBKinds
NameParts · operator
reference-profile · input revision 2 · CC0 1.0
NameParts(c) == IF c.kind = "Profile" THEN <<c.title,c.subtitle>> ELSE <<c.title>>Exact module download · Source bundle and reproduction instructions
NamePlacement · operator
reference-profile · input revision 2 · CC0 1.0
NamePlacement(kind) ==
IF kind \in {"Profile","Objective","Barrier","Plan","Action","Support"}
THEN "SchemaAtom163" ELSE "SchemaAtom023"Exact module download · Source bundle and reproduction instructions
NameReference · operator
reference-profile · input revision 2 · CC0 1.0
NameReference(isSelf, source, objects, names, name) ==
IF isSelf THEN {source} \cap objects ELSE CopiesOfName(objects,names,name)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CopiesOfName
NoNumber · operator
reference-profile · input revision 2 · CC0 1.0
NoNumber == NumberPart(FALSE,0)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: NumberPart
NumberPart · operator
reference-profile · input revision 2 · CC0 1.0
NumberPart(present, amount) == [present |-> present,isX |-> FALSE,amount |-> amount]Exact module download · Source bundle and reproduction instructions
NumberPartValid · operator
reference-profile · input revision 2 · CC0 1.0
NumberPartValid(p) ==
/\ p.present \in BOOLEAN /\ p.isX \in BOOLEAN /\ p.amount \in Int
/\ (~p.present => ~p.isX)
/\ ((~p.present \/ p.isX) => p.amount = 0)Exact module download · Source bundle and reproduction instructions
NumberValue · operator
reference-profile · input revision 2 · CC0 1.0
NumberValue(p, isPayment, announcedX) ==
IF ~p.present THEN 0 ELSE IF p.isX THEN XValue(isPayment,announcedX) ELSE p.amountExact module download · Source bundle and reproduction instructions
Resolved project definitions: XValue
ObjectivePlacement · operator
reference-profile · input revision 2 · CC0 1.0
ObjectivePlacement(objectiveAreaRows) ==
SumMap([id \in DOMAIN objectiveAreaRows |->
IF objectiveAreaRows[id].form = "Card" /\ objectiveAreaRows[id].kind = "Objective"
THEN objectiveAreaRows[id].objectivePoints ELSE 0])Exact module download · Source bundle and reproduction instructions
Resolved project definitions: SumMap
ObjectivePointLayout · operator
reference-profile · input revision 2 · CC0 1.0
ObjectivePointLayout == [position |-> "SchemaAtom032",icon |-> "SchemaAtom161"]Exact module download · Source bundle and reproduction instructions
ObjectivePointsMetadataValid · operator
reference-profile · input revision 2 · CC0 1.0
ObjectivePointsMetadataValid(c) ==
/\ NumberPartValid(c.objectivePoints)
/\ c.objectivePoints.present = (c.kind = "Objective")Exact module download · Source bundle and reproduction instructions
Resolved project definitions: NumberPartValid
ObjectivePointsPart · operator
reference-profile · input revision 2 · CC0 1.0
ObjectivePointsPart(c, resolvedX) == ResolvedNumberPart(c.objectivePoints,resolvedX)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ResolvedNumberPart
PrintedCostMetadataValid · operator
reference-profile · input revision 2 · CC0 1.0
PrintedCostMetadataValid(c) ==
/\ c.kind \in SetupSideAKinds \cup SetupSideBKinds
/\ \A p \in {c.playCost,c.deployCost,c.activationCost} : NumberPartValid(p)
/\ c.playCost.present = (c.kind \in {"Action","Plan"})
/\ c.deployCost.present = (c.kind \in {"Equipment","Technique","Support"})
/\ c.activationCost.present = (c.kind \in {"Facility","Barrier","Attachment"})Exact module download · Source bundle and reproduction instructions
Resolved project definitions: NumberPartValid, SetupSideAKinds, SetupSideBKinds
PrintedCostPart · operator
reference-profile · input revision 2 · CC0 1.0
PrintedCostPart(c, category) ==
CASE category = "Play" -> c.playCost
[] category = "Deploy" -> c.deployCost
[] category = "Activation" -> c.activationCostExact module download · Source bundle and reproduction instructions
PrintedSubtypeCounts · operator
reference-profile · input revision 2 · CC0 1.0
PrintedSubtypeCounts(printedSubtypes) == [t \in printedSubtypes |-> 1]Exact module download · Source bundle and reproduction instructions
PrintedSubtypeMetadataValid · operator
reference-profile · input revision 2 · CC0 1.0
PrintedSubtypeMetadataValid(c) ==
/\ c.kind \in CardTypes2
/\ c.printedSubtypes \subseteq SubtypesByPrintedType[c.kind]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CardTypes2, SubtypesByPrintedType
ProfileStartingCapacity · operator
reference-profile · input revision 2 · CC0 1.0
ProfileStartingCapacity(c, resolvedX) ==
LET applicable == c.kind = "Profile" /\ c.side = "SideB"
value == ResolvedNumberPart(c.startingCapacityUnits,resolvedX)
IN [applicable |-> applicable,
amount |-> IF applicable THEN StartingCapacity(value.exists,value.amount) ELSE 0]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: StartingCapacity, applicable, value
ProgressLayout · operator
reference-profile · input revision 2 · CC0 1.0
ProgressLayout == [position |-> "SchemaAtom165",icon |-> "SchemaAtom147"]Exact module download · Source bundle and reproduction instructions
ProgressMetadataValid · operator
reference-profile · input revision 2 · CC0 1.0
ProgressMetadataValid(c) ==
/\ NumberPartValid(c.progressRequirement)
/\ c.progressRequirement.present = (c.kind = "Objective")Exact module download · Source bundle and reproduction instructions
Resolved project definitions: NumberPartValid
ProgressPart · operator
reference-profile · input revision 2 · CC0 1.0
ProgressPart(c, resolvedX) == ResolvedNumberPart(c.progressRequirement,resolvedX)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ResolvedNumberPart
ProgressThresholdMet · operator
reference-profile · input revision 2 · CC0 1.0
ProgressThresholdMet(counterCount, effectiveRequirement) ==
counterCount >= effectiveRequirementExact module download · Source bundle and reproduction instructions
ResolvedCostCard · operator
reference-profile · input revision 2 · CC0 1.0
ResolvedCostCard(c, isPayment, announcedX) ==
[kind |-> c.kind,playCost |-> NumberValue(c.playCost,isPayment,announcedX),
deployCost |-> NumberValue(c.deployCost,isPayment,announcedX),
activationCost |-> NumberValue(c.activationCost,isPayment,announcedX)]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: NumberValue
ResolvedNumberPart · operator
reference-profile · input revision 2 · CC0 1.0
ResolvedNumberPart(p, resolvedX) ==
[exists |-> p.present,
amount |-> IF ~p.present THEN 0 ELSE IF p.isX THEN resolvedX ELSE p.amount]Exact module download · Source bundle and reproduction instructions
RetireCostLayout · operator
reference-profile · input revision 2 · CC0 1.0
RetireCostLayout == [position |-> "SchemaAtom102",icon |-> "SchemaAtom169",currency |-> "ResourceUnit"]Exact module download · Source bundle and reproduction instructions
RetireCostMetadataValid · operator
reference-profile · input revision 2 · CC0 1.0
RetireCostMetadataValid(c) ==
/\ NumberPartValid(c.trashCost)
/\ CASE c.kind \in {"Facility","Attachment"} -> c.trashCost.present
[] c.kind \in {"Barrier","Plan"} -> TRUE
[] OTHER -> ~c.trashCost.presentExact module download · Source bundle and reproduction instructions
Resolved project definitions: NumberPartValid
RetireCostPart · operator
reference-profile · input revision 2 · CC0 1.0
RetireCostPart(c, isPayment, announcedX) ==
[exists |-> c.trashCost.present,amount |-> NumberValue(c.trashCost,isPayment,announcedX)]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: NumberValue
RulesTextProjection · operator
reference-profile · input revision 2 · CC0 1.0
RulesTextProjection(segments) ==
SelectSeq(segments,LAMBDA segment : segment.role = "SchemaAtom137")Exact module download · Source bundle and reproduction instructions
Resolved project definitions: LAMBDA
SchemaSymbol002 · operator
reference-profile · input revision 2 · CC0 1.0
SchemaSymbol002 == SideAAffiliations2 \cup SideBAffiliations2Exact module download · Source bundle and reproduction instructions
Resolved project definitions: SideAAffiliations2, SideBAffiliations2
SideAAffiliations2 · operator
reference-profile · input revision 2 · CC0 1.0
SideAAffiliations2 == {"SchemaAtom083","SchemaAtom090","SchemaAtom112","SchemaAtom183"}Exact module download · Source bundle and reproduction instructions
SideBAffiliations2 · operator
reference-profile · input revision 2 · CC0 1.0
SideBAffiliations2 == MajorSideBAffiliations2 \cup MiniSideBAffiliations2Exact module download · Source bundle and reproduction instructions
Resolved project definitions: MajorSideBAffiliations2, MiniSideBAffiliations2
SingleSubtypeChoiceAllowed · operator
reference-profile · input revision 2 · CC0 1.0
SingleSubtypeChoiceAllowed(chosen, specificKind) ==
IF Len(chosen) = 1 THEN SubtypeChoiceAllowed(chosen[1],specificKind) ELSE FALSEExact module download · Source bundle and reproduction instructions
Resolved project definitions: SubtypeChoiceAllowed
StandardMinimumBound · operator
reference-profile · input revision 2 · CC0 1.0
StandardMinimumBound(effectiveMinimum) == MaxOf(0,effectiveMinimum)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: MaxOf
StandardProfileAffiliationValid · operator
reference-profile · input revision 2 · CC0 1.0
StandardProfileAffiliationValid(c) ==
c.kind # "Profile" \/ c.affiliation \in SchemaSymbol002Exact module download · Source bundle and reproduction instructions
Resolved project definitions: SchemaSymbol002
StartingCapacityLayout · operator
reference-profile · input revision 2 · CC0 1.0
StartingCapacityLayout == [position |-> "SchemaAtom164",icon |-> "SchemaAtom103"]Exact module download · Source bundle and reproduction instructions
StartingCapacityMetadataValid · operator
reference-profile · input revision 2 · CC0 1.0
StartingCapacityMetadataValid(c) ==
/\ NumberPartValid(c.startingCapacityUnits)
/\ (c.startingCapacityUnits.present => c.kind = "Profile" /\ c.side = "SideB")Exact module download · Source bundle and reproduction instructions
Resolved project definitions: NumberPartValid
StrengthLayout · operator
reference-profile · input revision 2 · CC0 1.0
StrengthLayout(c) ==
IF c.kind = "Technique" /\ ~c.printedBarrierResponseCard
THEN [position |-> "SchemaAtom027",icon |-> "SchemaAtom052"]
ELSE IF c.strength.present THEN [position |-> "SchemaAtom027",icon |-> "SchemaAtom095"]
ELSE [position |-> "NoValue",icon |-> "NoValue"]Exact module download · Source bundle and reproduction instructions
StrengthMetadataValid · operator
reference-profile · input revision 2 · CC0 1.0
StrengthMetadataValid(c) ==
/\ c.printedBarrierResponseCard \in BOOLEAN /\ NumberPartValid(c.strength)
/\ c.strength.present = (c.kind = "Barrier" \/ (c.kind = "Technique" /\ c.printedBarrierResponseCard))Exact module download · Source bundle and reproduction instructions
Resolved project definitions: NumberPartValid
StrengthPart · operator
reference-profile · input revision 2 · CC0 1.0
StrengthPart(c, resolvedX) == ResolvedNumberPart(c.strength,resolvedX)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ResolvedNumberPart
StrengthThresholdMet · operator
reference-profile · input revision 2 · CC0 1.0
StrengthThresholdMet(effectiveBreakerStrength, effectiveBarrierStrength) ==
effectiveBreakerStrength >= effectiveBarrierStrengthExact module download · Source bundle and reproduction instructions
SubtypeBalance · operator
reference-profile · input revision 2 · CC0 1.0
SubtypeBalance(base, gains, losses, subtype) ==
SubtypeCount(base,subtype)+SubtypeCount(gains,subtype)-SubtypeCount(losses,subtype)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: SubtypeCount
SubtypeChoiceAllowed · operator
reference-profile · input revision 2 · CC0 1.0
SubtypeChoiceAllowed(subtype, specificKind) ==
IF specificKind = "SchemaAtom016" THEN subtype \in Subtypes2
ELSE IF specificKind \in CardTypes2
THEN subtype \in SubtypesByPrintedType[specificKind] ELSE FALSEExact module download · Source bundle and reproduction instructions
Resolved project definitions: CardTypes2, Subtypes2, SubtypesByPrintedType
SubtypeCount · operator
reference-profile · input revision 2 · CC0 1.0
SubtypeCount(counts, subtype) ==
IF subtype \in DOMAIN counts THEN counts[subtype] ELSE 0Exact module download · Source bundle and reproduction instructions
SubtypeCountsValid · operator
reference-profile · input revision 2 · CC0 1.0
SubtypeCountsValid(counts) ==
/\ DOMAIN counts \subseteq Subtypes2
/\ \A t \in DOMAIN counts : counts[t] \in NatExact module download · Source bundle and reproduction instructions
Resolved project definitions: Subtypes2
SubtypeFlagsConsistent · operator
reference-profile · input revision 2 · CC0 1.0
SubtypeFlagsConsistent(c) ==
/\ c.printedBarrierResponseCard = ("SchemaAtom086" \in c.printedSubtypes)
/\ c.printedAlliance = ("SchemaAtom013" \in c.printedSubtypes)Exact module download · Source bundle and reproduction instructions
SubtypeLayout · operator
reference-profile · input revision 2 · CC0 1.0
SubtypeLayout == [order |-> "SchemaAtom012"]Exact module download · Source bundle and reproduction instructions
SubtypeReference · operator
reference-profile · input revision 2 · CC0 1.0
SubtypeReference(token, isBold) ==
IF isBold /\ token \in Subtypes2 THEN {token} ELSE {}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: Subtypes2
Subtypes2 · operator
reference-profile · input revision 2 · CC0 1.0
Subtypes2 == UNION {SubtypesByPrintedType[kind] : kind \in CardTypes2}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CardTypes2, SubtypesByPrintedType
SubtypesByPrintedType · operator
reference-profile · input revision 2 · CC0 1.0
SubtypesByPrintedType ==
[Profile |-> {"SchemaAtom024","SchemaAtom038","SideA","SchemaAtom050","SchemaAtom057","SchemaAtom061","SchemaAtom062","SchemaAtom074","SchemaAtom097","SchemaAtom106","SchemaAtom114","SchemaAtom124","SchemaAtom150","SchemaAtom153","SchemaAtom174"},
Objective |-> {"SchemaAtom014","SchemaAtom019","SchemaAtom066","SchemaAtom067","SchemaAtom089","SchemaAtom097","SchemaAtom113","SchemaAtom127","SchemaAtom128","Research","SchemaAtom142","SchemaAtom145","SchemaAtom149"},
Facility |-> {"SchemaAtom009","SchemaAtom011","SchemaAtom013","SchemaAtom014","SchemaAtom021","SchemaAtom024","SchemaAtom029","SchemaAtom034","SchemaAtom038","SchemaAtom047","SchemaAtom055","SchemaAtom064","SchemaAtom065","SchemaAtom068","SchemaAtom079","SchemaAtom085","SchemaAtom088","SchemaAtom097","SchemaAtom125","SchemaAtom127","SchemaAtom130","Research","SchemaAtom136","SchemaAtom144","SchemaAtom167"},
Barrier |-> {"SchemaAtom007","SchemaAtom011","SchemaAtom014","SchemaSymbol001","SchemaAtom024","SchemaAtom040","SchemaAtom055","SchemaAtom056","SchemaAtom058","SchemaAtom067","SchemaAtom080","SchemaAtom084","SchemaAtom097","SchemaAtom109","SchemaAtom110","SchemaAtom113","SchemaAtom118","SchemaAtom127","Sentry","SchemaAtom166","SchemaAtom168"},
Plan |-> {"SchemaAtom013","SchemaAtom025","SchemaAtom043","SchemaAtom048","SchemaAtom063","SchemaAtom081","SchemaAtom097","SchemaAtom099","SchemaAtom105","SchemaAtom127","SchemaAtom133","SchemaAtom160","SchemaAtom167","SchemaAtom170"},
Attachment |-> {"SchemaAtom009","SchemaAtom011","SchemaAtom013","SchemaAtom014","SchemaAtom021","SchemaAtom024","SchemaAtom034","SchemaAtom038","SchemaAtom064","SchemaAtom065","SchemaAtom067","SchemaAtom068","SchemaAtom085","SchemaAtom119","SchemaAtom121","SchemaAtom127","SchemaAtom130","SchemaAtom136","SchemaAtom144","SchemaAtom143","SchemaAtom159","SchemaAtom173"},
Action |-> {"SchemaAtom043","SchemaAtom048","SchemaAtom063","SchemaAtom091","SchemaAtom108","SchemaAtom121","SchemaAtom126","SchemaAtom138","SchemaAtom139","SchemaAtom150","SchemaAtom160"},
Equipment |-> {"SchemaAtom035","SchemaAtom041","SchemaAtom045","SchemaAtom046","SchemaAtom049","SchemaAtom077","Connection","SchemaAtom108","SchemaAtom150","SchemaAtom178","SchemaAtom182"},
Technique |-> {"SchemaAtom006","SchemaAtom030","SchemaAtom039","SchemaAtom051","SchemaAtom054","SchemaAtom055","SchemaAtom059","SchemaAtom073","SchemaAtom086","SchemaAtom092","SchemaAtom150","SchemaAtom171","SchemaAtom180","SchemaAtom182"},
Support |-> {"SchemaAtom037","SchemaAtom038","SchemaAtom041","SchemaAtom044","Trait","SchemaAtom078","SchemaAtom079","SchemaAtom091","Connection","SchemaAtom098","SchemaAtom132","SchemaAtom136","SchemaAtom139","SchemaAtom144","SchemaAtom149","SchemaAtom150","SchemaAtom179"}]Exact module download · Source bundle and reproduction instructions
TargetSiteIndicatorIcons2 · operator
reference-profile · input revision 2 · CC0 1.0
TargetSiteIndicatorIcons2 == {"SchemaAtom120","SchemaAtom093","SchemaAtom042"}Exact module download · Source bundle and reproduction instructions
TargetSiteIndicatorLayout · operator
reference-profile · input revision 2 · CC0 1.0
TargetSiteIndicatorLayout == [position |-> "SchemaAtom116",purpose |-> "SchemaAtom181"]Exact module download · Source bundle and reproduction instructions
TargetSiteIndicatorMetadataValid · operator
reference-profile · input revision 2 · CC0 1.0
TargetSiteIndicatorMetadataValid(c) ==
/\ c.front \in BOOLEAN
/\ c.targetSiteIndicator \in TargetSiteIndicatorIcons2 \cup {"NoValue"}
/\ (c.profileFamily = "SelectableProfile" => c.kind = "Profile" /\ c.side = "SideA")
/\ IF c.profileFamily = "SelectableProfile" /\ ~c.front
THEN c.targetSiteIndicator \in TargetSiteIndicatorIcons2
ELSE c.targetSiteIndicator = "NoValue"Exact module download · Source bundle and reproduction instructions
Resolved project definitions: TargetSiteIndicatorIcons2
TextAbilityActive · operator
reference-profile · input revision 2 · CC0 1.0
TextAbilityActive(abilityPresent, sourceCardActive, ruleException) ==
abilityPresent /\ (sourceCardActive \/ ruleException)Exact module download · Source bundle and reproduction instructions
TextBoxLayout · operator
reference-profile · input revision 2 · CC0 1.0
TextBoxLayout == [position |-> "SchemaAtom033"]Exact module download · Source bundle and reproduction instructions
TextBoxMetadataValid · operator
reference-profile · input revision 2 · CC0 1.0
TextBoxMetadataValid(segments) ==
/\ \A i \in 1..Len(segments) : TextSegmentValid(segments[i])
/\ \A i,j \in 1..Len(segments) :
(segments[i].role = "SchemaAtom072" /\ segments[j].role = "SchemaAtom137") => j < iExact module download · Source bundle and reproduction instructions
Resolved project definitions: TextSegmentValid
TextDirectlyReferenceable · operator
reference-profile · input revision 2 · CC0 1.0
TextDirectlyReferenceable(segment) == segment.role = "SchemaAtom137"Exact module download · Source bundle and reproduction instructions
TextRoles2 · operator
reference-profile · input revision 2 · CC0 1.0
TextRoles2 == {"SchemaAtom137","SchemaAtom072","SchemaAtom131"}Exact module download · Source bundle and reproduction instructions
TextSegment · operator
reference-profile · input revision 2 · CC0 1.0
TextSegment(role, text, italic, parenthesized, rulesAst) ==
[role |-> role,text |-> text,italic |-> italic,
parenthesized |-> parenthesized,rulesAst |-> rulesAst]Exact module download · Source bundle and reproduction instructions
TextSegmentValid · operator
reference-profile · input revision 2 · CC0 1.0
TextSegmentValid(segment) ==
/\ segment.role \in TextRoles2 /\ segment.text \in STRING
/\ segment.italic \in BOOLEAN /\ segment.parenthesized \in BOOLEAN
/\ (segment.role \in {"SchemaAtom072","SchemaAtom131"} =>
segment.italic /\ segment.rulesAst = <<>>)
/\ (segment.role = "SchemaAtom131" => segment.parenthesized)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: TextRoles2
UniqueMetadataValid · operator
reference-profile · input revision 2 · CC0 1.0
UniqueMetadataValid(c) ==
/\ c.unique \in BOOLEAN
/\ c.uniqueSymbol \in {"SchemaAtom060","NoValue"}
/\ c.uniqueSymbol = UniquePrefix(c.unique)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: UniquePrefix
UniquePrefix · operator
reference-profile · input revision 2 · CC0 1.0
UniquePrefix(unique) == IF unique THEN "SchemaAtom060" ELSE "NoValue"Exact module download · Source bundle and reproduction instructions
UniqueSymbolPlacement · operator
reference-profile · input revision 2 · CC0 1.0
UniqueSymbolPlacement == "SchemaAtom022"Exact module download · Source bundle and reproduction instructions
XNumber · operator
reference-profile · input revision 2 · CC0 1.0
XNumber == [present |-> TRUE,isX |-> TRUE,amount |-> 0]Exact module download · Source bundle and reproduction instructions