{
  "gameId": "66977652ebe78160276d412c",
  "name": "Ninja VS Samurai",
  "version": "1.0.0",
  "description": "5-reel 3-row payline slot with dual scatter types (Multiplier/Wild Reel) and feature queue mechanic",
  "config": {
    "grid": {
      "type": "rectangular",
      "rows": 3,
      "cols": 5
    },

    "symbols": [
      { "id": 0,  "code": "NU", "name": "Null",        "category": "system",  "description": "Empty position" },
      { "id": 50, "code": "W",  "name": "Wild",        "category": "wild",    "description": "Substitutes for any regular symbol" },
      { "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": 31, "code": "F1", "name": "Scatter 1",   "category": "scatter", "description": "Triggers Multiplier feature in free game" },
      { "id": 32, "code": "F2", "name": "Scatter 2",   "category": "scatter", "description": "Triggers Wild Reel feature in free game" }
    ],

    "payTable": {
      "numOfKindTiers": [
        { "label": "3 of a kind", "count": 3 },
        { "label": "4 of a kind", "count": 4 },
        { "label": "5 of a kind", "count": 5 }
      ],
      "regular": [
        { "symbolId": 50, "code": "W",  "payouts": [0, 0, 20, 100, 500] },
        { "symbolId": 1,  "code": "H1", "payouts": [0, 0, 15, 60, 150] },
        { "symbolId": 2,  "code": "H2", "payouts": [0, 0, 15, 60, 150] },
        { "symbolId": 3,  "code": "H3", "payouts": [0, 0, 10, 40, 100] },
        { "symbolId": 4,  "code": "H4", "payouts": [0, 0, 10, 40, 100] },
        { "symbolId": 11, "code": "N1", "payouts": [0, 0, 8, 20, 40] },
        { "symbolId": 12, "code": "N2", "payouts": [0, 0, 8, 20, 40] },
        { "symbolId": 13, "code": "N3", "payouts": [0, 0, 5, 10, 20] },
        { "symbolId": 14, "code": "N4", "payouts": [0, 0, 5, 10, 20] }
      ],
      "scatter": {
        "note": "F1 and F2 do not pay directly. Each scatter in rows 1-3 queues a feature for free game.",
        "f1": { "symbolId": 31, "code": "F1", "featureType": "Multiplier", "description": "Each F1 in rows 1-3 queues a Multiplier feature" },
        "f2": { "symbolId": 32, "code": "F2", "featureType": "WildReel",   "description": "Each F2 in rows 1-3 queues a WildReel feature" },
        "triggerCount": 3,
        "scatterRows": "rows 1-3 only (row 0 and row 4 excluded)"
      }
    },

    "rules": {
      "winType": "payline",
      "payLines": 20,
      "minNumOfKind": 3,
      "triggerCount": 3,
      "scatterActiveRows": [1, 2, 3],
      "freeGameTrigger": "3+ F1/F2 appear in rows 1-3",
      "featureQueueDescription": "Each scatter queues its feature type; queued features play in order during free game"
    },

    "options": {
      "totalBet": [20, 1400],
      "multiplierFeatureValues": [2, 3, 4, 5],
      "multiplierFeatureWeights": [1, 1, 1, 1]
    },

    "states": [
      { "id": 0, "name": "normalGame", "label": "Normal 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": "payline",
      "winDescription": "Left-to-right consecutive matching symbols on 20 fixed paylines",
      "wild": true,
      "wildDescription": "Wild (W) substitutes for any regular symbol and has its own payouts",
      "dualScatter": true,
      "dualScatterDescription": "F1 queues Multiplier feature, F2 queues Wild Reel feature - mixed scatters give mixed features",
      "featureQueue": true,
      "featureQueueDescription": "Features from scatters are queued and executed one per free spin",
      "featureMultiplier": true,
      "featureMultiplierDescription": "Multiplier feature applies 2-5x to that spin's win",
      "featureWildReel": true,
      "featureWildReelDescription": "Wild Reel feature transforms 1-5 reels to full wilds (31 combinations weighted)",
      "dualFeature": true,
      "dualFeatureDescription": "In free game, 1/9 chance both features activate simultaneously",
      "buyFeature": true,
      "buyFeatureDescription": "Mode 1 (1400 bet) guarantees scatters via trigger position table on reels 2-4"
    },

    "modes": [
      {
        "id": 0,
        "name": "Normal",
        "description": "Standard play mode",
        "isBuyFeature": false,
        "totalBet": 20
      },
      {
        "id": 1,
        "name": "Buy Feature",
        "description": "Guaranteed scatter trigger - reels 2-4 forced to scatter positions",
        "isBuyFeature": true,
        "totalBet": 1400,
        "triggerPositions": {
          "reel1": [17, 18, 19, 27, 28, 29],
          "reel2": [5, 6, 7, 16, 17, 18],
          "reel3": [9, 10, 11, 27, 28, 29]
        }
      }
    ],

    "reelStrips": {
      "reel0": [2, 14, 50, 3, 13, 1, 2, 2, 4, 12, 13, 4, 13, 11, 3, 1, 11, 12, 4, 14, 12, 13, 12, 4, 3, 14, 3, 11, 14, 11, 1],
      "reel1": [13, 2, 4, 11, 14, 11, 3, 3, 50, 1, 12, 11, 3, 14, 1, 11, 13, 13, 12, 32, 14, 13, 4, 4, 2, 2, 1, 14, 12, 31, 12],
      "reel2": [3, 13, 11, 4, 13, 4, 3, 32, 2, 2, 12, 12, 12, 1, 14, 11, 1, 4, 31, 3, 2, 13, 13, 11, 14, 14, 50, 11, 12, 14, 1],
      "reel3": [3, 1, 13, 13, 12, 12, 13, 2, 3, 11, 12, 31, 11, 14, 1, 3, 11, 2, 14, 50, 11, 14, 12, 2, 4, 4, 13, 14, 1, 32, 4],
      "reel4": [11, 3, 2, 50, 1, 11, 4, 3, 13, 13, 12, 12, 13, 14, 4, 1, 3, 2, 4, 14, 14, 2, 4, 12, 14, 11, 3, 11, 13, 12, 1]
    },

    "lineTable": [
      [1, 1, 1, 1, 1],
      [0, 0, 0, 0, 0],
      [2, 2, 2, 2, 2],
      [0, 1, 2, 1, 0],
      [2, 1, 0, 1, 2],
      [0, 0, 1, 0, 0],
      [2, 2, 1, 2, 2],
      [1, 2, 2, 2, 1],
      [1, 0, 0, 0, 1],
      [0, 1, 1, 1, 0],
      [2, 1, 1, 1, 2],
      [1, 1, 0, 1, 1],
      [1, 1, 2, 1, 1],
      [1, 0, 1, 0, 1],
      [1, 2, 1, 2, 1],
      [0, 1, 0, 1, 0],
      [2, 1, 2, 1, 2],
      [0, 0, 1, 2, 2],
      [2, 2, 1, 0, 0],
      [1, 0, 1, 2, 1]
    ],

    "wildReelTable": {
      "description": "31 combinations of reel(s) that can become full-wild, chosen by weighted random",
      "combinations": [
        [0], [1], [2], [3], [4],
        [0,1], [0,2], [0,3], [0,4],
        [1,2], [1,3], [1,4],
        [2,3], [2,4],
        [3,4],
        [0,1,2], [0,1,3], [0,1,4], [0,2,3], [0,2,4], [0,3,4],
        [1,2,3], [1,2,4], [1,3,4],
        [2,3,4],
        [0,1,2,3], [0,1,2,4], [0,1,3,4], [0,2,3,4],
        [1,2,3,4],
        [0,1,2,3,4]
      ],
      "weights": [246, 232, 232, 582, 1175, 40, 40, 89, 179, 37, 83, 168, 83, 168, 298, 13, 14, 28, 14, 28, 45, 13, 26, 42, 42, 5, 7, 7, 7, 6, 1]
    }
  }
}
