{
  "gameId": "67fdfc7fbdb1e32676aa68b4",
  "name": "Gate of Olympus",
  "version": "1.0.0",
  "description": "6-reel 5-row scatter-pays slot with bonus multiplier symbol, 3 free game types (Random Wild / Wild Reel / Random Multiplier)",
  "config": {
    "grid": {
      "type": "rectangular",
      "rows": 5,
      "cols": 6
    },

    "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": 5,  "code": "H5", "name": "High 5",   "category": "high",    "description": "Fifth 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": 31, "code": "F",  "name": "Scatter",  "category": "scatter", "description": "Added dynamically each spin; 4+ triggers free game" },
      { "id": 41, "code": "B",  "name": "Bonus",    "category": "bonus",   "description": "Carries random multiplier value; applied to cumulative tumble win" },
      { "id": 50, "code": "W",  "name": "Wild",     "category": "wild",    "description": "Substitutes for any regular symbol in ways calculations" }
    ],

    "payTable": {
      "symbolCountTiers": [
        { "label": "8-9 symbols",   "min": 8,  "max": 9 },
        { "label": "10-11 symbols", "min": 10, "max": 11 },
        { "label": "12 symbols",    "min": 12, "max": 30 }
      ],
      "regular": [
        { "symbolId": 1,  "code": "H1", "payouts": [200, 500, 1000] },
        { "symbolId": 2,  "code": "H2", "payouts": [50, 200, 500] },
        { "symbolId": 3,  "code": "H3", "payouts": [40, 100, 300] },
        { "symbolId": 4,  "code": "H4", "payouts": [30, 40, 240] },
        { "symbolId": 5,  "code": "H5", "payouts": [20, 30, 200] },
        { "symbolId": 11, "code": "N1", "payouts": [16, 24, 160] },
        { "symbolId": 12, "code": "N2", "payouts": [10, 20, 100] },
        { "symbolId": 13, "code": "N3", "payouts": [8, 18, 80] },
        { "symbolId": 14, "code": "N4", "payouts": [5, 15, 40] },
        { "symbolId": 15, "code": "N5", "payouts": [3, 8, 20] }
      ],
      "scatter": {
        "symbolId": 31,
        "code": "F",
        "note": "Pays x miniBet[mode%2]. Added dynamically - not in reel strips.",
        "countTiers": [
          { "label": "4 scatters",  "count": 4, "payout": 3 },
          { "label": "5 scatters",  "count": 5, "payout": 5 },
          { "label": "6 scatters",  "count": 6, "payout": 100 }
        ]
      }
    },

    "rules": {
      "minNumOfKind": 8,
      "maxNumOfKind": 12,
      "scatterTriggerCount": 4,
      "freeSpins": 15,
      "scatterRetriggerCount": 3,
      "retriggerFreeSpins": 5,
      "scatterPayFormula": "F_payTable[count-1] x miniBet[mode%2]",
      "miniBet": [20, 25, 2000]
    },

    "options": {
      "totalBet": [20, 25, 2000],
      "bonusMultiplierValues": [2, 3, 4, 5, 6, 8, 10, 12, 15, 20, 25, 50, 100, 250, 500],
      "bonusMultiplierWeights": [2800, 2800, 915, 343, 172, 70, 38, 24, 14, 8, 6, 2, 1, 1, 1]
    },

    "states": [
      { "id": 1, "name": "BaseGame",  "label": "Base Game" },
      { "id": 2, "name": "FreeGame1", "label": "Free Game - Random Wild" },
      { "id": 3, "name": "FreeGame2", "label": "Free Game - Wild Reel" },
      { "id": 4, "name": "FreeGame3", "label": "Free Game - Random Multiplier" }
    ],

    "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": "scatter-pays",
      "winDescription": "8+ matching symbols anywhere on grid = win (ways-count per symbol)",
      "cascade": true,
      "cascadeDescription": "Winning symbols removed; surviving symbols shift right; new symbols fill from left",
      "bonusMultiplier": true,
      "bonusMultiplierDescription": "B symbols carry a random multiplier; at end of cascade chain, cumulative win is multiplied by accumulated B values",
      "scatterDynamic": true,
      "scatterDynamicDescription": "F scatter is added dynamically after reel spin: each of 6 reels has ~12.6% (mode 0) or ~15.4% (mode 1) chance of receiving 1 scatter",
      "threeTypeFreeGame": true,
      "threeTypeFreeGameDescription": "Scatter triggers one of 3 free game types: FG1 (Random Wild), FG2 (Wild Reel), FG3 (Random Multiplier), chosen by weighted random",
      "freeGameFeature": {
        "FreeGame1": "Random Wild: 1/4 chance to add 1-9 random wilds in reels 1-4",
        "FreeGame2": "Wild Reel: 1/4 chance to convert 1-3 full reels to wilds (reels 1-4)",
        "FreeGame3": "Random Multiplier: 1/4 chance to set/increase multiplier by 2-5x (max 20x)"
      },
      "freeGameMultiplier": true,
      "freeGameMultiplierDescription": "In free game, multiplier starts at 1 and increments by 1 per winning cascade (max 20x)",
      "buyFeature": true,
      "buyFeatureDescription": "Mode 2 (2000 bet) forces 4-6 scatters on first spin via RNG=[0,0,0,0,0,0]"
    },

    "modes": [
      {
        "id": 0,
        "name": "Normal",
        "description": "Standard play mode",
        "isBuyFeature": false,
        "totalBet": 20,
        "scatterWeight": { "appear": 80, "notAppear": 553 },
        "freeGameTypeWeights": [6, 5, 5]
      },
      {
        "id": 1,
        "name": "Ante Bet",
        "description": "Higher bet with increased scatter chance",
        "isBuyFeature": false,
        "totalBet": 25,
        "scatterWeight": { "appear": 110, "notAppear": 603 },
        "freeGameTypeWeights": [50, 64, 50]
      },
      {
        "id": 2,
        "name": "Buy Feature",
        "description": "Guaranteed 4-6 scatters on first spin",
        "isBuyFeature": true,
        "totalBet": 2000,
        "buyFeatureScatterCount": { "items": [4, 5, 6], "weights": [10000, 1373, 1] }
      }
    ],

    "reelStrips": {
      "BaseGame": {
        "reel0": [12,12,15,15,11,11,4,4,12,41,12,13,13,14,14,14,2,3,15,1,1,1,15,11,11,13,13,12,12,14,13,13,15,15,14,14,2,15,15,12,12,3,1,13,13,13,4,4,15,15,14,13,11,11,4,3,3,4,15,15,2,13,14,14,4,4,3,11,11,14,14,3,3,2,2,11,11,14,13,1,1,15,15,11,11,3,3,4,4,14,15,15,13,14,14,11,15,15,13,13,2,2,14,14,11,11,12,12,15,15,11,11,4,4,12,12,13,13,14,14,14,2,3,15,1,1,1,15,11,11,13,13,12,12,14,13,13],
        "reel1": [14,13,13,4,13,11,12,12,3,3,14,14,2,2,4,4,14,13,13,2,2,1,13,13,13,15,14,3,11,11,1,3,12,12,15,15,15,1,11,11,15,15,13,13,14,14,11,11,14,1,1,3,14,14,14,15,15,15,14,11,1,12,12,15,15,41,14,12,12,13,13,3,3,11,4,4,11,14,14,15,15,3,2,13,4,4,3,3,12,12,1,13,13,4,4,2,2,15,15,13,14,15,15,14,11,11,11,14,13,13,4,13,11,12,12,3,3,14,14,2,2,4,4,14,13,13,2,2,1,13,13,13,15,14,3,11,11],
        "reel2": [3,2,2,14,4,12,12,13,13,15,15,15,1,4,4,3,3,15,11,11,1,15,15,2,12,14,14,3,3,11,11,2,1,1,15,12,12,1,15,15,12,1,12,2,15,15,13,1,1,11,4,3,13,13,15,15,15,4,4,2,2,4,4,4,15,14,41,13,13,11,2,2,15,15,12,12,1,13,12,14,14,12,12,14,14,13,11,3,3,11,11,2,2,1,15,12,12,13,13,12,12,4,4,12,15,15,13,1,1,13,3,3,13,13,15,15,11,11,14,14,12,12,15,15,15,1,14,13,15,15,15,4,4,12,15,15,15],
        "reel3": [14,14,11,11,12,12,3,14,13,13,15,15,11,11,3,3,1,4,4,4,12,12,2,14,15,1,11,2,14,3,3,2,11,11,12,12,11,14,1,1,14,13,12,2,2,12,13,15,14,14,14,2,2,4,4,4,15,15,15,14,14,11,4,4,13,13,13,1,15,11,14,12,11,3,13,3,15,14,11,11,41,15,15,12,12,4,4,13,13,1,1,12,12,15,15,15,13,13,2,2,12,12,14,14,11,11,12,12,3,14,13,13,15,15,11,11,3,3,1,4,4,4,12,12,2,14,15,1,11,2,14,3,3,2,11,11,12],
        "reel4": [4,12,4,15,4,2,2,1,12,12,12,13,41,1,13,4,13,14,14,4,12,12,14,13,13,2,15,4,4,3,1,1,4,4,12,12,11,12,11,1,14,14,11,1,1,11,11,15,15,14,13,12,11,4,3,2,1,15,15,3,3,12,12,2,2,1,4,11,12,13,14,15,4,4,3,2,2,1,15,15,15,4,14,14,13,13,12,12,2,2,11,11,3,3,14,15,15,15,13,13,11,11,12,12,15,15,15,1,1,3,3,14,13,13,4,12,4,15,4,2,2,1,12,12,12,13,1,13,4,13,14,14,4,12,12,14,13],
        "reel5": [4,4,15,2,2,1,1,4,12,12,3,3,3,15,4,14,14,4,41,12,12,15,15,1,15,14,13,13,15,15,4,4,3,3,11,1,1,13,13,2,2,2,13,1,13,1,14,14,11,11,14,11,1,3,3,3,1,15,14,14,12,12,4,2,2,1,14,14,15,3,3,12,12,11,13,13,13,12,12,15,3,15,3,4,11,11,13,13,14,14,4,3,3,2,2,12,12,14,14,15,15,3,3,13,13,11,11,4,4,15,2,2,1,1,4,12,12,3,3,3,15,4,14,14,4,12,12,15,15,1,15,14,13,13,15,15,4]
      },
      "FreeGame": {
        "reel0": [12,12,12,15,11,11,4,4,12,41,12,13,13,14,14,14,2,3,3,1,1,1,11,11,11,13,13,12,12,41,13,13,13,14,14,14,2,2,12,12,12,3,1,13,13,13,4,4,4,14,14,13,11,11,4,3,3,4,4,2,2,13,41,14,4,4,3,11,11,14,14,3,3,2,2,11,11,14,13,1,1,1,11,11,11,3,3,4,4,14,14,13,13,14,14,14,14,13,13,13,2,2,14,14,11,11,31],
        "reel1": [14,13,13,4,13,11,12,12,3,3,14,14,2,2,4,4,14,13,13,2,2,1,13,13,13,15,14,3,11,11,1,3,12,12,12,12,1,1,11,11,11,11,41,13,14,14,11,11,14,1,1,3,14,14,14,14,14,14,14,11,1,12,12,12,12,41,14,12,12,13,13,3,3,11,4,4,11,14,14,14,3,3,2,13,4,4,3,3,12,12,1,13,13,4,4,2,2,2,13,13,13,14,14,14,11,11,31],
        "reel2": [3,2,2,14,4,12,12,13,41,15,15,15,1,4,4,3,3,15,11,11,1,15,15,2,12,14,14,3,3,11,11,2,1,1,15,12,12,1,15,15,12,1,12,2,15,15,13,1,1,11,4,3,13,13,15,15,15,4,4,2,2,4,4,4,15,14,41,13,13,11,2,2,2,13,13,12,1,13,14,14,14,12,12,14,14,11,11,3,3,11,11,2,2,1,12,12,12,13,13,12,12,4,4,12,12,13,13,1,1,31],
        "reel3": [14,14,11,11,12,12,3,14,13,13,15,15,11,11,3,3,1,4,4,4,12,12,2,14,15,1,11,2,14,3,3,2,11,11,12,12,11,14,1,1,14,13,12,2,2,12,13,15,41,14,14,2,2,4,4,4,15,15,15,14,14,11,4,4,13,13,13,1,15,11,14,12,11,13,3,3,15,15,11,11,41,15,15,12,12,4,4,13,13,1,1,12,12,15,15,15,13,13,2,2,12,12,12,31],
        "reel4": [4,12,4,15,4,2,2,1,12,15,12,13,41,1,13,4,13,14,14,4,12,12,14,13,13,2,15,4,4,3,1,1,4,4,12,12,11,12,11,1,14,14,11,1,1,11,11,15,41,14,13,12,11,4,3,2,1,1,3,3,3,12,12,2,2,1,4,11,12,13,14,14,4,4,3,2,2,1,1,4,4,4,14,14,13,13,12,12,2,2,11,11,3,3,15,14,14,13,13,13,11,11,12,12,12,12,1,1,1,31],
        "reel5": [4,4,15,2,2,1,1,4,12,12,3,3,3,4,4,14,14,4,41,12,12,12,1,1,14,14,41,13,13,4,4,4,3,3,11,1,1,13,13,2,2,2,13,1,13,1,14,14,11,11,14,11,1,3,3,3,1,14,14,14,12,12,4,2,2,1,14,41,3,3,3,12,12,11,13,13,13,12,12,12,3,3,3,4,11,11,13,13,14,14,4,3,3,2,2,12,12,14,14,14,3,3,3,13,13,11,31]
      }
    }
  }
}
