Changelog
4 released versions
What each version of this analyzer carried, newest first.
-
0.4.0 current
Changed
- The copies grid is headed by cards seen, not by turn number. Cards seen is what the hypergeometric formula takes -- seven is the opening hand, and each turn after adds a draw -- so the question "how often do I have this by the time I have seen fifteen cards" can now be read straight off the table. The turn that reaches each column rides under its number, and shifts by one on the draw.
-
0.3.0
Added
- A changelog page at
/changelog, reached by clicking the version in the footer. It is rendered fromCHANGELOG.mditself rather than from a copy, so the page and the file cannot drift apart, and the release the running build came from is marked as current.
- A changelog page at
-
0.2.0
Fixed
- The maindeck a headerless decklist really has. An Arena export marks the maindeck with a
Deckand aSideboardheader. Exports that carry neither and separate the two with a blank line were read as one maindeck, so a 60-card deck with a 15-card sideboard was analysed as a 75-card deck. Every probability divides by the deck size, so every figure on the page was wrong. A list of more than 60 cards with no header is now split at its first blank line, and the page says the split was guessed rather than presenting it as fact. With no blank line either, every card counts as maindeck and the page asks. Stored analyses are re-parsed on the next page load, so they correct themselves. - Repeated lines are one card. Two printings of a card are two lines in an export, and an alias can point two decklist names at the same card. Counting them apart listed the card twice in the by-spell table and in every count built from it.
- The share link is the deck page, not the URL of whatever request rendered it. Moving a card posts to
/sections, and the link offered for copying briefly became that.
Added
- A maindeck and sideboard panel. It lists both sides and moves a copy across on a click. Copies move one at a time, because a card can sit on both sides and a whole-card toggle cannot say that. Moving one writes the headers into the stored decklist, settling the split for everyone who opens the link; the cards themselves are never edited. htmx swaps the page in place so the reader keeps their place on it, and the plain form post still works without JavaScript.
- A combined chance for spells of more than one colour. The row per colour is not the chance of casting a gold spell, and neither is the product of those rows: the colours share their sources, so a dual land lifts the combined chance while every card drawn towards one colour is a card not drawn towards the other.
joint_at_leastgroups the deck by which of the spell's colours each card makes and sums over the hands answering every requirement at once, counting a dual land once rather than once per colour. It is checked against brute-force enumeration over small decks. Karsten's table gives a target per colour requirement and none per spell, so the combined figure carries no verdict. - The sideboard in the deck statistics, with a footnote that it is resolved and listed but never counted.
- Every section panel now carries an id, so a section can be linked to directly.
- The maindeck a headerless decklist really has. An Arena export marks the maindeck with a
-
0.1.0
First working version.
Added
- Karsten's land-count regression, coloured-source table, copies grid and curve-out simulation, over a hypergeometric core.
- Arena decklist parsing, Scryfall resolution with a Postgres card cache, and oracle-text classification of ramp, cheap draw, fast mana and MDFCs.
- A web application: shareable analyses on a short slug, a mana curve chart, a card types section, opening-hand odds, a hypergeometric calculator, and PDF output.
- Confirmation flows for cards that will not resolve and for lands whose colours Scryfall cannot settle, plus per-deck banner art and a recent analyses list with retention.
- A two-stage Alpine container image, published to GitHub Packages by CI.