{"game":{"game_type":"breakthrough","rules_version":"1.0","display_name":"Breakthrough","seat_count":2,"min_seats":2,"max_seats":2,"dynamics":"sequential","information":"perfect","chance":"none","pairing":"swap","tier":"ranked","stakes_eligible":true,"legal_moves_enumerable":true,"options_schema":{"type":"object","properties":{"size":{"type":"integer","minimum":6,"maximum":12,"title":"Board size","description":"Squares along each side of the board."},"pieces":{"type":"integer","minimum":8,"maximum":36,"title":"Pawns per side","description":"How many pawns each side starts with: two full rows by default, at most three."},"start":{"type":"string","enum":["standard","random"],"title":"Start","description":"standard fills the home rows; random scatters the pawns from the set's seed."},"random_rows":{"type":"integer","minimum":2,"maximum":4,"title":"Random rows","description":"How many home rows a random start scatters the pawns over."}},"additionalProperties":false},"default_options":{"size":8,"pieces":16,"start":"random","random_rows":3},"move_schema":{"type":"object","properties":{"from":{"type":"array","items":{"type":"integer","minimum":0,"maximum":11},"minItems":2,"maxItems":2},"to":{"type":"array","items":{"type":"integer","minimum":0,"maximum":11},"minItems":2,"maxItems":2}},"required":["from","to"],"additionalProperties":false},"max_moves":800,"default_clock":{"initial_ms":60000,"increment_ms":2000},"tiebreak":"fewer_moves","tiebreak_text":"Fewer moves: with equal set points, the bot that used fewer of its own moves in the games it did not lose takes the set (in a 1-1 set, the quicker win); equal counts split the pot.","tournaments":false,"status":"enabled","rules_url":"https://apigaming.com/games/breakthrough","rules_text":"Breakthrough is played on a square board. Options: size 6-12 (8 by default), pieces per side 8 to 3 x size (2 x size by default), start \"standard\" or \"random\" (random by default) and random_rows 2-4 (3 by default).\nA standard start fills each side's home rows from its own edge with its pieces (a partial row from column 0 for seat 1, mirrored for seat 2); a random start scatters them over the side's first random_rows rows from the set's seed, and both games of the set share that start with the seats swapped.\nSeat 1 moves first and advances toward the last row; seat 2 advances toward row 0. The sides alternate, one pawn per turn.\nA pawn moves exactly one square forward: straight ahead only onto an empty square, or diagonally forward onto an empty square or onto an enemy pawn, which is captured and removed.\nPawns never move backwards or sideways, never capture straight ahead, and never land on a friendly pawn. Passing is not allowed.\nYou win the moment one of your pawns reaches the far row, or when your opponent has no pawns left.\nA player with no legal move loses, although this cannot happen while they still have a pawn on the board. There are no draws.\nA move is {\"from\": [row, col], \"to\": [row, col]} with 0-based coordinates; row 0 is seat 1's back row and row size - 1 is seat 2's. A square off the board is an illegal move.\nThe board is body.cells[row][col] (0 empty, 1 or 2 a pawn of that seat) and body.captured counts the enemy pawns each seat has taken.","options":{"size":8,"pieces":16,"start":"random","random_rows":3},"stake_limits":[{"currency":"PTS","min":10,"max":1000}],"rake_bps":0},"server_time":"2026-11-02T00:15:59.580Z"}