clone

fifteen puzzle games for the terminal, with daily puzzles, weekly ladders and xp, built on bubble tea

refactor/root-tui-model
puzzletea / openspec / specs / fillomino / spec.md
spec.md 2.7K rendered
1## Purpose2Document the shipped Fillomino built-in game behavior.34## Requirements56### Requirement: Registry Metadata7Fillomino SHALL be registered as a built-in game with canonical description "Grow the numbered regions to their exact sizes.", aliases `polyomino, regions`, variants `Fillomino (default 1300 Elo)`, and daily legacy modes `easy 6x6, medium 8x8, hard 10x10`.89#### Scenario: Resolve Fillomino10- **WHEN** the registry resolves the canonical name or any alias11- **THEN** it returns the Fillomino entry with help text, import behavior, variant metadata, and legacy mode compatibility1213### Requirement: Variant Elo Creation14Fillomino MUST support the current variant plus target Elo creation path, using the variant default Elo when no explicit target is supplied.1516#### Scenario: Spawn Fillomino by Elo17- **WHEN** the user selects the Fillomino variant and a target Elo from 0 through 300018- **THEN** PuzzleTea spawns a deterministic Fillomino puzzle and records target, actual, and confidence metadata when generation reports it1920### Requirement: Legacy Mode Compatibility21Fillomino SHALL preserve legacy named modes as compatibility presets that map to the Fillomino variant and preset Elo values: Mini 5x5 (300 Elo), Easy 6x6 (700 Elo), Medium 8x8 (1300 Elo), Hard 10x10 (2000 Elo), Expert 12x12 (2600 Elo).2223#### Scenario: Use legacy mode title24- **WHEN** the user supplies a legacy Fillomino mode title through CLI or deterministic daily metadata25- **THEN** PuzzleTea resolves it to the Fillomino variant and the registered preset Elo2627### Requirement: Puzzle Rules28The Fillomino runtime MUST let players grow numbered regions so every connected region has area equal to its number, with matching adjacent regions merged and contradictory region sizes rejected by solved-state checks.2930#### Scenario: Check solved state31- **WHEN** the player fills the board or word state32- **THEN** Fillomino reports solved only when all rule constraints are satisfied3334### Requirement: Save Load And Interaction35Fillomino SHALL serialize enough state for resume/import, reset to its initial puzzle, expose debug and full-help data, and support its shipped interaction model. Keyboard cursor entry is required, and mouse click-to-focus support MUST be available.3637#### Scenario: Resume saved Fillomino38- **WHEN** a saved Fillomino payload is imported39- **THEN** the restored game preserves givens, player entries, cursor/selection state where applicable, and solved-state behavior4041### Requirement: Print Export Support42The Fillomino print adapter SHALL render puzzle and solution data for JSONL-to-PDF workflows.4344#### Scenario: Export Fillomino45- **WHEN** Fillomino is included in a JSONL or PDF export flow46- **THEN** PuzzleTea follows the registered print support behavior for that game