Every developer starts somewhere, usually with a half-compiled idea and a main deck.
Setup
Two or more players compete (or collaborate) to build Features faster and cleaner than their peers. Each player builds a deck of at least 40 cards from Libraries, Tools, Events, and Author cards. Your starter ships with 66 cards, more than you need. Paring it down is your first deckbuilding decision, before you ever open a booster.
All cards except Features live in your shuffled main deck. Feature cards are kept in a separate Side Deck: your backlog, the tasks your manager assigned while you were on vacation. It isn't part of your 40-card minimum.
Boost.Core and Boost.System are always in play. They have no physical cards, they are the #include <foundation> of your soul. They cannot be targeted, removed, or affected by any effect.
Before shuffling, agree how many Features must be built to win:
- One: a quick match.
- Two: standard.
- Three: a full session.
Then, in a nod to real life, your opponent chooses which Features you'll be responsible for from your Side Deck. Each player draws five cards. Decide who goes first (coin flip, rock-paper-scissors, or rand() % 2); in rematches, the loser goes first. Finally, pick a Play Mode: Casual, Strict, or Cooperative.
Card Types
Library
Your dependencies, the building blocks of every project. Each Library provides up to three stats (Speed, Reliability, Efficiency, Scalability, Portability, Accuracy, Capacity, Flexibility). Stats can be negative: fast libraries may be unreliable; powerful parsers may be slow. Every card is a tradeoff, just like real library selection. Libraries are always face-up; the only hidden information is your hand and deck.
Each Library shows its title, group (Networking, Data, System, Math, Parsing, Meta, Utility, Diagnostics), minimum C++ version, up to three stats, an ability, and flavor text. When a Feature is completed, contributing Libraries (except one you keep) are shuffled back into your deck.
Feature
Your project goals, a whiteboard of post-it notes listing two layers of requirements: card-type requirements (minimum Library types, e.g. "1 System + 1 Utility + 1 Data") and stat thresholds (e.g. "Speed ≥ 12, Reliability ≥ 5"). Type requirements are a floor, not a ceiling: you need at least the listed types, but every Library on your field contributes its stats. Each Feature needs a minimum of 3 Library cards to complete. When requirements are met and QA passes, flip the Feature upside-down; it stays as a badge of honor and counts toward victory.
Tool
Your editors, linters, and profilers, Ephemeral or Persistent depending on the text. Some are Instant (playable any time, even on your opponent's turn). Persistent Tool limit: 2. To play a third, first discard one. Ephemeral and Attached Tools don't count toward the limit.
Event
The chaos of software development: code reviews, bugs, merge conflicts, heroic refactors. Events can be Ephemeral (one-shot), Persistent (until removed), Broadcast (affects all players), or Instant.
Attached subtype
Some Tools and Events attach to a specific Library rather than taking a free-standing slot. While attached, the card sits with its host, doesn't count toward the Persistent Tool limit, and leaves the field when the host does.
Author
The developers behind the libraries. Each Library shows its author initials; Author cards interact with matching Libraries. Authors sit in a zone that doesn't count toward the 5-Library limit; maximum 3 Authors in play. Play an Author with your Library action, or co-play one for free alongside a Library they authored. Bonuses stack cumulatively. Some multi-author Libraries show a Group Icon instead of initials, scan the card's QR code for the full author list.
Card text overrides. When a card conflicts with these rules, the card wins. The rulebook is the README; the card is the source. Conflicting effects chain and resolve in reverse order; last commit wins until someone reverts.
Dependency Icons
Libraries show up to two icons in the type banner:
Hub: referenced by other Libraries. In Strict Mode, removing a Hub triggers Dependency Crash in everything that references it. Protect these, or target them.
Dependency: references another Library (shown in bold in its text). In Strict Mode it can't be played unless the referenced Library is already on a field.
A Library may show both. In Casual Mode these icons are informational only.
The bonus line is the dependency. Libraries don't carry a separate "requires X" line. If a card's text names another Library for a bonus (“if Mp11 is in play, gain…”), that named Library is also its dependency: one sentence doing both jobs. In Strict Mode the card can only be played once the named Library is in play; in Casual Mode the same text is just a bonus. A card may name one or two Libraries (multiple named = multiple dependency/bonus sources).
A Library's subtype bar can carry more than one tag, and they are two different systems:
- Domain. The first tag, and the only one a Feature matches against (e.g. “2 Networking + 1 Data”). Every Library has exactly one domain. The eight domains are Networking, Data, System, Math, Parsing, Meta, Utility, and Diagnostics.
- Category. Any tag after the domain. Categories are used only by card effects (“your Coroutine libraries gain…”); a Feature never requires a category.
The one rule to remember: Features match the first tag only. Everything after the domain is a category for card effects, never something a Feature can require. Format is Domain · Category.
How categories stay future-proof
A category is a shared noun that effects reference by the noun, never by a card's proper name, so a card printed today can be affected by an effect printed years later, with no errata, icons, or reprints. A card declares its own membership: if its name is the category (e.g. Build System) it qualifies automatically; if its name differs, its text says “… is a Build System.” That one sentence is the whole opt-in, readable on the card face with no rulebook lookup. Any icon is cosmetic shorthand only; the card text is authoritative.
The Field & Shared C++ Version
Field limit: 5 Libraries. To play a sixth, discard one first (in Strict Mode, discarding a depended-on Library triggers a crash). The C++ version is a global state affecting both players. By default the current standard is in effect and any Library may be played. A version-restriction effect locks both players; you can't lock only your opponent. So restriction cards are only worth it if your deck handles them better than theirs.
Full zones swap. To play a Library or Persistent into a zone that's already at its limit (5 Libraries / 2 Persistent Tools), first send one card from that zone to the discard pile, then play the new one. You can't otherwise remove your own fielded cards.
Turn Order
Each turn is a development sprint.
Draw phase
Pull one card. If your deck is empty when you must draw, you've burned out and lose immediately; there is no garbage collector for developer exhaustion.
Main phase
Your Main Phase runs as two steps, in order: Library first, then Tool or Event. Move forward through them; once you begin the Tool/Event step you can't go back to play a Library.
- Library step. You may play one Library to your field. (Your field holds 5 Libraries; to play into a full field, send one Library there to the discard first.)
- Tool/Event step. You may play one Tool or one Event.
You may skip either step. Instants are exempt: play them any time it's legal, on either player's turn, and they never count as your Library or your Tool/Event play.
Build check
If your field meets your current Feature's type gates and stat thresholds, you may submit for QA. You're never forced to. Ship it now, or make it right?
End phase
Clean up "until end of turn" effects, discard down to 7 cards, pass control.
QA Phase
Your code compiles, but can it survive inspection?
1 · Submit for QA
Confirm all required types are present, all stat thresholds are met, and you have at least 3 Libraries assigned. Announce: "Submitting for QA."
2 · QA Response Window
Before QA resolves, your opponent may play one Instant. Each Instant opens a new window for the other player; the chain continues until someone declines, then resolves in reverse order. This is the poker moment: do they have a Segfault? Do you have an Exception Handler?
3 · Reliability check
Add up the Reliability of all assigned Libraries, including bonuses. If a Feature lists no Reliability minimum, treat it as 0.
- Reliability ≥ 12: QA passes automatically.
- Below 12 but ≥ the Feature's minimum: attempt Manual QA.
- Below the minimum: cannot submit. Write more tests.
QA difficulty = the auto-pass threshold (default 12) plus the Feature's Reliability minimum. Some cards modify it; unless stated otherwise, modifiers apply to the auto-pass threshold.
4 · Manual QA
When QA doesn't auto-pass, choose your test method:
| Method | How it works | Best for |
| Knowledge Test | Opponent asks a factual programming/C++ question with a clear answer. 30 seconds. Correct = pass. | Devs who want to flex |
| Skill Challenge | A safe, short, harmless physical challenge, balance a pencil, toss a card into a hat, keep a straight face. | Casual fun, conference energy |
| Code Review | Draw 3 cards. If 2+ are Libraries, QA passes. Return all 3 and shuffle. | Fast play, no outside knowledge |
| Demo Day | Opponent picks one contributing Library; explain what it does in your own words. They judge. | Learning & teaching Boost |
Agree on available methods at the start, or allow free choice. The rule of thumb: if everyone's laughing by the end of QA, you did it right. Knowledge questions must be objective; skill challenges must be safe and inclusive; players may decline any challenge (it counts as a failed QA).
5 · One check per turn
A QA check is a single attempt. When you submit, players alternate responding with Instants until both decline, and the Feature's total is then evaluated once. If it fails at that evaluation, you cannot initiate another QA check this turn unless a card explicitly grants an additional attempt. Recovering Libraries or stats after a failed check does not itself grant a new attempt. If you want a recovery card to save the current check, you have to play it inside the QA Response Window, before the check resolves.
Feature Completion
When a Feature's requirements are met and QA passes:
- Mark the Feature. Turn it upside-down. It stays on your field as a badge of honor and counts toward victory.
- Reveal your next Feature. See (or choose) the Feature you'll build next, so your keep decision is informed.
- Keep 1 Library. Choose one Library on your field to carry into the next Feature. (If it references a Library that's about to leave, it flips face-down until you replay that dependency, so keeping a hub is usually safer than keeping a dependent.)
- Clear the rest of your field.
- All other Libraries shuffle back into your deck. A card attached to a leaving Library leaves with it and goes to the discard. A card attached to the Library you kept stays with it.
- Your free-standing persistents go to the discard: your Persistent Tools, plus any Persistent or Broadcast Event you control that isn't attached. Resolve any "when removed" text as they leave. Your opponent's persistents are untouched; theirs clear when they complete a Feature of their own.
- Refill your hand to 5 cards. If you already have 5 or more, don't draw.
- Begin the next Feature.
Field progression: Feature 1 starts with 0 kept (5 open slots), Feature 2 with 1 kept, Feature 3 with 2 kept, then you win.
Dependency Crash (Strict Mode)
When a Library leaves the field, any Library referencing it flips face-down, cascading fully through the chain. Replaying the missing dependency reactivates and re-cascades the whole chain. Face-down Libraries stay on the field and use a slot, but contribute nothing and can be voluntarily discarded. In Casual Mode, dependency crash is ignored.
Instants & Timing
Instants play any time, your turn, the opponent's, or the QA window. Each Instant opens a response window for the other player; the chain resolves in reverse order, like a call stack unwinding after a panic. Instant limit: a custom deck may include a maximum of 8 Instants. The starter ships with exactly 8, so booster Instants are replacements, not additions.
Effect Duration: Continuous vs. One-Time
Whether an effect ends when its source card leaves play is told by the card's own wording:
- Continuous. Worded “while in play,” “while this is out,” “as long as.” These are ongoing auras the source actively holds up. Remove the source and the effect ends immediately; anything it was holding reverts. Example: Legacy System's silencing ends the moment it's removed, and the silenced Libraries wake back up.
- One-time. Worded as happening on an event: “when you play,” “enters,” “when this happens.” The effect fires once and the resulting state now belongs to the affected card, not the source. The source leaving does not reverse it.
Player tell: “while / as long as” = ongoing = reverts on removal. “when / enters” = already done = stays.
Play Modes
Casual: any Library any time; dependencies are optional bonuses; no crash.
Strict: dependencies enforced, crash active, full cascade; for players who read compiler warnings.
Cooperative: build together against the backlog (see below).
Cooperative Mode
Developers unite, no opponent, no lose condition, just shipping software that works. Each player has their own deck and 5-slot field; pick 2 Features from the combined Side Deck to build simultaneously. Libraries from both fields contribute to either Feature (committed at QA). Events fire on draw. There's no QA Response Window; combined Reliability from both fields counts toward the ≥ 12 auto-pass. Co-op decks must be at least 1/3 unique Events (min 14 in a 40-card deck), the chaos is the game. Scale up: Easy = 2 Features, Medium = 3 random, Hard = 4+ random.
Deckbuilding
- Minimum 40 cards in the main deck.
- Maximum 8 Instants.
- Maximum 2 Persistent Tools on the field at once.
- Cooperative: at least 1/3 unique Events (min 14 in 40).
- The Feature Side Deck is separate (not part of your 40) and must hold at least 4 Features, or double the number required to win if that is greater, with no duplicates.
Multiplayer & Challenge Variants
For three or four developers:
- Competitive Teams: first team to deliver all Features wins.
- Co-op Free-for-All: one shared backlog.
- King of the Mountain: build alone; first to finish gets promoted.
Challenge modes:
- Speed Build: first to one Feature; the conference-table special.
- Endurance Build: survive five-plus Features of feature creep.
- Random Assignment: Features dealt blindly, because management never reads your skill set.
Victory
Competitive: you win when all your assigned Features are complete, no shared commits, no ties. If your deck runs dry and you can't draw, you burn out and lose. You may concede any time, just say "I've got a better offer" and hand in your cards.
Cooperative: complete as many Features together as possible; there's no lose condition, just the satisfaction of shipping.
Stat Guidelines
Eight possible stats: Speed, Reliability, Scalability, Efficiency, Portability, Accuracy, Capacity, Flexibility. Each card shows up to 3, positive or negative; unlisted stats are 0. A card's own ability may add stats not listed on it; external modifiers only affect stats already listed. Negative stats keep each Library distinct and force real deckbuilding choices.
Glossary
- Field
- Where active Libraries and Persistent cards live. Max 5 Libraries.
- Deck
- Your draw pile. Empty = you burn out.
- Feature Side Deck
- The backlog your manager assigned you.
- Instant
- Play anytime, usually at the worst moment. Max 8 per deck.
- Ephemeral
- One-shot. Used and discarded.
- Persistent
- Stays until removed by an effect that removes Persistent effects.
- Attached
- A subtype that attaches to a Library; doesn't count toward the 2-Persistent-Tool limit; leaves with its host.
- Broadcast
- Affects all players equally. Misery loves company.
- Domain
- The first tag on a Library's subtype bar and the only one Features match. One per Library: Networking, Data, System, Math, Parsing, Meta, Utility, or Diagnostics.
- Category
- A shared noun after the domain, used only by card effects (never matched by a Feature). Cards join by name; effects reference the category, not a specific card.
- Dependency
- A Library referenced in another's ability text. Required in Strict Mode.
- Dependency Crash
- Removing a dependency flips all referencing Libraries face-down. Cascades fully.
- Silenced
- A silenced Library's abilities are off and it can't contribute to Features. It stays on the field but fully inert until the silencing effect is removed (e.g. Legacy System's version lock). Can still be discarded.
- Hub Card
- A Library others depend on. Marked ✳. Protect, or target.
- QA Auto-Pass
- Reliability ≥ 12. Completes without Manual QA.
- QA Response Window
- The moment after "Submitting for QA" when opponents may play Instants.
- Author Zone
- Where Authors sit. Doesn't count toward the 5-Library limit. Max 3.
- Implicit
- Core and System. Always in play. No cards. Untouchable. Eternal.
Victory takes more than finishing the build. You have to survive the process, debug your deck, manage your dependencies, and ship anyway.