Arcana — overview
Arcanum (pl. arcana). What other deckbuilders call jokers. Don’t call them jokers.
The Pale Jack catalog is 109 arcana, each a small object in the dealer’s pocket or on his table. Every arcanum has a stable id, a tier, a trigger set, and a single small piece of behavior that bends the cascade or the engine.
Catalog by phase
Section titled “Catalog by phase”| Phase | Theme | Count | Trigger |
|---|---|---|---|
| Baseline | The starter set | 12 | various |
| 1 | Chain (onArcanum) | 10 | onArcanum |
| 2 | Drawback (constraints) | 12 | various, +UI gate |
| 3 | Build identity | 16 | per-archetype |
| 4 | Per-card scored | 12 | onScore |
| 5 | Mercy (cap shaping) | 9 | onResolve |
| 8 | Heavy Marks | 6 | onWin (compositional) |
| 9 | Withdrawal | 4 | onSurrender |
| 10 | Reckless Hand (Plunger) | 4 | onWin (post-double) |
| 11 | Splintered Pair (Twinned) | 4 | onWin (post-split) |
| Total | 109 |
Catalog by tier
Section titled “Catalog by tier”| Tier | Count | Shop price |
|---|---|---|
| Common | ~32 | 30 |
| Uncommon | ~38 | 60 |
| Rare | ~24 | 100 |
| Mythic | ~15 | 200 |
The build axes (Phase 3 onward)
Section titled “The build axes (Phase 3 onward)”| Axis | Charms | What it pushes you toward |
|---|---|---|
| Patient | stationmasters_bell, quiet_hour, acolytes_patience, final_card | Stand discipline. |
| Iron | riveted_coat, iron_year, iron_missalbook | Hard-hand totals. |
| Cup | threadbare_cup, holy_pour, refused_cup | Sanity / Refusal economy. |
| Vow | strangers_vow + the chair Vow stack | Voluntary constraints. |
| Bold / Twinned | twin_coins, mirror_pair, owed_coin | Splits + symmetry. |
| Late-night | late_bird, tin_halo, crown_naturals | Naturals + post-midnight. |
| Heavy Marks | pair_hunter, long_walk_home, three_of_a_kind, seven_seeker, court_calls, slow_bleed | Compositional deviation. |
| Withdrawal | pawn_ticket, bell_pull, empty_sleeve, vow_of_withdrawal | Surrender as banking. |
| Plunger | open_hand, last_coin, doubled_wager, vow_of_plunger | Reckless doubling. |
| Twinned | cracked_vow, splintered_mirror, twin_marks, strangers_half | Wrong-pair splits. |
How an arcanum fires
Section titled “How an arcanum fires”- The engine resolves a hand. State is captured.
ArcanaRunner.run()walks the tray and dispatches per-trigger.- Each
Arcanum.apply(trigger, ctx)returns anArcanumEffectwithchipDelta,multDelta,multMultiplier,flagsToSet. - Effects feed the cascade resolver. Flags persist in
runStateFlagsfor the next hand / room / night. onArcanumchain re-entry walks fired charms in order, with amaxChainDepthguard at 8.
Where this lives
Section titled “Where this lives”lib/sim/arcana/arcana.dart— the catalog (3000+ lines).lib/sim/arcana_runner.dart— the dispatcher.lib/data/meta_progression.dart—arcanaUnlocked(the player’s starter pool).assets/arcana/<id>.png— per-charm icon. 1:1 with the registry.
Each charm
Section titled “Each charm”Per-charm pages aren’t yet wiki-ed (109 pages would be a lot to
maintain by hand). For now: see the per-build pages
(Heavy Marks, Withdrawal,
Plunger, Twinned,
Drawbacks) for grouped detail. The full
catalog source is in lib/sim/arcana/arcana.dart and is the
canonical document until per-charm pages get authored.