Skip to content

Real bracketed multi-main: per-tier config + builder UI (follow-up to seeding composition) #325

Description

@ryan-johnson2

Follow-up to the real (bracketed) MultiGP multi-main, now composable from atomic rounds. Distinct from the older flat-mains plan in #219/#234: each main is its own single-elim bracket (heats of N), wired bottom-up by the new range/union seeding rules, with per-tier finals.

Shipped (the foundation)

The structure is currently composed via the API/script (run-real-multi-main.mjs), NOT authorable in the console.

Future work

  • Configurable tier count — A, B, C, … N (currently the 3-main shape is hardcoded in the script). The builder should take a tier count + per-tier entry/bump counts.
  • Per-tier win condition — each main its own win condition (e.g. C/B First-to-N, A Most-laps, or different lap targets), instead of one shared condition. (Per-tier final format — single race vs Chase-the-Ace — is already expressible per round; surface it per tier in the builder.)
  • Builder UI / wizard (S3) — a single "Real Multi-Main" action that emits the whole round set in dependency order: a realMultiMainReqs(...) planner in frontend/apps/rd-console/src/lib/standings.ts + a wizard that previews the qual-rank partition (seeds 1-6 / 7-12 / 13-20) and the bump arrows, then POSTs the rounds. Needs a FromRankingRange/Combine authoring affordance in the seeding picker.
  • Bump-ladder viz — show the tier→tier bump arrows in the standings/bracket view.

Relates to #219 (first-class multi-main), #234 (bump-ups). The seeding primitives + composition are done; this issue tracks per-tier configurability + making it authorable without scripting.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions