{
  "gameId": "6776721f6480f21e2ba51b6f",
  "name": "Commando",
  "version": "1.0.0",
  "description": "6x6 cluster-pays slot with Tune mechanic triggering multiplier, reshuffle, wild, sticky wild, and free game effects",
  "config": {
    "grid": {
      "type": "rectangular",
      "rows": 6,
      "cols": 6,
      "note": "Corners [row0][col0] and [row0][col5] are excluded from play"
    },

    "symbols": [
      { "id": 0,  "code": "NU", "name": "Null",     "category": "system",  "description": "Empty position" },
      { "id": 1,  "code": "H1", "name": "High 1",   "category": "high",    "description": "Highest paying symbol" },
      { "id": 2,  "code": "H2", "name": "High 2",   "category": "high",    "description": "Second highest paying symbol" },
      { "id": 3,  "code": "H3", "name": "High 3",   "category": "high",    "description": "Third highest paying symbol" },
      { "id": 4,  "code": "H4", "name": "High 4",   "category": "high",    "description": "Fourth highest paying symbol" },
      { "id": 11, "code": "N1", "name": "Normal 1", "category": "normal",  "description": "Highest paying normal symbol" },
      { "id": 12, "code": "N2", "name": "Normal 2", "category": "normal",  "description": "Second normal symbol" },
      { "id": 13, "code": "N3", "name": "Normal 3", "category": "normal",  "description": "Third normal symbol" },
      { "id": 14, "code": "N4", "name": "Normal 4", "category": "normal",  "description": "Fourth normal symbol" },
      { "id": 15, "code": "N5", "name": "Normal 5", "category": "normal",  "description": "Lowest paying normal symbol" },
      { "id": 50, "code": "WD", "name": "Wild",     "category": "wild",    "description": "Connects clusters as wild, placed by Tune GR/BR effects" }
    ],

    "payTable": {
      "clusterTiers": [
        { "label": "4  symbols",  "count": 4 },
        { "label": "5  symbols",  "count": 5 },
        { "label": "6  symbols",  "count": 6 },
        { "label": "7  symbols",  "count": 7 },
        { "label": "8  symbols",  "count": 8 },
        { "label": "9  symbols",  "count": 9 },
        { "label": "10 symbols",  "count": 10 },
        { "label": "11 symbols",  "count": 11 },
        { "label": "12 symbols",  "count": 12 },
        { "label": "13 symbols",  "count": 13 },
        { "label": "14+ symbols", "count": 14 }
      ],
      "regular": [
        { "symbolId": 1,  "code": "H1", "payouts": [0, 0, 0, 0, 60, 90, 105, 120, 150, 300, 450, 900, 2100, 4200, 9000] },
        { "symbolId": 2,  "code": "H2", "payouts": [0, 0, 0, 0, 45, 60, 75, 90, 120, 240, 360, 750, 1800, 3600, 6000] },
        { "symbolId": 3,  "code": "H3", "payouts": [0, 0, 0, 0, 30, 45, 60, 75, 90, 180, 270, 600, 1500, 3000, 5400] },
        { "symbolId": 4,  "code": "H4", "payouts": [0, 0, 0, 0, 24, 30, 45, 60, 75, 120, 180, 300, 1200, 2400, 4800] },
        { "symbolId": 11, "code": "N1", "payouts": [0, 0, 0, 0, 15, 18, 24, 30, 45, 75, 120, 180, 600, 1200, 2400] },
        { "symbolId": 12, "code": "N2", "payouts": [0, 0, 0, 0, 15, 18, 24, 30, 45, 75, 120, 180, 600, 1200, 2400] },
        { "symbolId": 13, "code": "N3", "payouts": [0, 0, 0, 0, 12, 15, 18, 24, 30, 60, 90, 150, 300, 600, 1200] },
        { "symbolId": 14, "code": "N4", "payouts": [0, 0, 0, 0, 12, 15, 18, 24, 30, 60, 90, 150, 300, 600, 1200] },
        { "symbolId": 15, "code": "N5", "payouts": [0, 0, 0, 0, 12, 15, 18, 24, 30, 60, 90, 150, 300, 600, 1200] }
      ]
    },

    "rules": {
      "winType": "cluster",
      "minNumOfKind": 4,
      "maxNumOfKind": 14,
      "freeSpins": 10,
      "maxMultiplier": 20,
      "freeGameStartMultiplier": 2,
      "cornerExclusion": "Positions [0][0] and [0][5] are never filled"
    },

    "options": {
      "totalBet": [20, 2000]
    },

    "states": [
      { "id": 0, "name": "BaseGame", "label": "Base Game" },
      { "id": 1, "name": "FreeGame", "label": "Free Game" }
    ],

    "winTypes": [
      { "id": 0, "name": "NoWin",     "label": "No Win" },
      { "id": 1, "name": "NormalWin", "label": "Normal Win" },
      { "id": 2, "name": "FreeGame",  "label": "Free Game Trigger" }
    ],

    "mechanics": {
      "winType": "cluster-pays",
      "winDescription": "4+ connected matching symbols (adjacency: up/down/left/right) = win",
      "clusterEliminate": true,
      "clusterEliminateDescription": "Winning cluster symbols removed, remaining fall down, empty top rows refill",
      "tune": true,
      "tuneDescription": "Each spin shows 1-3 highlighted 'tune' positions. A winning cluster overlapping a tune triggers a TuneState effect",
      "wild": true,
      "wildDescription": "WD placed by Tune GR/BR effects acts as connector for any symbol",
      "tuneMultiplier": true,
      "tuneMultiplierDescription": "TuneState NULL: tune overlap increments spin multiplier (max 20x)",
      "tuneReshuffle": true,
      "tuneReshuffleDescription": "TuneState GB: non-winning symbols cleared and replaced (reshuffle)",
      "tuneWild": true,
      "tuneWildDescription": "TuneState GR: tune position becomes wild for next spin",
      "tuneStickyWild": true,
      "tuneStickyWildDescription": "TuneState BR: tune position becomes sticky wild lasting 3 spins",
      "tuneFreeGame": true,
      "tuneFreeGameDescription": "TuneState GBR: awards 10 free spins. Guaranteed in Buy Feature mode when 3 tunes active",
      "escalatingMultiplier": true,
      "escalatingMultiplierDescription": "In Free Game multiplier starts at 2x, increases by 1 per cluster hit (max 20x)",
      "buyFeature": true,
      "buyFeatureDescription": "Mode 1 (2000 bet): when 3 tune positions active, TuneState forced to GBR (Free Game trigger)"
    },

    "tuneSystem": {
      "description": "Each spin 1-3 tune positions are randomly chosen. TuneState determined by weighted random based on current tune count.",
      "tuneStates": [
        { "id": 0, "name": "NULL",  "label": "Multiplier",   "description": "Cluster overlap increments spin multiplier" },
        { "id": 1, "name": "GB",    "label": "Reshuffle",     "description": "Non-winning symbols cleared and redrawn" },
        { "id": 2, "name": "GR",    "label": "Wild",          "description": "Tune position becomes wild for 1 spin" },
        { "id": 3, "name": "BR",    "label": "Sticky Wild",   "description": "Tune position becomes sticky wild for 3 spins" },
        { "id": 4, "name": "GBR",   "label": "Free Game",     "description": "Awards free spins" }
      ],
      "tuneStateWeights": {
        "description": "Weights per active tune count [1 tune, 2 tunes, 3 tunes]",
        "tuneCount1": [1, 0, 0, 0, 0],
        "tuneCount2": [7, 1, 0, 0, 0],
        "tuneCount3": [3, 1, 3, 3, 17]
      }
    },

    "symbolWeight": {
      "symbolOrder": ["H1", "H2", "H3", "H4", "N1", "N2", "N3", "N4", "N5"],
      "BaseGame": [1, 1, 1, 1, 3, 3, 3, 3, 3],
      "FreeGame":  [200, 253, 200, 200, 100, 100, 100, 100, 100]
    },

    "modes": [
      {
        "id": 0,
        "name": "Normal",
        "description": "Standard play mode",
        "isBuyFeature": false,
        "totalBet": 20
      },
      {
        "id": 1,
        "name": "Buy Feature",
        "description": "When 3 tune positions active, TuneState forced to GBR (Free Game)",
        "isBuyFeature": true,
        "totalBet": 2000,
        "buyFeatureDescription": "Forces a guaranteed free game trigger when tune count reaches 3"
      }
    ]
  }
}
