Add game-type format profiles (final roadmap item) - #11
Merged
Conversation
Six formats (mttRegular/mttTurbo/mttHyper/pko/satellite/cash), each carrying a GameFormatProfile of sensible starting-point defaults for the existing range/bounty/ICM tools to seed from. A pure defaults/config layer — no model this feeds reads a GameFormat; nothing here mutates or overrides a user's own choices, it only ever pre-fills a starting value. This is design judgment, not ground-truth math (unlike ICM) or a transcribed source (unlike the range models) — every value is disclosed as this project's own chosen default in the doc comments, with tests checking internal consistency (satellite leans hardest on ICM, hyper starts shallower than regular, pko is the only format with bounty on) rather than external truth.
Explains why FORMATS.md has no source to cite (unlike ICM.md/RANGES.md) — this is disclosed judgment about typical/sensible starting points, not ground truth or a transcription.
Selecting a format seeds (previews, doesn't mutate) its default stack, bounty toggle+size, and ICM-awareness — self-contained rather than a retrofit of every existing screen's independent state; see the view's doc comment and ai-docs/FORMATS.md's Consumers section for the scoping rationale.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
GameFormat(6 cases:.mttRegular,.mttTurbo,.mttHyper,.pko,.satellite,.cash) +GameFormatProfile— a pure defaults/config layer carrying per-format starting-point values: default effective stack, whether antes are the sensible assumption, whether the PKO bounty overlay defaults on (and its seed size), whether/how much the ICM-aware UI should lean in, and blind-level speed.ICM(validated against a published worked example) or the range models (transcribed from cited charts), there's no external "correct answer" for what a hyper-turbo's typical starting stack should default to. Every value is disclosed in the doc comments andai-docs/FORMATS.mdas this project's own chosen default, with a one-line rationale — not defended as more "correct" than a reasonable alternative choice.PushFoldRange/OpeningRange/CallingRange/ThreeBetRange/FourBetRange/BountyEquity/ICM/ICMRiskPremium) reads aGameFormatat all — a caller reads a profile once, at format-selection time, to pre-fill an existing parameter. Nothing clamps or overrides a value the user has already set.BOUNTY.md's "two competing forces" section).BountyEquity's own doc comment, rather than inventing a second independent guess.FORMATS.md's Consumers section.Test plan
swift test(PokerKit): 235/235 green (220 baseline + 15 newGameFormattests — internal-consistency checks: exhaustive/stable case list, Codable/rawValue round-trip, pko-is-only-bounty-format, cash-has-neither-icm-nor-bounty, satellite-leans-hardest-on-icm, pko-leans-less-than-regular, stack-depth-shrinks-with-speed, and structural invariants like bounty-fraction-set-iff-bounty-enabled).BankrollTrackerUITests.testLogSessionUpdatesListAndSummary, previously confirmed pre-existing/flaky on a cleanmaincheckout across the last two PRs — unrelated to this one).GameFormatUITestscovering the default (Regular MTT) seed, PKO seeding bounty-on at 33%, and Cash seeding ICM/bounty off with the speed row hidden entirely.Roadmap status
This is the last item on the original roadmap (push/fold → RFI → calling → bounty → equity → 3-bet/4-bet → ICM → formats). Per standing instruction, stopping here for direction before starting the variants/PLO track.
🤖 Generated with Claude Code