{
  "schema_version": 1,
  "generated_at": "2026-11-03T10:29:48.606502+00:00",
  "target_patch": "7.3d",
  "language": "en",
  "scope": "Standard Wild Rift. English community-guide snapshots, China-region official rank-table receipts, and separately quoted secondary rules; not live-client verification or an alternate-mode ruleset.",
  "refresh_command": "uv run --group dev python refresh_skills.py --refresh-rule-sources",
  "limitations": [
    "Guide ability values and descriptions are source quotations, not reconciled current-client combat values.",
    "Recommended timelines do not prove legality of arbitrary edited timelines.",
    "Basic rank unlock gates and innate-upgrade exception gates require an authoritative/current-client source before custom plans can be labeled fully legal.",
    "Planning synchronizes evidenced canonical combat-rank controls, but does not automatically cast spells, choose evolutions/forms, or simulate ability combos."
  ],
  "rule_source_file": "skill_rule_sources.json",
  "champions": {
    "Aatrox": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/aatrox",
        "snapshot": "sources/c4cc90ccb7aad8bd54e1e5a862370798f424befb67270fddb6fbc543a61b16fa",
        "sha256": "c4cc90ccb7aad8bd54e1e5a862370798f424befb67270fddb6fbc543a61b16fa",
        "retrieved_at": "2026-11-01T15:45:54.731130+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Deathbringer Stance",
          "description": "Enhances his next attack every 24 seconds to deal bonus 4% - 13% physical damage of the target's maximum Health and heals himself for the same amount. Deathbringer Stance's cooldown is reduced by 3 seconds when Aatrox hits a Champion or large monster with an attack or ability. Max 50 damage against monsters. Healing reduced to 60% against minions.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/aatrox/deathbringer-stance.webp",
          "icon_sha256": "cb8f41fd08739b7e915255194128c10234e96d428a03af8741efb3705ff038b3"
        },
        {
          "slot": "Q",
          "name": "The Darkin Blade",
          "description": "Swings his giant blade, dealing 10 / 40 / 70 / 100 ( +75% / 80% / 85% / 90% AD ) physical damage . This ability can be cast 2 more times, with each cast dealing 25% more damage. Enemies hit on the sweetspot will be knocked airborne for 0.25 seconds and dealt 60% bonus damage. Deals 65% damage to minions. Deals 70% damage to monsters.",
          "cooldown": "Cooldown: 12 / 10 / 8 / 6",
          "cost": "",
          "icon": "abilities/aatrox/the-darkin-blade.webp",
          "icon_sha256": "276dce2e52fb287d48a86045cc968960eb407dfe3ae0d7ffd130cbc3a2f30f72"
        },
        {
          "slot": "W",
          "name": "Infernal Chains",
          "description": "Sends a chain dealing 25 / 40 / 55 / 70 ( +40% AD ) physical damage to the first enemy hit and slowing them by 25% for 1.5 seconds. If a champion or large monster remains within the imapct area after 1.5 seconds, they will be dragged back to the center and take the same damage again. Deals double damage to minions.",
          "cooldown": "Cooldown: 15 / 14 / 13 / 12",
          "cost": "",
          "icon": "abilities/aatrox/infernal-chains.webp",
          "icon_sha256": "0e736ebebacfcaaa12fc6f10d7942da0ed2a23ab7071c50823c5d114f8409c78"
        },
        {
          "slot": "E",
          "name": "Umbral Dash",
          "description": "Passive : Aatrox gains 19% / 21% / 23% / 25% physical vamp against enemy champions, increased to 24% / 26% / 28% / 30% during World Ender. Active : Dashes forward. This resets Aatrox's normal attack. Usable whie casting other abilities.",
          "cooldown": "Cooldown: 8 / 7 / 6 / 5",
          "cost": "",
          "icon": "abilities/aatrox/umbral-dash.webp",
          "icon_sha256": "9326ef4e19dacb3753dd8190d8baddccc714f85cc0211155d5fb62ead1bb6956"
        },
        {
          "slot": "R",
          "name": "World Ender",
          "description": "Unleashes his demonic form for 10 seconds, gaining 30% / 40% / 50% Attack Damage , 25% / 35% / 45% increased healing and 60% / 75% / 90% decaying Movement Speed . World Ender's duration is extended by 5 seconds with a takedown, up to 10 extra seconds. Nearby minions and monsters are feared for 3 seconds on activation.",
          "cooldown": "Cooldown: 75 / 65 / 55",
          "cost": "",
          "icon": "abilities/aatrox/world-ender.webp",
          "icon_sha256": "cae76692124f2b224dfa37ef9aa227f193affa40b753e78c090010cbe31eccc0"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWQRQQEREEWRWW"
        },
        {
          "label": "Source plan 2",
          "choices": "QEQWRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ],
          [
            1,
            3,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ],
          [
            4,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ],
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ],
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10002.js",
          "snapshot": "sources/c61f8c4a182bba597c7c80179fbb708896789b2d4fdca24aa25e4bc323a28fb1",
          "sha256": "c61f8c4a182bba597c7c80179fbb708896789b2d4fdca24aa25e4bc323a28fb1",
          "retrieved_at": "2026-11-01T15:46:27.195758+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:23",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "赐死剑气",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "暗裔利刃",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "恶火束链",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "暗影冲决",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "大灭",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Ahri": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/ahri",
        "snapshot": "sources/ab5401cd8c8c8bdece1e888e51ad73e93fcae501703f7d5ed51f626a7469eace",
        "sha256": "ab5401cd8c8c8bdece1e888e51ad73e93fcae501703f7d5ed51f626a7469eace",
        "retrieved_at": "2026-11-01T15:45:55.406798+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Essence Theft",
          "description": "Grants a stack of Essence Theft if her ability hits a target. At 3 stacks, Ahri's next ability that hits an enemy heals her for 40 ( +20% AP ). If an enemy champion that Ahri has damaged within 3 seconds dies, she will consume their essence to heal herself for 80 ( +35% AP ).",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/ahri/essence-theft.webp",
          "icon_sha256": "8196cb2786e076774c2d16222ffa20a59854540729012872d004ef9546808b9c"
        },
        {
          "slot": "Q",
          "name": "Orb of Deception",
          "description": "Launches an orb that deals 40 / 75 / 110 / 145 ( +45% AP ) magic damage on the way out and 40 / 75 / 110 / 145 ( +45% AP ) true damage on the way back.",
          "cooldown": "Cooldown: 7 / 7 / 7 / 7",
          "cost": "Cost: 65 / 70 / 75 / 80",
          "icon": "abilities/ahri/orb-of-deception.webp",
          "icon_sha256": "0b1b64fb847a77c355b6fd4d4b63598f594f653e3085fa81fd3bbe274e74d369"
        },
        {
          "slot": "W",
          "name": "Fox-Fire",
          "description": "Releases 3 fox-fires that seek nearby enemies and deal 45 / 80 / 115 / 150 ( +35% AP ) magic damage . Ahri gains 45% Movement Speed that decays over 1.5 seconds. Enemies hit by multiple fox-fires take 30% damage for each fox-fire beyond the first. Fox-fires prioritize champions hit by Charm , followed by recently attacked enemies.",
          "cooldown": "Cooldown: 8 / 7 / 6 / 5",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/ahri/fox-fire.webp",
          "icon_sha256": "8ba3323201b29408e9cd6614742584008e2fa49009761dd12f2192a80f77bb97"
        },
        {
          "slot": "E",
          "name": "Charm",
          "description": "Ahri blows a kiss dealing 60 / 100 / 140 / 180 ( +50% AP ) magic damage and charming the first enemy hit, causing them to walk towards Ahri for 1.4 / 1.6 / 1.8 / 2 seconds.",
          "cooldown": "Cooldown: 12 / 12 / 12 / 12",
          "cost": "Cost: 85 / 85 / 85 / 85",
          "icon": "abilities/ahri/charm.webp",
          "icon_sha256": "8011d9ceda4027d06e4323fb5cd215b9fda464e468160419b31620ba80f58a21"
        },
        {
          "slot": "R",
          "name": "Spirit Rush",
          "description": "Ahri dashes forward and fires essence bolts, dealing 60 / 90 / 120 ( +35% AP ) magic damage to 3 nearby enemies. This ability can be recast up to 2 more times within 12 seconds. During Spirit Rush, if Ahri devours a champion's essence with Essence Theft , Ahri will extend Spirit Rush's recast duration up to 10 seconds, and she gains an extra charge of Spirit Rush (Can store up to 3 charges). Dash range increases while leveling up. Essence bolts attack champions first.",
          "cooldown": "Cooldown: 75 / 65 / 55",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/ahri/spirit-rush.webp",
          "icon_sha256": "fe22305ed8f1479a5982b4fdc713b35cf3cd6adb11285b55813f41447abda5b5"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWEQRQQWRWWEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10038.js",
          "snapshot": "sources/8785304667d33880aa416d9e95d9705729d5ce0831c407b41d8127086266d69e",
          "sha256": "8785304667d33880aa416d9e95d9705729d5ce0831c407b41d8127086266d69e",
          "retrieved_at": "2026-11-01T15:46:27.701085+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:25",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "摄魂夺魄",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "欺诈宝珠",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "妖异狐火",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "魅惑妖术",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "灵魄突袭",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Akali": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/akali",
        "snapshot": "sources/820e929170ebe0e122ce5f11881e2c7c5c2cd20d94c507a3df207da724b0c937",
        "sha256": "820e929170ebe0e122ce5f11881e2c7c5c2cd20d94c507a3df207da724b0c937",
        "retrieved_at": "2026-11-01T15:45:55.439910+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Assassin's Mark",
          "description": "Dealing active ability damage to a champion reveals a ring for 4 seconds. Crossing the ring empowers Akali's next attack to deal 25 + 12 per level ( +60% bonus AD +65% AP ) bonus magic damage . Gains 30% Movement Speed while moving toward the ring. Upon crossing the ring, she gains 30% Movement Speed while moving toward enemy champions for 2 seconds.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/akali/assassin-s-mark.webp",
          "icon_sha256": "394dc718d36bb037311c61bf734be18ab60b22b9fe0b47010a6e19b1c5616893"
        },
        {
          "slot": "Q",
          "name": "Five Point Strike",
          "description": "Throws five kunais, dealing 35 / 70 / 105 / 140 ( +65% AD +60% AP ) magic damage . Enemies struck at maximum range are slowed by 50% for 0.5 seconds.",
          "cooldown": "Cooldown: 2 / 2 / 2 / 2",
          "cost": "Cost: 105 / 90 / 75 / 60",
          "icon": "abilities/akali/five-point-strike.webp",
          "icon_sha256": "ab59f1998d9028fe722caf64079b2582ebb5f283a5328e787ba35ba3da3fa95e"
        },
        {
          "slot": "W",
          "name": "Twilight Shroud",
          "description": "Creates a smoke cloud that expands over 5.5 / 6 / 6.5 / 7 seconds and grants 100 maximum energy. Akali is invisible and gains 3 5% / 40% / 45% / 50% Movement Speed inside the shroud. Attacking breaks the invisibility for 0.67 seconds.",
          "cooldown": "Cooldown: 18 / 17 / 16 / 15",
          "cost": "",
          "icon": "abilities/akali/twilight-shroud.webp",
          "icon_sha256": "de27a90106f438610aab1503f2e6082f6d3874a52e07c24ce0dad57dccc4aea4"
        },
        {
          "slot": "E",
          "name": "Shuriken Flip",
          "description": "First Cast : Flips backwards as she throws a shuriken, dealing 30 / 60 / 90 / 120 ( +25% AD +30% AP ) magic damage and marking the first enemy hit for 3 seconds. If no enemy is hit, the shuriken hits and marks Twilight Shroud 's smoke cloud instead. Recast : dashes to the target, dealing 70 / 120 / 170 / 220 ( +50% AD +80% AP ) magic damage .",
          "cooldown": "Cooldown: 15 / 13 / 11 / 9",
          "cost": "Cost: 30 / 30 / 30 / 30",
          "icon": "abilities/akali/shuriken-flip.webp",
          "icon_sha256": "e99089ca3694f7add3363f61410d96cba6d806f3f4381162863ecd6993a0ca17"
        },
        {
          "slot": "R",
          "name": "Perfect Execution",
          "description": "First Cast : Dashes through an enemy champion, dealing 80 / 200 / 320 ( +50% bonus AD +30% AP ) magic damage . Can be cast again after 2.5 seconds. Recast : Dashes in target direction, dealing 70 to 210 ( +30% AP to +90% AP ) magic damage based upon enemies' missing Health. Deals max damage to enemies below 35% health.",
          "cooldown": "Cooldown: 85 / 65 / 45",
          "cost": "",
          "icon": "abilities/akali/perfect-execution.webp",
          "icon_sha256": "dec2995a2b3e1db3d29994cfab3ffbcdbf000e7ecb7638fe2c2d288105de3f82"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWEQRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            2,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            3,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10031.js",
          "snapshot": "sources/e8e980d1a30ef202cd04afaf1d7cfb4382821af6150715d7008d2d35211b9402",
          "sha256": "e8e980d1a30ef202cd04afaf1d7cfb4382821af6150715d7008d2d35211b9402",
          "retrieved_at": "2026-11-01T15:46:27.703509+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:25",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "我流忍法！潜龙印",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "我流奥义！寒影",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "我流奥义！霞阵",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "我流奥义！隼舞",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "我流秘奥义！表里杀缭乱",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Akshan": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/akshan",
        "snapshot": "sources/a3e87eca3b0bd96b2bc82c81215dac7fb85e1c8a1de01f285b4f2d8a732c7490",
        "sha256": "a3e87eca3b0bd96b2bc82c81215dac7fb85e1c8a1de01f285b4f2d8a732c7490",
        "retrieved_at": "2026-11-01T15:45:56.204793+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Dirty Fighting",
          "description": "Every three hits from attacks and abilities deal bonus 25 magic damage . Against champions, also gain a shield that absorbs 40 ( +40% bonus AD ) damage for 2 seconds (12 second cooldown). After launching an attack, Akshan will fire a second shot that deals 26 ( 50% AD ) physical damage . The shot can be cancelled to gain bonus 20% - 80% Movement Speed decaying over 1 second. This Movement Speed bonus scales with Attack Speed at 100% effectiveness.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/akshan/dirty-fighting.webp",
          "icon_sha256": "482f6b006f2709b125f7f4c8f48c4379f8c88642961642bb5ef9a7d21aa19dfd"
        },
        {
          "slot": "Q",
          "name": "Avengerang",
          "description": "Throws a boomerang that deals 60 / 110 / 160 / 210 ( +70% bonus AD ) physical damage , extending the range each time it hits an enemy. Hits grant Akshan 40% Movement Speed decaying over 1 second. Deals 50% / 60% / 70% / 80% damage to minions.",
          "cooldown": "Cooldown: 8 / 7 / 6 / 5",
          "cost": "Cost: 50 / 60 / 70 / 80",
          "icon": "abilities/akshan/avengerang.webp",
          "icon_sha256": "2a128fd0eee9dd226c6605363b863d9d1c08226eeb52fb571088fb218a72eafa"
        },
        {
          "slot": "W",
          "name": "Going Rogue",
          "description": "Passive : Enemies that kill allied champions become Scoundrels for 40 seconds. When a Scoundrel dies within 3 seconds of being damaged by Akshan, Akshan gains 100 gold and revives the slain allies. Active : Become camouflaged for 1.75 seconds, gaining 80% / 90% / 100% / 110% Movement Speed and Mana Regeneration equal to 2% of missing mana when moving toward Scoundres . Duration is infinite while Akshan is near terrain or in bush.",
          "cooldown": "Cooldown: 14 / 10 / 6 / 2",
          "cost": "Cost: 30 / 30 / 30 / 30",
          "icon": "abilities/akshan/going-rogue.webp",
          "icon_sha256": "b77020b888168e16dbcfe590c84b61bcaa383a7620f4da94f3791328152be698"
        },
        {
          "slot": "E",
          "name": "Heroic Swing",
          "description": "Fires a hook to attach and swing around terrain, attacking the nearest enemy dealing 30 / 70 / 110 / 150 ( +15% AD ) physical damage . If Akshan collides with an enemy champion or terrain, he will jump off the rope. Re-cast: Jumps off the rope. Champion takedowns refresh this ability's cooldown. Prioritizing champions recently damaged by Akshan. On-hit effects deal 25% damage. Each shot can Critically Strike for 150% damage.",
          "cooldown": "Cooldown: 18 / 16 / 14 / 12",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/akshan/heroic-swing.webp",
          "icon_sha256": "573b4fbb9be1c375e8976d9fc51d7b66570465f70222b456d76aa553fc9617e3"
        },
        {
          "slot": "R",
          "name": "Comeuppance",
          "description": "Locks onto an enemy champion, charging 5 / 6 / 7 shots over 3 seconds. Re-cast : Fires the shots, dealing 25 / 35 / 45 ( +15% AD ) physical damage to the first enemy or structure hit, increased up to 75 / 105 / 135 ( +45% AD ) physical damage based on the target's missing health. Each shot's damage is further increased by a percentage equal to 30% of Critical Rate . Shots execute minions.",
          "cooldown": "Cooldown: 65 / 60 / 55",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/akshan/comeuppance.webp",
          "icon_sha256": "6e44af83e24f161e0d819ebea1aeef1c76bce0d44c2aebc898e56c01adf927e9"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEQWRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            3,
            6,
            7
          ]
        ],
        "W": [
          [
            4,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10100.js",
          "snapshot": "sources/ce76591cc81f1c9c6e0f26c3057a2f5787a25c7374b63971b8faefefda4056b1",
          "sha256": "ce76591cc81f1c9c6e0f26c3057a2f5787a25c7374b63971b8faefefda4056b1",
          "retrieved_at": "2026-11-01T15:46:27.700256+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:28",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "无所不用",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "去而复还",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "赴险夺人",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "骄行荡寇",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "恩怨相抵",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Alistar": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/alistar",
        "snapshot": "sources/b23e12bb0a02770cf42ed654cefc24c793f9a0dab06fad4f0e3143434a870dd0",
        "sha256": "b23e12bb0a02770cf42ed654cefc24c793f9a0dab06fad4f0e3143434a870dd0",
        "retrieved_at": "2026-11-01T15:45:56.039254+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Triumphant Roar",
          "description": "When Alistar takes damage, he heals himself for 27 and nearby allied champions for 54 . Knocking up or stunning champions with Alistar's abilities reduces the cooldown by 10 seconds.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/alistar/triumphant-roar.webp",
          "icon_sha256": "1261609f1de73321287488d661086bc0579b82b0c43f22d5d5feafb86a7804d3"
        },
        {
          "slot": "Q",
          "name": "Pulverize",
          "description": "Deals 60 / 110 / 160 / 210 ( +50% AP ) magic damage to nearby enemies and knocks them up for 1 second.",
          "cooldown": "Cooldown: 13 / 12 / 10 / 9",
          "cost": "Cost: 65 / 70 / 75 / 80",
          "icon": "abilities/alistar/pulverize.webp",
          "icon_sha256": "093058096c9a488fb5d12d8c868ad7cd4f8791bc597e1cea5c0a86be253c7e66"
        },
        {
          "slot": "W",
          "name": "Headbutt",
          "description": "Dashes toward an enemy, dealing 50 / 120 / 190 /260 ( +60% AP ) magic damage and knocking them back. May target turrets to deal 75% damage.",
          "cooldown": "Cooldown: 13 / 12 / 10 / 9",
          "cost": "Cost: 65 / 70 / 75 / 80",
          "icon": "abilities/alistar/headbutt.webp",
          "icon_sha256": "b5ace6150d1cc9c3cf90894618a18216625a1481f026f4a1983b0d80c4358132"
        },
        {
          "slot": "E",
          "name": "Trample",
          "description": "Tramples the ground, dealing 10 magic damage to nearby enemies every 0.5 seconds for 5 seconds, up to a max of 100 / 150 / 200 / 250 ( +40% AP ) magic damage . If trample damages an enemy champion 5 times, in the next 5 seconds, Alistar's next attack against champions is empowered to deal an additional 40 magic damage and stun for 1 second. Only one stack can be gained per tick.",
          "cooldown": "Cooldown: 12 / 11 / 11 / 10",
          "cost": "Cost: 50 / 60 / 70 / 80",
          "icon": "abilities/alistar/trample.webp",
          "icon_sha256": "3c52cc831d2bed50310c21775db549e6b381d789238440c2f27c517e698619b1"
        },
        {
          "slot": "R",
          "name": "Unbreakable Will",
          "description": "Removes crowd control effects and gain 55% / 65% / 75% damage reduction for 7 seconds.",
          "cooldown": "Cooldown: 75 / 65 / 55",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/alistar/unbreakable-will.webp",
          "icon_sha256": "e39dd53cb2421bca4ff4a60aa2dbd292b3532279c008a959a161a1f1d87d630f"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "WQEQRQQWRWWEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            2,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            1,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10081.js",
          "snapshot": "sources/ccd94faef4b607fe76321fd7757d8e976e690f855351d46801deb1e2b22c1894",
          "sha256": "ccd94faef4b607fe76321fd7757d8e976e690f855351d46801deb1e2b22c1894",
          "retrieved_at": "2026-11-01T15:46:27.700770+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:27",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "凯旋怒吼",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "大地粉碎",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "野蛮冲撞",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "践踏",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "坚定意志",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Ambessa": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/ambessa",
        "snapshot": "sources/829b8100240be14f88edaf5c04f3faaa8b0b1d007f4dd7a863f7775ceb94903b",
        "sha256": "829b8100240be14f88edaf5c04f3faaa8b0b1d007f4dd7a863f7775ceb94903b",
        "retrieved_at": "2026-11-01T15:45:54.941046+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Drakehound’s Step",
          "description": "Drakehoud's Step : Ambessa's next attack within 4 seconds of triggering Feint is 50% faster, has increased range, deals 5 - 40 ( +2.5 + 25% bonus AD ) bonus physical damage , and restores 50 Energy ( increases at level 1 / 6 / 11 ). Stacks up to 3 times. Feint : Pushing the left joystick right after casting an ability causes Ambessa to dash a short distance in that direction.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/ambessa/drakehound-s-step.webp",
          "icon_sha256": "f179a0144c1d6dd881de2f64a7ddb46440368d300260692226373e00c2c58c1a"
        },
        {
          "slot": "Q",
          "name": "Cunning Sweep / Sundering Slam",
          "description": "Cunning Sweep : Swings her Twin Drakehounds in a semi-circle in front of her, dealing 30 / 40 / 50 / 60 ( +30% bonus AD ) physical damage + 2% / 2.5% / 3% / 3.5% ( +0.02% bonus AD ) of the target's max Health . Damage is increased to 60 / 80 / 100 / 120 ( +60% bonus AD ) physical damage + 4% / 5% / 6% / 7% ( +0.04% bonus AD ) of the target's max Health for enemies at the edge of the strike. If Cunning Sweep hits its targets, after a brief delay, it transforms into Sundering Slam for 3.5 seconds. Sundering Slam : Ruthlessly cleaves enemies in a line, dealing 70 / 100 / 130 / 160 ( +90% bonus AD ) physical damage + 4% / 5% / 6% / 7% ( +0.04 bonus AD ) of the target's max Health against the first enemy hit. All other targets take 35 / 50 / 65 / 80 ( +45% bonus AD ) physical damage + 2% / 2.5% / 3% / 3.5% ( +0.02% bonus AD ) of their max Health . The percent of max Health damage against monsters is capped at 55 .",
          "cooldown": "Cooldown: 12 / 11 / 10 / 9",
          "cost": "Cost: 70 / 70 / 70 / 70",
          "icon": "abilities/ambessa/cunning-sweep-sundering-slam.webp",
          "icon_sha256": "c0f28892dcfd79bdfea2a66c19acfd75961e2fea37cdf1303821e21097d05943"
        },
        {
          "slot": "W",
          "name": "Repudiation",
          "description": "Braces herself for a showdown, gaining a shield that absorbs 50 - 330 ( +120% bonus AD ) damage for 1.5 seconds and blocking all crowd control effects for 0.5 seconds. She then unleashes a shockwave, dealing 70 / 100 / 130 / 160 ( +80% bonus AD ) physical damage to nearby enemies. If she braced herself from an immobilizing effect, the shockwave deals 105 / 150 / 195 / 240 ( +120% bonus AD ) physical damage .",
          "cooldown": "Cooldown: 17 / 16 / 15 / 14",
          "cost": "Cost: 70 / 70 / 70 / 70",
          "icon": "abilities/ambessa/repudiation.webp",
          "icon_sha256": "d9ca3cca8903927c097425fb230ad52dcb276e58347ca1c9ef92c516745605b7"
        },
        {
          "slot": "E",
          "name": "Lacerate",
          "description": "Swings her Twin Drakehounds around herself, dealing 40 / 80 / 120 / 160 ( +50% / 55% / 60% / 65% bonus AD ) physical damage and slowing enemies hit by 99% . The slow effect decays over 1 second. Recast : When Drakehound's Step is triggered after casting Lacerate, Ambesa will cast Lacerate again at the end of the dash.",
          "cooldown": "Cooldown: 12 / 11 / 10 / 9",
          "cost": "Cost: 70 / 70 / 70 / 70",
          "icon": "abilities/ambessa/lacerate.webp",
          "icon_sha256": "047cfb79b9343048f26e71f435b6da4fa32c4f6711c22f80943bec78192770a4"
        },
        {
          "slot": "R",
          "name": "Public Execution",
          "description": "Passive : Gains 10% / 20% / 30% Armor Pen. Her active abilities heal her for 12.5% / 15% / 17.5% of the damage she deals. Damaging minions heals her for 25% of the original heal, and damaging monsters heals her for 40% of the original heal. The empowered attacks of Drakehound's Step grant the same healing bonus. Active : Seizes the farthest enemy champion in a line in front of her and blinks to them, suppressing the target for 1 second. During this time, she gains 10% / 20% / 30% damage reduction and is unstoppable. Ambessa then slams the target into the ground, dealing 200 / 300 / 400 ( +0.05% bonus AD + 0.05% AP ) physical damage plus 10% / 17.5% / 25% of their missing Health and stunning them for 0.4 seconds. If Public Execution does not hit any enemy champion, 35% of its cooldown will be refunded.",
          "cooldown": "Cooldown: 0 / 80 / 70 / 60",
          "cost": "",
          "icon": "abilities/ambessa/public-execution.webp",
          "icon_sha256": "5922488555b2f72321ad10a9674d9009b90d8695fd49972706a838428f6fdd6b"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWEQRQQEREEWRWW"
        },
        {
          "label": "Source plan 2",
          "choices": "QEQWRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ],
          [
            1,
            3,
            6,
            7
          ]
        ],
        "W": [
          [
            2,
            12,
            14,
            15
          ],
          [
            4,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            3,
            8,
            10,
            11
          ],
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ],
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10082.js",
          "snapshot": "sources/b5a742b2b1bb7fe3dfc2ea80ba5a8db105170b929fbb957f3f7511cb643c4694",
          "sha256": "b5a742b2b1bb7fe3dfc2ea80ba5a8db105170b929fbb957f3f7511cb643c4694",
          "retrieved_at": "2026-11-01T15:46:27.721001+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:27",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "龙犬诡步",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "暗袭",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "铁令",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "血戮",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "公开处刑",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Amumu": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/amumu",
        "snapshot": "sources/c01abbb56e080fd86dd90f2f42710810ce62e64fe6f91e62c1ea4dd00509b52f",
        "sha256": "c01abbb56e080fd86dd90f2f42710810ce62e64fe6f91e62c1ea4dd00509b52f",
        "retrieved_at": "2026-11-01T15:45:55.000126+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Cursed Touch",
          "description": "Attacks curse the target to take an additional 10% true damage from incoming magic damage for 3 seconds. Subsequent applications of Cursed Touch will refresh its duration.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/amumu/cursed-touch.webp",
          "icon_sha256": "d8af17bd45da4fbea7bfba5ad3849b7094478a1c86c04078010b77084daa3c4e"
        },
        {
          "slot": "Q",
          "name": "Bandage Toss",
          "description": "Passive : Bandage Toss charges are stored every 13 / 12.5 / 12 / 11.5 seconds, up to a maximum of 2 charges. Active : Launches a bandage that deals 60 / 95 / 130 / 165 ( +70% AP ) magic damage and stuns the target for 1 second, pulling himself to the target.",
          "cooldown": "Cooldown: 3 / 3 / 3 / 3",
          "cost": "Cost: 35 / 40 / 45 / 50",
          "icon": "abilities/amumu/bandage-toss.webp",
          "icon_sha256": "dd06af2c9d4dfdce5e1cd03f8e3a8453bb6b56e02109aea4e9c65ace70fa4624"
        },
        {
          "slot": "W",
          "name": "Despair",
          "description": "Toggle : Begins weeping to deal 25 / 30 / 35 / 40 magic damage + 1.2% / 1.5% / 1.8% / 2.1% ( +0.4% AP) of their maximum Health to nearby enemies every second.",
          "cooldown": "Cooldown: 1 / 1 / 1 / 1",
          "cost": "Cost: 10 / 11 / 12 / 13",
          "icon": "abilities/amumu/despair.webp",
          "icon_sha256": "f66e15fd3a0d074db29245e44a1477f3a167499e17b89ddcc6633c5a31df0714"
        },
        {
          "slot": "E",
          "name": "Tantrum",
          "description": "Passive : Amumu takes 1 / 3 / 5 / 7 ( +4% bonus Armor +4% bonus MR ) reduced physical damage. Active : Deals 90 / 120 / 150 / 180 ( +50% AP ) magic damage to nearby enemies and slows them by 10% for 0.5 seconds. Tantrum's cooldown is reduced by 0.5 seconds when Amumu is hit by an attack.",
          "cooldown": "Cooldown: 9 / 8 / 7 / 6",
          "cost": "Cost: 35 / 35 / 35",
          "icon": "abilities/amumu/tantrum.webp",
          "icon_sha256": "b4e372f309bb3d476b135bded321c01f59ece2d4556e0446bea9e140eb2ac601"
        },
        {
          "slot": "R",
          "name": "Curse of the Sad Mummy",
          "description": "Deals 150 / 250 / 350 ( +70% AP ) magic damage to all nearby enemies and stuns them for 1.5 seconds. Applies Cursed Touch .",
          "cooldown": "Cooldown: 105 / 95 / 85",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/amumu/curse-of-the-sad-mummy.webp",
          "icon_sha256": "dd88142c881887c4da1a4a776dd476bb5e945c0564e760f6e380080901b9e130"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "WEQEREEQRQQWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            3,
            8,
            10,
            11
          ]
        ],
        "W": [
          [
            1,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            4,
            6,
            7
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10004.js",
          "snapshot": "sources/f7e475d67a9c90fa00da8d4bb3f542dee588b277efd621b3bfa2fc120c7e8876",
          "sha256": "f7e475d67a9c90fa00da8d4bb3f542dee588b277efd621b3bfa2fc120c7e8876",
          "retrieved_at": "2026-11-01T15:46:27.452928+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:23",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "诅咒之触",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "绷带牵引",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "绝望光环",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "阿木木的愤怒",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "木乃伊之咒",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Annie": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/annie",
        "snapshot": "sources/68f3917e0255e1e53aa9cff83821acb1ab8225aced23fd1d649368dd3368b3a2",
        "sha256": "68f3917e0255e1e53aa9cff83821acb1ab8225aced23fd1d649368dd3368b3a2",
        "retrieved_at": "2026-11-01T15:45:55.262234+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Pyromania",
          "description": "After casting 4 abilities, the next offensive ability stuns enemies hit for 1 second.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/annie/pyromania.webp",
          "icon_sha256": "0907db077a4fd428df6e967de42ee6bbaf79385f9bb62d5619063b1c9c5852cb"
        },
        {
          "slot": "Q",
          "name": "Disintegrate",
          "description": "Hurls a fireball that explodes in a small area, dealing 80 / 130 / 180 / 230 ( +85% AP ) magic damage . Killing an enemy refunds Disintegrate's Mana Cost and halves its Cooldown.",
          "cooldown": "Cooldown: 4 / 4 / 4 / 4",
          "cost": "Cost: 50 / 55 / 60 / 65",
          "icon": "abilities/annie/disintegrate.webp",
          "icon_sha256": "6809e08c577f328782ee40dbd44a5a2845dae1a60aba05fd565ec1d31bab2ef7"
        },
        {
          "slot": "W",
          "name": "Incinerate",
          "description": "Releases a cone of fire that deals 70 / 130 / 190 / 250 ( +70% AP ) magic damage to all enemies within it.",
          "cooldown": "Cooldown: 8 / 8 / 8 / 8",
          "cost": "Cost: 70 / 80 / 90 / 100",
          "icon": "abilities/annie/incinerate.webp",
          "icon_sha256": "83619c59b67b75d48f0e32efe877227d28efb4fa5148188823e10011cab6f58d"
        },
        {
          "slot": "E",
          "name": "Molten Shield",
          "description": "Grants herself and Tibbers a shield that absorbs 50 / 100 / 150 / 200 ( +40% AP ) damage for 3 seconds and gains 25% / 30% / 35% / 40% Movement Speed that decays over 3 seconds.",
          "cooldown": "Cooldown: 14 / 14 / 14 / 14",
          "cost": "Cost: 60 / 60 / 60 / 60",
          "icon": "abilities/annie/molten-shield.webp",
          "icon_sha256": "bd233c8dc55cf4a51d0e307476f2ac6c3d769ca80ea0e4fbfdf00966070f042b"
        },
        {
          "slot": "R",
          "name": "Summon: Tibbers",
          "description": "Summon Tibbers, dealing 130 / 230 / 330 ( +60% AP ) magic damage to nearby enemies. For the next 20 seconds, Tibbers attack deals 70 / 100 / 130 ( +20% AP ) magic damage . Tibbers Enrages (granting him 100% Movement Speed and 210% Attack Speed ): When summoned, after pouncing on an enemy, or when Annie dies. Recast : Orders Tibbers to pounce on the target. The pounce cannot be blocked. Upon landing, Tibbers deals 110 / 150 / 190 ( +30% AP ) magic damage and knocks the target Airborne.",
          "cooldown": "Cooldown: 70 / 65 / 60",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/annie/summon-tibbers.webp",
          "icon_sha256": "322eb2c1c26f0f25a6e0d93187d3399ce42b674bc1be29af1b24ffda6054829a"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWEQRQQWRWWEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10036.js",
          "snapshot": "sources/0acefb9429aae47458d2c92b4b844135de8310dd69971b9ca3de15b695932870",
          "sha256": "0acefb9429aae47458d2c92b4b844135de8310dd69971b9ca3de15b695932870",
          "retrieved_at": "2026-11-01T15:46:27.698920+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:25",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "嗜火",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "碎裂之火",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "焚烧",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "熔岩护盾",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "提伯斯之怒",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Ashe": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/ashe",
        "snapshot": "sources/79e01a5a6b273403141a404ca5e8eb08b4bd808d17042ee228ecf751c5f8810c",
        "sha256": "79e01a5a6b273403141a404ca5e8eb08b4bd808d17042ee228ecf751c5f8810c",
        "retrieved_at": "2026-11-01T15:45:55.294243+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Frost Shot",
          "description": "Attacks and damaging abilities slow targets hit by 20% / 22.5% / 25% / 27.5% / 30% for 2 seconds. Attacks deal 100% bonus damage. This damage scales with Critical Rate and Critical Damage at 100% effectiveness. Ashe's Critical Strikes deal no extra damage, instead slowing the target by 40% , decaying over time.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/ashe/frost-shot.webp",
          "icon_sha256": "e0b85d25d9d54d18305f5c4ce3fbc9d6f119f7015ea8d626d96bbe22173c3e96"
        },
        {
          "slot": "Q",
          "name": "Ranger's Focus",
          "description": "Passive : Attacks grant a Focus stack for 4 seconds. At 4 stacks, she can cast this ability Active : Gain 20% / 30% / 40% / 50% Attack Speed for 6 seconds. While active, her attack is transformed into a flurry of arrows, dealing 115% / 120% / 125% / 130% physical damage .",
          "cooldown": "Cooldown: 0 / 0 / 0",
          "cost": "Cost: 30 / 30 / 30 / 30",
          "icon": "abilities/ashe/ranger-s-focus.webp",
          "icon_sha256": "3d4bee6680cf62f1fc7af719b7a23953000433be53c7d6ada54778f08be1eb68"
        },
        {
          "slot": "W",
          "name": "Volley",
          "description": "Fires 5 / 7 / 9 / 11 arrows in a cone, dealing 70 / 110 / 150 / 190 ( +100% bonus AD ) physical damage per arrow. Enemies can intercept multiple arrows, but will only take damage from the first. Volley applies a critical slow to enemy champions hit, greatly slowing them.",
          "cooldown": "Cooldown: 15 / 12 / 9 / 6",
          "cost": "Cost: 65 / 60 / 55 / 50",
          "icon": "abilities/ashe/volley.webp",
          "icon_sha256": "b4f6e58d4d196d65bfd517419bf9a3d2c992ec883fde9df63829576f2e3c4cdf"
        },
        {
          "slot": "E",
          "name": "Hawkshot",
          "description": "Fires a hawk spirit that grants vision of enemies along its path. Re-cast : Explodes the hawk, granting vision of the area around it for 5 seconds. Units caught in the initial explosion are revealed for 5 seconds.",
          "cooldown": "Cooldown: 45 / 40 / 35 / 30",
          "cost": "",
          "icon": "abilities/ashe/hawkshot.webp",
          "icon_sha256": "236662e19664062d1c1e56b0f0bf078e890096dad76960015a5be81916facc49"
        },
        {
          "slot": "R",
          "name": "Enchanted Crystal Arrow",
          "description": "Launches a crystal arrow of ice that stuns the first champion hit and deals 200 / 350 / 500 ( +40% AP ) magic damage to all nearby enemies. The stun lasts between 1.5 to 3.5 seconds, increasing with the distance of the arrow's flight. Re-cast : Hold and drag to steer the arrow's flight path. The arrow can only deviate from its original launch angle by a fixed amount. Tap the cancel button to stop steering.",
          "cooldown": "Cooldown: 80 / 70 / 60",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/ashe/enchanted-crystal-arrow.webp",
          "icon_sha256": "586e9fae2e380ae8b284d1a31eeb337cc99526fdf6328df56509c3653126d2b5"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "WQEWRWWQRQQEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "W": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "E": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [
          {
            "control_key": "focus_rank",
            "slot": "Q",
            "rank_basis": "learned",
            "ability": "Ranger's Focus",
            "engine_semantics": "ashe_frost; activation is focus_active",
            "initial_rank": 0,
            "source": "champion.source (exact slot/name); canonical champion_mechanics.json rule identity",
            "engine_evidence": "game_rules.py rank consumers and champion_mechanics.json explicit rule parameters"
          }
        ],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10079.js",
          "snapshot": "sources/655f847006fb705e9d28e4b2182e423cc24652a9fe2dfd4ed8f13ce868ca9343",
          "sha256": "655f847006fb705e9d28e4b2182e423cc24652a9fe2dfd4ed8f13ce868ca9343",
          "retrieved_at": "2026-11-01T15:46:27.947922+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:27",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "冰霜射击",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "射手的专注",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "万箭齐发",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "鹰击长空",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "魔法水晶箭",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Aurelion Sol": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/aurelion-sol",
        "snapshot": "sources/a9fb57b418976401ed310d828bd8dee12b4baa089bd3708a7f61e68f86a77d1c",
        "sha256": "a9fb57b418976401ed310d828bd8dee12b4baa089bd3708a7f61e68f86a77d1c",
        "retrieved_at": "2026-11-01T15:45:55.565666+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Cosmic Creator",
          "description": "Casting damaging abilities against enemies grants stacks of Stardust , which empower Aurelion Sol's abilities. Breath of Light : This ability's bursts deal bonus magic damage equal to 0% ( 3% of Stardust stacks) of the target's max Health . Astral Flight : Increases max flight distance by 0% ( 62.5% of Stardust stacks) Singularity : Increases the ability's impact area by 0% ( 40% of Stardust stacks) and execution threshold by 0% ( 2.1% of Stardust stacks) Falling Star / The Skies Descend : Increases the ability's impact area by 0% ( 40% of Stardust stacks).",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/aurelion-sol/cosmic-creator.webp",
          "icon_sha256": "38167e8fb417f8cde9a1b6a4740ba70a03d3134b7e1f7a71b822c1a6b8c0297a"
        },
        {
          "slot": "Q",
          "name": "Breath of Light",
          "description": "Breathes starfire for 3.25 seconds dealing 58 / 73 / 88 / 103 ( +60% AP ) magic damage per second to the first enemy hit and 50% of that damage to nearby enemies. For every 1 second that the breath hits the same target, Aurelion Sol deals a burst of magic damage equal to 70 / 80 / 90 / 100 ( +35% AP ) plus 0% ( 3% of Stardust stacks) of the target's max Health . If the target is a champion, Aurelion Sol gains 1 stack of Stardust . Damage dealt based on the target's max Health is capped at 100 against monsters. Aurelion Sol can move slowly while casting this ability. At max ability level, this ability's duration is extended infinitely. If Aurelion Sol is interrupted within 0.25 seconds of casting this ability, it will go into a 1-second cooldown. Deals 40% damage to monsters. Maximum Range of Starfire: 750 - 848",
          "cooldown": "Cooldown: 3 / 3 / 3 / 3",
          "cost": "Cost: 10 / 12 / 14 / 16",
          "icon": "abilities/aurelion-sol/breath-of-light.webp",
          "icon_sha256": "990fedf434fa873e4ead4259ff42978b79936d0ff47dff11abd329b370f8f163"
        },
        {
          "slot": "W",
          "name": "Astral Flight",
          "description": "First Cast : Flies in a direction. While flying, Breath of Light has no cooldown or max channel duration, and deals 15% / 20% / 25% / 30% more damage. Recast : End the flight early. If a champion is killed within 3 seconds of taking damage from Aurelion Sol, 90% of this ability's cooldown is refunded. Flight speed : 300 + 100 MS . Aurelion Sol's flight speed is reduced by 50% if Breath of Light is cast while flying.",
          "cooldown": "Cooldown: 18 / 17 / 16 / 15",
          "cost": "Cost: 80 / 80 / 80 / 80",
          "icon": "abilities/aurelion-sol/astral-flight.webp",
          "icon_sha256": "921b6772bf35c4321db7ea1fcba5135cfd3191f26fc06f677eaccd7bd304d666"
        },
        {
          "slot": "E",
          "name": "Singularity",
          "description": "Summons a black hole, dealing 20 / 27.5 / 35 / 42.5 ( +15% AP ) magic damage per second and dragging enemies toward the center of the black hole for 5 seconds. Enemies in the center die instantly when their Health falls below 5% ( 5 + 2.1% of Stardust stacks). For every second an enemy champion is trapped within the black hole's range, Aurelion Sol gains 2 stacks of Stardust . When enemies are killed within the black hole's range, Aurelion Sol gains 5 stacks of Stardust for every champion on epic monster killed; 5 stacks of Stardust for every siege minion or large monster killed; and 1 stack of Stardust for every minion or small monster killed.",
          "cooldown": "Cooldown: 12 / 12 / 12 / 12",
          "cost": "Cost: 80 / 85 / 90 / 95",
          "icon": "abilities/aurelion-sol/singularity.webp",
          "icon_sha256": "d17bb7fece821c98fe33a30c896a71832534d03dbba089a722558c8cd4ffa0d3"
        },
        {
          "slot": "R",
          "name": "Falling Star/ The Skies Descend",
          "description": "Falling Star : Plucks a star from the heavens and crashes it into the earth, dealing 150 / 250 / 350 ( +65% AP ) magic damage and stunning enemies within range for 1 second. Gains 8 stacks of Stardust for every enemy champion hit. Whenever Aurelion Sol collects 65 stacks of Stardust , the next Falling Star transforms into The Skies Descend. The Skies Descend : Rains down cosmic fury on the earth, dealing 188 / 313 / 438 ( +82% AP ) magic damage over a larger area and knocking targets hit Airborne for 1 second. Also emits a huge shockwave at the same time, dealing 150 / 250 / 350 ( +65% AP ) magic damage to enemy champions and epic monsters and slowing all enemies hit by 50% for 1 second.",
          "cooldown": "Cooldown: 85 / 80 / 75",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/aurelion-sol/falling-star-the-skies-descend.webp",
          "icon_sha256": "ddc880b7da4bb8f7891ab8f54efa0b6ddc2d50a69cf80e80bbe104cc2733e8f1"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWQRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10023.js",
          "snapshot": "sources/cd9751838559efaf8414e457a19fc09f809f02943bd3a81860b52fb4e03ab9d1",
          "sha256": "cd9751838559efaf8414e457a19fc09f809f02943bd3a81860b52fb4e03ab9d1",
          "retrieved_at": "2026-11-01T15:46:27.947257+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:24",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "星海焕然",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "星河冲荡",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "星穹流丽",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "星芒凝汇",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "星天落瀑",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Aurora": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/aurora",
        "snapshot": "sources/3e331a3fb9693392f8376759ce841e0cb4efa200a9ccac90a59145f769d6ad55",
        "sha256": "3e331a3fb9693392f8376759ce841e0cb4efa200a9ccac90a59145f769d6ad55",
        "retrieved_at": "2026-11-01T15:45:55.630629+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Spirit Abjuration",
          "description": "Damaging an enemy 3 times with abilities or attacks exorcises them, dealing 2.5% ( +2%AP ) of the target's max Health as magic damage . If the enemy is a champion, it also frees a spirit that follows Aurora for 4 seconds, restoring her Health by 1 - 18 ( +2% AP ) every second ( max 4 spirits) .",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/aurora/spirit-abjuration.webp",
          "icon_sha256": "e12b63f39037259c3389a76c363f9a716e750817dd0198e1363668174b9eff3a"
        },
        {
          "slot": "Q",
          "name": "Twofold Hex",
          "description": "First Cast : Fires cursed energy ion a direction, dealing 40 / 70 / 100 / 130 ( +33% AP ) magic damage to enemies and cursing them for 3.5 seconds. Recast : Detonates the curse, dealing up to 40 / 70 / 100 / 130 ( +33% AP ) magic damage to enemies passed through. Enemies take up to 50% bonus damage based on missing Health . Damage beyond the first hit is reduced by 20% . Deals 40% damage against minions and monsters instead. If the curse's duration runs out, Aurora will automatically recast the ability.",
          "cooldown": "Cooldown: 8 / 8 / 7 / 7",
          "cost": "Cost: 60 / 60 / 60 / 60",
          "icon": "abilities/aurora/twofold-hex.webp",
          "icon_sha256": "2a8a9900e09e7a39a5c39fcca1cca83457d8edf5602b7e62829ce6c59c80587a"
        },
        {
          "slot": "W",
          "name": "Across the Veil",
          "description": "Hops in a direction. Upon landing, enters the spirit realm, becoming invisible for 1 / 1.2 / 1.4 / 1.6 seconds and entering Realm Hopper . Realm Hopper : Gains 25% / 30% / 35% / 40% Movement Speed for 4 seconds. Scoring a takedown on an enemy champion resets this ability's cooldown.",
          "cooldown": "Cooldown: 21 / 20 / 19 / 18",
          "cost": "Cost: 80 / 80 / 80 / 80",
          "icon": "abilities/aurora/across-the-veil.webp",
          "icon_sha256": "bbd666494d11ceb4634f4a27d664e2202b1c56ddd504f3b0f8e7f1de476c1eb9"
        },
        {
          "slot": "E",
          "name": "The Weirding",
          "description": "Converges the realms, sending out a blast of spirit magic that deals 80 / 130 / 180 / 230 ( +65% AP ) magic damage to enemies in the area and slows them by 80% , decaying over 1 second. Aurora hops backward a short distance after casting.",
          "cooldown": "Cooldown: 13 / 12 / 11 / 10",
          "cost": "Cost: 80 / 80 / 80 / 80",
          "icon": "abilities/aurora/the-weirding.webp",
          "icon_sha256": "494802cb1f71a3281efadd6197d6baada8d27b99aab4bc858d03ab4150bd3ecc"
        },
        {
          "slot": "R",
          "name": "Between Worlds",
          "description": "First Cast : Leaps in a direction. Upon landing, converges the realms, sending out a pulse of spirit energy that deals 150 / 250 / 350 ( +50% AP ) magic damage and slows enemies hit by 30% for 2 seconds. The area of convergence stays active for 2.5 / 3.25 / 4 seconds, granting Aurora Realm Hopper and allowing her to jump from one edge of the area to another. Enemies attempting to enter or leave the area are slowed by 50% for 1.5 / 1.75 / 2 seconds. Recast : Ends the area of convergence effect early.",
          "cooldown": "Cooldown: 100 / 90 / 80",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/aurora/between-worlds.webp",
          "icon_sha256": "a91923994bc6cc606ae5412265f05d47cb5c4d413c7faff028ef7b2d1b8b64bd"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWQRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10085.js",
          "snapshot": "sources/91617bdee15577795dd2f5d6efb3561b2480055faaf247b19e2639d96b862415",
          "sha256": "91617bdee15577795dd2f5d6efb3561b2480055faaf247b19e2639d96b862415",
          "retrieved_at": "2026-11-01T15:46:27.946161+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:28",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "驱灵奇术",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "飞去来咒",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "灵纱洞开",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "怪奇喷涌",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "双界合一",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Bard": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/bard",
        "snapshot": "sources/d3b4d625e17811b6d6cd0bacc45c62719a51248d1c0daecf85e1e74ce9761822",
        "sha256": "d3b4d625e17811b6d6cd0bacc45c62719a51248d1c0daecf85e1e74ce9761822",
        "retrieved_at": "2026-11-01T15:45:56.611466+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Traveler's Call",
          "description": "Chimes : Gains bonuses from chimes he attracts and collects on the map. Automatically collets nearby chimes, gaining the following bonuses: - 24% out-of-combat Movement Speed for 20 seconds (max 10 stacks, up to 150%) - 400 XP - Restores 12% max Mana Chimes remain for 10 minutes. Starting form 5 minutes into the game, gains 20 XP every 1 minute. Meeps : Summons a meep that follows him around every 7 seconds ( max 1 meep). Meeps empower him and grant additional effects based on the number of chimes collected: - Consumes a meep to empower his attack, dealing 35 ( +40% AP ) plus 12 (for every 3 chimes he has) bonus magic damage . - When he has 3 chimes, he slows enemies by 25% for 1 second. - When he has 9 chimes, he strikes in an area around and behind the target. - When he has 27 chimes, he strikes in an even larger area. The spawn rate, slow effect, and max number of meeps following him scale with the number of chimes collected.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/bard/traveler-s-call.webp",
          "icon_sha256": "57c415deb16c83e2247b8f1d0aa40cb4e16b0dd8951fb243929d691fe4b96f6e"
        },
        {
          "slot": "Q",
          "name": "Cosmic Binding",
          "description": "Fires an energy bolt, dealing 80 / 130 / 180 / 230 ( +80% AP ) magic damage to the first enemy hit and slowing by 60% for 1.1 / 1.3 / 1.5 / 1.7 seconds. The bolt then continues onward for a short distance, If it hits a second enemy or a wall, both enemies are stunned for 1.1 / 1.3 / 1.5 / 1.7 seconds; if a second enemy is struck, the bolt also deals the same damage to them.",
          "cooldown": "Cooldown: 10 / 9 / 8 / 7",
          "cost": "Cost: 60 / 60 / 60 / 60",
          "icon": "abilities/bard/cosmic-binding.webp",
          "icon_sha256": "5c5a6284f62af3d8cef958b10c8060fa875c0aff113e00f9eadbfb2878089616"
        },
        {
          "slot": "W",
          "name": "Caretaker's Shrine",
          "description": "Creates a Health shrine that grows and powers up to max efficiency after 5 seconds, granting 22.5% / 25% / 27.5% / 30% ( +0.05% AP ) for 1.5 second and restoring at least 50 / 80 / 110 / 140 ( +30% AP ) Health to the first allied champion to enter. The shrine restores 100 / 160 / 220 / 280 ( +60% AP ) Health after existing for 5 seconds. Charge : This ability has 2 charges. Bard can have up to 3 shrines active at once. If an enemy champion enters a shrine, it will be crushed.",
          "cooldown": "Cooldown: 15 / 15 / 14 / 14",
          "cost": "Cost: 70 / 70 / 70 / 70",
          "icon": "abilities/bard/caretaker-s-shrine.webp",
          "icon_sha256": "ce3b4148d47af32e281a87ba63d44d99ce07dbb50ca1a3566204d18679164d22"
        },
        {
          "slot": "E",
          "name": "Magical Journey",
          "description": "Opens a one-way corridor through nearby terrain for 10 seconds. Both allied and enemy champions nearby can use the corridor by tapping the turret button. Allies travel 50% faster than enemies.",
          "cooldown": "Cooldown: 19 / 18 / 16 / 15",
          "cost": "Cost: 30 / 30 / 30 / 30",
          "icon": "abilities/bard/magical-journey.webp",
          "icon_sha256": "5b19a267a96559758f763a6390c0098b117bf38a8589c27c65506febb6dfc31c"
        },
        {
          "slot": "R",
          "name": "Tempered Fate",
          "description": "Hurls magical protective energy to an area, placing all units and structures within into stasis for 2.5 seconds. While in stasis, they are invulnerable, untargetable, and unable to act.",
          "cooldown": "Cooldown: 75 / 65 / 55",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/bard/tempered-fate.webp",
          "icon_sha256": "50a2902875a252a845b5116358cff1369240cc2b8a0f8ce8cd98dd8cf08ecddf"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWEQRQQWRWWEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10105.js",
          "snapshot": "sources/36241d6f5488688341109afab607ee53a2145ed9a2f5ee377ab8f8c0ec50670b",
          "sha256": "36241d6f5488688341109afab607ee53a2145ed9a2f5ee377ab8f8c0ec50670b",
          "retrieved_at": "2026-11-01T15:46:27.947581+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:29",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "旅者的召唤",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "星界束缚",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "游神圣坛",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "神奇旅程",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "调和命运",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Blitzcrank": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/blitzcrank",
        "snapshot": "sources/f021870523930c7b9004da512d14a4ac2fbf170cd27117f589df7a9ccdb4b45a",
        "sha256": "f021870523930c7b9004da512d14a4ac2fbf170cd27117f589df7a9ccdb4b45a",
        "retrieved_at": "2026-11-01T15:45:56.091821+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Mana Barrier",
          "description": "Blitzcrank gains a shield that absorbs 90 ( 30% Mana ) damage for 10 seconds upon falling below 35% Health.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/blitzcrank/mana-barrier.webp",
          "icon_sha256": "cd179a784ce1a80497903efbb0f54a4a899bfdecd1872054bb4f0dbf20bcaab9"
        },
        {
          "slot": "Q",
          "name": "Rocket Grab",
          "description": "Blitzcrank fires his right hand to deal 110 / 175 / 240 / 305 ( +100% AP ) magic damage and pull the target back to Blitzcrank.",
          "cooldown": "Cooldown: 18 / 17 / 16 / 15",
          "cost": "Cost: 80 / 80 / 80 / 80",
          "icon": "abilities/blitzcrank/rocket-grab.webp",
          "icon_sha256": "399d1af359f12464626b331c93a3dc44a87659ba15a4fc406fc5ab1ce4c01b32"
        },
        {
          "slot": "W",
          "name": "Overdrive",
          "description": "Gains 35% / 40% / 45% / 50% to 10% decaying Movement Speed for 2.5 seconds. Blitzcrank may reactivate Overdrive to gain 140% / 150% / 160% / 170% decaying Movement Speed for 1.5 seconds. When Overdrive ends, Blitzcrank is slowed by 33% for 1 second. This is increased to 99% for 1 second if Overdrive was recast.",
          "cooldown": "Cooldown: 10 / 10 / 10 / 10",
          "cost": "Cost: 75 / 75 / 75 / 75",
          "icon": "abilities/blitzcrank/overdrive.webp",
          "icon_sha256": "60586598f8cb12d2da77f92e44801daa813c0e245ef188d71f223d2be543b31f"
        },
        {
          "slot": "E",
          "name": "Power Fist",
          "description": "Empowers his next attack to crtically strike for 105 ( 180% / 200% / 220% / 240% AD ) physical damage and knock up the target.",
          "cooldown": "Cooldown: 8 / 7 / 6 / 5",
          "cost": "Cost: 25 / 25 / 25 / 25",
          "icon": "abilities/blitzcrank/power-fist.webp",
          "icon_sha256": "51b628333d8526f46cf37a31f967f192cb4df189ea3020ddfab15d291782b155"
        },
        {
          "slot": "R",
          "name": "Static Field",
          "description": "Passive: While Static Field is off cooldown, attacks mark enemies to deal 40 / 80 / 120 ( +15% AP ) magic damage after 1 second. Active: Deals 275 / 400 / 525 ( +80% AP ) magic damage to nearby enemies and silences them for 0.5 seconds.",
          "cooldown": "Cooldown: 55 / 35 / 15",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/blitzcrank/static-field.webp",
          "icon_sha256": "7a180cb22ad2b494daeb352525d3cdaa6d0e2022009ace6219274d5b3ff71dd3"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWQRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10033.js",
          "snapshot": "sources/91f9b69a65e2fce838f2140470a6054abe3b56c7da19cf803e9e58793fa18ead",
          "sha256": "91f9b69a65e2fce838f2140470a6054abe3b56c7da19cf803e9e58793fa18ead",
          "retrieved_at": "2026-11-01T15:46:27.950606+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:25",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "法力屏障",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "机械飞爪",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "过载运转",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "能量铁拳",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "静电力场",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Brand": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/brand",
        "snapshot": "sources/28ae04d56562abc789f536b9cb5f61c9c7e62087a5762f2b2ba023ff97a22836",
        "sha256": "28ae04d56562abc789f536b9cb5f61c9c7e62087a5762f2b2ba023ff97a22836",
        "retrieved_at": "2026-11-01T15:45:56.751848+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Blaze",
          "description": "Brand's abilities set enemies Ablaze , dealing 3% of their max Health as magic damage over 4 seconds. Stacking Ablaze 3 times on champions and large monsters causes them to detonate after 2 seconds, dealing 10% ( +0.02% AP ) of each nearby enemy's max Health as magic damage . Enemies that detonate cannot stack Ablaze again within 4 seconds.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/brand/blaze.webp",
          "icon_sha256": "f60236cbb099ee00cf1bbb0ca71f2bb7c21cd63803d84423378fbed686431cef"
        },
        {
          "slot": "Q",
          "name": "Sear",
          "description": "Launches a fireball that deals 80 / 120 / 160 / 200 ( +55% AP ) magic damage to the first enemy it hits. Blaze : Sear stuns for 1.75 seconds if the target is ablaze.",
          "cooldown": "Cooldown: 8 / 7 / 7 / 6",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/brand/sear.webp",
          "icon_sha256": "55d5731b978552f4f5d1c6f52975754d5c5c7ac90409c0e7afe40a0319bc4687"
        },
        {
          "slot": "W",
          "name": "Pillar of Flame",
          "description": "After a short delay fire erupts at a location, dealing 70 / 120 / 170 / 220 ( +55% AP ) magic damage to enemies. Blaze : Pillar of flame deals 30% more damage to enemies that are ablaze.",
          "cooldown": "Cooldown: 10 / 9 / 9 / 8",
          "cost": "Cost: 65 / 75 / 85 / 95",
          "icon": "abilities/brand/pillar-of-flame.webp",
          "icon_sha256": "c745974b09ae10b5dfc9b035adf0cb0af4c1eb1535a8b8f729c3dbf31d55cb47"
        },
        {
          "slot": "E",
          "name": "Conflagration",
          "description": "Ignites enemies near the target, dealing 60 / 90 / 120 / 150 ( +45% AP ) magic damage . Blaze : Conflagration spreads farther if the target is ablaze.",
          "cooldown": "Cooldown: 11 / 10 / 9 / 8",
          "cost": "Cost: 65 / 70 / 75 / 80",
          "icon": "abilities/brand/conflagration.webp",
          "icon_sha256": "91fba8b5059fa077d70864c3f5e684f53f6f07206d5feaf3a16cecbcbb247cc3"
        },
        {
          "slot": "R",
          "name": "Pyroclasm",
          "description": "Releases a torrent of flame that bounces up to 5 times between enemies or himself, each bounce dealing 100 / 200 / 300 ( +30% AP ) magic damage . Blaze : Pyroclasm briefly slows by 30% / 40% / 50% if the target is ablaze. Bounces attempt to max stack Blaze on champions.",
          "cooldown": "Cooldown: 70 / 65 / 60",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/brand/pyroclasm.webp",
          "icon_sha256": "a80c4f225ce6c51d03224d4947ca8e3afad237390b70cc3e4df841199fbc9f60"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "WEQWRWWEREEQRQQ"
        },
        {
          "label": "Source plan 2",
          "choices": "WQEWRWWQRQQEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            3,
            12,
            14,
            15
          ],
          [
            2,
            8,
            10,
            11
          ]
        ],
        "W": [
          [
            1,
            4,
            6,
            7
          ],
          [
            1,
            4,
            6,
            7
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ],
          [
            3,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ],
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10119.js",
          "snapshot": "sources/ad918c86d9fbf2029789371e9a8599c3a63b77bcbcb3ed4907d80068e01ddfee",
          "sha256": "ad918c86d9fbf2029789371e9a8599c3a63b77bcbcb3ed4907d80068e01ddfee",
          "retrieved_at": "2026-11-01T15:46:27.971635+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:29",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "炽热之焰",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "火焰烙印",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "烈焰之柱",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "烈火燃烧",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "烈焰风暴",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Braum": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/braum",
        "snapshot": "sources/d63d77ae5f2a171703e91dbf9347000099c651b614e4e1111d64a805b4c2a3d2",
        "sha256": "d63d77ae5f2a171703e91dbf9347000099c651b614e4e1111d64a805b4c2a3d2",
        "retrieved_at": "2026-11-01T15:45:56.068578+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Concussive Blows",
          "description": "Braum's attacks apply Concussive Blows for 4 seconds. Once the first stack is applied, ally basic attacks also stack Concussive Blows. Upon reaching 4 stacks, the target is stunned for 1.25 - 1.75 seconds and takes 45 magic damage . For the next 8 seconds they cannot receive new stacks, but take bonus 9 magic damage from Braum's attacks.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/braum/concussive-blows.webp",
          "icon_sha256": "304c1cd327689d2ea91ec0d3fc476d0fc9c7826cbfc853dc3e4cb323d2efbcc6"
        },
        {
          "slot": "Q",
          "name": "Winter's Bite",
          "description": "Lauches ice that deals 60 / 120 / 180 / 240 ( +3% HP ) magic damage and slows the enemy hit by 70% for 2 seconds. Applies a stack of Concussive Blows.",
          "cooldown": "Cooldown: 9 / 8 / 7 / 6",
          "cost": "Cost: 40 / 45 / 50 / 55",
          "icon": "abilities/braum/winter-s-bite.webp",
          "icon_sha256": "4e7054c88c3f4685e84034a60e76459715dc4edabae123ec3f42e7b8ad39008c"
        },
        {
          "slot": "W",
          "name": "Stand Behind Me",
          "description": "Leaps to an ally. Braum and the ally gain 10 / 15 / 20 / 25 (+10% / 12% / 14% / 16% bonus Armor) Armor and 10 / 15 / 20 / 25 (+10% / 12% / 14% / 16% bonus MR) Magic Resist for 3 seconds on arrival.",
          "cooldown": "Cooldown: 11 / 10 / 9 / 8",
          "cost": "Cost: 55 / 60 / 65 / 70",
          "icon": "abilities/braum/stand-behind-me.webp",
          "icon_sha256": "cf726a00d0d64c317290916e09cb8eb7f99a83516ea38032b68642dcc9f36cb2"
        },
        {
          "slot": "E",
          "name": "Unbreakable",
          "description": "Raises his shield, intercepting projectiles for 4 seconds. Braum negates the first instance of damage wichever direction he faces and takes 35% / 40% / 45% / 50% reduced damage afterwards. Braum gains 15% Movement Speed while his shield is raised.",
          "cooldown": "Cooldown: 16 / 14 / 12 / 10",
          "cost": "Cost: 35 / 40 / 45 / 50",
          "icon": "abilities/braum/unbreakable.webp",
          "icon_sha256": "b64fa9d9f0e0e5b28116938a35eca91f89ba2fb59612eff34cdc0977f19361cf"
        },
        {
          "slot": "R",
          "name": "Glacial Fissure",
          "description": "Slams the ground and opens a fissure, dealing 150 / 250 / 350 ( +60% AP ) magic damage and knocking up enemies for 1 / 1.25 / 1.5 second. The fissure slows enemies by 40% / 50% / 60% and lasts for 4 seconds. After the first enemy champion hit, subsequent enemies are knock up for 0.25 seconds.",
          "cooldown": "Cooldown: 75 / 70 / 65",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/braum/glacial-fissure.webp",
          "icon_sha256": "e1bd0a0f3d82694954b8f2187459d3b6d185866f19747a7b4df488d297f92ccc"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWQRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10021.js",
          "snapshot": "sources/45729b926fca685e4e9b672fa3fc0e8852464095ae3c83aad64914cf7e955502",
          "sha256": "45729b926fca685e4e9b672fa3fc0e8852464095ae3c83aad64914cf7e955502",
          "retrieved_at": "2026-11-01T15:46:28.192138+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:24",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "震荡猛击",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "寒冬之咬",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "挺身而出",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "坚不可摧",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "冰川裂隙",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Caitlyn": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/caitlyn",
        "snapshot": "sources/f68886f60491fdd1ef1859b8e7ce2639f3283bbb2773178f7a83c7844cfc9e1d",
        "sha256": "f68886f60491fdd1ef1859b8e7ce2639f3283bbb2773178f7a83c7844cfc9e1d",
        "retrieved_at": "2026-11-01T15:45:56.301700+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Headshot",
          "description": "Every 6 attacks fires a Headshot , dealing 36 ( 60% - 90% AD ) bonus physical damage . This damage scales with Critical Rate and Critical Damage at 100% effectiveness. Attacks against trapped or netted targets fire a Headshot with double range. Attacks while in the bush build Headshot twice as fast.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/caitlyn/headshot.webp",
          "icon_sha256": "5f53c54a819733565c4bc5e48b9b72fc3c20ee9f6f944e84916a7eb75cac70c1"
        },
        {
          "slot": "Q",
          "name": "Piltover Peacemaker",
          "description": "Fires a narrow piercing bullet that deals 50 / 100 / 150 / 200 ( + 125% / 145% / 165% / 185% AD ) physical damage . Hitting an enemy expands the bullet, but reduces subsequent damage by 40% . Always deals full damage to trapped or netted enemies.",
          "cooldown": "Cooldown: 9 / 8 / 7 / 6",
          "cost": "Cost: 50 / 60 / 70 / 80",
          "icon": "abilities/caitlyn/piltover-peacemaker.webp",
          "icon_sha256": "d1d7f98e63aee68a83119c3de1f63c3dcfe50ebb384ab7a73805814c1792fefc"
        },
        {
          "slot": "W",
          "name": "Yordle Snap Trap",
          "description": "Sets a trap that enemy champions can spring, immobilizing them for 1.5 seconds and Revealing them for a short duration. Headshot attacks against enemies trapped by Yordle Snap Trap deal 40 / 90 / 140 / 190 ( +30% bonus AD ) bonus physical damage . Traps last for 30 seconds and 2 / 3 / 4 / 5 can be active at once. Trap charging time: 25 / 20 / 15 / 10 seconds.",
          "cooldown": "Cooldown: 1 / 1 / 1 / 1",
          "cost": "Cost: 20 / 20 / 20 / 20",
          "icon": "abilities/caitlyn/yordle-snap-trap.webp",
          "icon_sha256": "ecfdd92daa191d6838ae5b50a97069907827662997b687a4220d0bd27562d2f3"
        },
        {
          "slot": "E",
          "name": "90 Caliber Net",
          "description": "Launches a net, knocking Caitlyn backwards. The net deals 70 / 120 / 170 / 220 ( +80% AP ) magic damage and slows by 50% for 1.5 seconds.",
          "cooldown": "Cooldown: 16 / 14 / 12 / 10",
          "cost": "Cost: 75 / 75 / 75 / 75",
          "icon": "abilities/caitlyn/90-caliber-net.webp",
          "icon_sha256": "5304682f540b535739abbbb08b0371b0e5a3bdcf1b92ed33e76aecfeda63428e"
        },
        {
          "slot": "R",
          "name": "Ace in the Hole",
          "description": "Lines up the perfect shot, Revealing an enemy champion for 1.5 seconds before dealing 250 / 450 / 650 ( +100% bonus AD ) physical damage plus 20% of their missing Health. Damage scales with Caitlyn's Critical Rate and Critical Damage at 30% effectiveness. Enemy champions can intercept the bullet before it hits their ally. Has a range of 1750 / 2250 / 2750 .",
          "cooldown": "Cooldown: 65 / 55 / 45",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/caitlyn/ace-in-the-hole.webp",
          "icon_sha256": "7aeff4a16c3fa46cea1d70431a17aa258f51aa99cd9234b1903ba4460a7b2622"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWEQRQQWRWWEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10112.js",
          "snapshot": "sources/f72310da82d1644c7c68a1bf0b776e177b6e1fcd1a0679c09dd8c62a99211385",
          "sha256": "f72310da82d1644c7c68a1bf0b776e177b6e1fcd1a0679c09dd8c62a99211385",
          "retrieved_at": "2026-11-01T15:46:28.200437+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:29",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "精准狙击",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "和平使者",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "约德尔诱捕器",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "90口径绳网",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "让子弹飞",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Camille": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/camille",
        "snapshot": "sources/18223f800c95a19d10b38114b2fdb3fa3f68804b1e475e4f377a285ac55438f2",
        "sha256": "18223f800c95a19d10b38114b2fdb3fa3f68804b1e475e4f377a285ac55438f2",
        "retrieved_at": "2026-11-01T15:45:56.376394+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Adaptive Defenses",
          "description": "Attacking an enemy champion grants a shield that absorbs 138 physical / magic damage ( 20% HP ) for 2 seconds. The shield type is based on the type of damage the attacked target deals.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/camille/adaptive-defenses.webp",
          "icon_sha256": "80d85e90d6eca28c90bafc4ea255c7f19cf90cb9a9d8199a4433583e3fbf214d"
        },
        {
          "slot": "Q",
          "name": "Precision Protocol",
          "description": "Empowers the next attack to deal 81 ( 130% / 140% / 150% / 160% AD ) physical damage and grant 25% Movement Speed for 1.5 seconds. 1.6 seconds after the first attack, Precision Protocol automatically empowers another basic attack, dealing 40% of its damage as true damage instead. Cannot critically strike.",
          "cooldown": "Cooldown: 9 / 8 / 7 / 6",
          "cost": "Cost: 25 / 25 / 25 / 25",
          "icon": "abilities/camille/precision-protocol.webp",
          "icon_sha256": "374e7d09e49f1b4c3f0bbd1764ee07a3c6ffd31d77e09d83e8e1a2bd9b1a0264"
        },
        {
          "slot": "W",
          "name": "Tactical Sweep",
          "description": "Slices in a direction, dealing 100 / 130 / 160 / 190 ( +110% AD ) and an additional 3% / 5% / 7% / 9% of the target's maximum Health as physical damage . Enemies hit by the outer half are slowed by 80% decaying over 2 seconds, healing Camille for 80% of the damage dealt to champions. Deals 95% damage to monsters.",
          "cooldown": "Cooldown: 15 / 13 / 11 / 9",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/camille/tactical-sweep.webp",
          "icon_sha256": "163ce03b3754c12d33c065d1dd03224f20187ed87f19ee3aa26c1e4b4f46e3a0"
        },
        {
          "slot": "E",
          "name": "Hookshot",
          "description": "First Cast : FIres a hookshot that attaches to terrain, pulling Camille to it. If Camille misses, it is placed on a 3 second cooldown. Second Cast : Dashes from the wall, dealing 60 / 110 / 160 / 210 ( +75% bonus AD ) physical damage on landing. Regardless of landing, Camille's next basic attack against enemy champions within 3 seconds, grants 50% / 60% / 70% / 80% Attack Speed for 5 seconds. If the dash hits an enemy champion, they are stunned for 0.75 seconds, and Hookshot's cooldown is reduced by 5 seconds.",
          "cooldown": "Cooldown: 22 / 20 / 18 / 16",
          "cost": "Cost: 70 / 70 / 70 / 70",
          "icon": "abilities/camille/hookshot.webp",
          "icon_sha256": "9291baa3d51bebbde9e85c51888e4d8b36bc23953bb9f458dfded86464a7b374"
        },
        {
          "slot": "R",
          "name": "Hextech Ultimatum",
          "description": "Leap to enemy champion, dealing 30 magic damage + 15% / 20% / 25% of their current Health, knocking away other enemies and creating an inescapable zone for 2 / 2.5 / 3 seconds. Hextech Ultimatum ends when Camille leaves the zone.",
          "cooldown": "Cooldown: 90 / 80 / 70",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/camille/hextech-ultimatum.webp",
          "icon_sha256": "0d95ab8e498ed1449e1513e3bccb92d58cbe53b0aa15a17d25121685aae72a65"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "WQEWRWWQRQQEREE"
        },
        {
          "label": "Source plan 2",
          "choices": "QWQERQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            2,
            8,
            10,
            11
          ],
          [
            1,
            3,
            6,
            7
          ]
        ],
        "W": [
          [
            1,
            4,
            6,
            7
          ],
          [
            2,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            3,
            12,
            14,
            15
          ],
          [
            4,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ],
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10055.js",
          "snapshot": "sources/8ec8cc605258d0d6bcf10ee892dcb7aab1640faba1a76f505f58345f6a0202f6",
          "sha256": "8ec8cc605258d0d6bcf10ee892dcb7aab1640faba1a76f505f58345f6a0202f6",
          "retrieved_at": "2026-11-01T15:46:28.199303+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:26",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "适应性防御",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "精准礼仪",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "战术横扫",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "钩索",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "海克斯最后通牒",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Cho'Gath": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/chogath",
        "snapshot": "sources/e75fd7c26f4e02d6a88fa4ed33f628f30a98456dc284f51353636d4ed242c60c",
        "sha256": "e75fd7c26f4e02d6a88fa4ed33f628f30a98456dc284f51353636d4ed242c60c",
        "retrieved_at": "2026-11-01T15:45:57.256667+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Carnivore",
          "description": "Killing an enemy restores 16 ( + 2 x level ) Health and 4 ( +0.35 x level ) Mana . The values restored are doubled if the unit is a champion, turret, or epic monster.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/cho-gath/carnivore.webp",
          "icon_sha256": "5e0f09d5f1b5e587cf925b5e3491895d2c2886f39fb9735fd62874c443e2860c"
        },
        {
          "slot": "Q",
          "name": "Rupture",
          "description": "Ruptures the ground, knocking up enemies for 1 second, dealing 80 / 135 / 190 / 245 ( +100% AP ) magic damage and slowing them by 60% for 1.5 seconds.",
          "cooldown": "Cooldown: 6 / 6 / 6 / 6",
          "cost": "Cost: 60 / 60 / 60 / 60",
          "icon": "abilities/cho-gath/rupture.webp",
          "icon_sha256": "bea06ae6fc60cd21a5f3738ef2d523b44793b0bd4a50a2c7687e3b3f48f519fb"
        },
        {
          "slot": "W",
          "name": "Feral Scream",
          "description": "Roars, silencing enemies in an area for 1.4 / 1.6 / 1.8 / 2 seconds and dealing 80 / 130 / 180 / 230 ( +70% AP ) magic damage .",
          "cooldown": "Cooldown: 12 / 11 / 10 / 9",
          "cost": "Cost: 70 / 80 / 90 / 100",
          "icon": "abilities/cho-gath/feral-scream.webp",
          "icon_sha256": "34407760384902b596fbb808f2f5b5417bbb632d4312e422da0f3b68a949d768"
        },
        {
          "slot": "E",
          "name": "Vorpal Spikes",
          "description": "Cho'Gath's next 3 attacks launch spikes that: Deal 20 / 45 / 70 / 95 ( +30% AP ) magic damage plus magic damage equal to 2.3% / 2.7% / 3.1% / 3.5% ( +0.6% x Feast stacks ) x the target's max Health and slows by 30% / 35% / 40% / 45% decaying over 1.5 seconds. Vorpal Spikes width increases with Cho'Gath's size. Base damage against minions and monsters is capped at 100 ( +30% AP ) magic damage .",
          "cooldown": "Cooldown: 7 / 6 / 5 / 4",
          "cost": "Cost: 30 / 30 / 30 / 30",
          "icon": "abilities/cho-gath/vorpal-spikes.webp",
          "icon_sha256": "cafc3e6113421da463b17c63bb58eea7e97a7d51105463cbd50681d242d331eb"
        },
        {
          "slot": "R",
          "name": "Feast",
          "description": "Devours an enemy, dealing: 300 / 450 / 600 ( +50% AP +8% of Cho'Gath's bonus Health ) true damage to champions; Deals 1200 ( +50% AP + 10% of Cho'Gath's bonus Health ) true damage to minions and monsters. If this kills the target, Cho'Gath gains 1 stack of Feast . Stacks gained from minions and non-epic monsters are capped at 6. Feast (per stack): Grants 80 / 120 / 160 max Health ; Increases size by 6% , up to an increase of 135% ; Increases Attack Range by 4.7 / 6.2 / 7.7 , up to an increase of 75 ; Increases this ability's cast range by 2.5 , up to an increase of 25 .",
          "cooldown": "Cooldown: 70 / 60 / 50",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/cho-gath/feast.webp",
          "icon_sha256": "e1d44aa45d1cc3d8e2b79a407c78d4f6801b1f8a0b63fc91ed41fbc8c64ba04f"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "EQWEREEQRQQWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [
          {
            "control_key": "feast_rank",
            "slot": "R",
            "rank_basis": "learned",
            "ability": "Feast",
            "engine_semantics": "chogath_feast permanent per-stack bonuses",
            "initial_rank": 0,
            "source": "champion.source (exact slot/name); canonical champion_mechanics.json rule identity",
            "engine_evidence": "game_rules.py rank consumers and champion_mechanics.json explicit rule parameters"
          },
          {
            "control_key": "vorpal_spikes_rank",
            "slot": "E",
            "rank_basis": "learned",
            "ability": "Vorpal Spikes",
            "engine_semantics": "chogath_vorpal_spikes explicit empowerment",
            "initial_rank": 0,
            "source": "champion.source (exact slot/name); canonical champion_mechanics.json rule identity",
            "engine_evidence": "game_rules.py rank consumers and champion_mechanics.json explicit rule parameters"
          }
        ],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10088.js",
          "snapshot": "sources/45c318ea37b3ef756cf2678c31b47c12fa92bdbbb0214eab86af251b8a7f33dd",
          "sha256": "45c318ea37b3ef756cf2678c31b47c12fa92bdbbb0214eab86af251b8a7f33dd",
          "retrieved_at": "2026-11-01T15:46:28.193457+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:28",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "肉食者",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "破裂",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "野性尖叫",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "恐惧之刺",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "盛宴",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Corki": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/corki",
        "snapshot": "sources/f7d0f764bdd6e060afe6a4a7db5c7236dd3aa0651778c547a123f5df32bc2e09",
        "sha256": "f7d0f764bdd6e060afe6a4a7db5c7236dd3aa0651778c547a123f5df32bc2e09",
        "retrieved_at": "2026-11-01T15:45:56.641046+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Hextech Munitions",
          "description": "Hextech Shrapnel : Attacks and Spellblade deal 16% bonus true damage . The Package : After hitting enemy champions 6 times with Missile Barrage , The Package is delivered to Corki. He can pick it up to gain 4 Big Ones . The Package despawns after 15 seconds.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/corki/hextech-munitions.webp",
          "icon_sha256": "2b9d3de932926f1285f0eaf123f5d92f9690ce8c0d6a464a7d0608555218fd50"
        },
        {
          "slot": "Q",
          "name": "Phosphorus Bomb",
          "description": "Fires a bomb, dealing 60 / 120 / 185 / 240 ( +110% bonus AD +100% AP ) magic damage and granting vision of the area.",
          "cooldown": "Cooldown: 9 / 8 / 7 / 6",
          "cost": "Cost: 60 / 65 / 70 / 75",
          "icon": "abilities/corki/phosphorus-bomb.webp",
          "icon_sha256": "869bb2829b618dc18b3a0403e58b6dcd255e14967528103c3be1f9f3f4a186d8"
        },
        {
          "slot": "W",
          "name": "Valkyrie",
          "description": "Flies a short distance, leaving a burning trail for 2.5 seconds. The trail burns enemies in it for 60 / 100 / 140 / 180 ( +60% bonus AD +60% AP ) magic damage per second, dealing up to 150 / 250 / 350 / 450 magic damage .",
          "cooldown": "Cooldown: 18 / 16 / 14 / 12",
          "cost": "Cost: 80 / 85 / 90 / 95",
          "icon": "abilities/corki/valkyrie.webp",
          "icon_sha256": "cc97e84e33532b7d9cb91e2d62317e1e4d54478e658d37ee60de5d175338fc51"
        },
        {
          "slot": "E",
          "name": "Gatling Gun",
          "description": "Fires a gatling gun, dealing 20 / 35 / 50 / 65 ( +55% bonus AD ) physical damage per second, up to a total of 80 / 140 / 200 / 260 physical damage over 4 seconds. Shreds up to 12 / 14 / 16 / 18 Armor and Magic Resist for 2 seconds. Corki automatically fires Gatling Gun at his current target.",
          "cooldown": "Cooldown: 12 / 12 / 12 / 12",
          "cost": "Cost: 50 / 60 / 70 / 80",
          "icon": "abilities/corki/gatling-gun.webp",
          "icon_sha256": "37e91aae866eab2b50ea967218f0cde4da96d0497c0222d3f0c0c33daa6f9e27"
        },
        {
          "slot": "R",
          "name": "Missile Barrage",
          "description": "Fires a missile that explodes on the first target hit, dealing 70 / 140 / 210 ( +65% bonus AD ) physical damage to nearby enemies. Big One : Every third missile is a Big One that deals 140 / 210 / 280 ( +130% bonus AD ) physical damage and has a bigger area of effect and increased blast radius. Charge : Gains a charge every 16 seconds, storing up to 4 charges. Attacks against champions reduce the time between charges by 2 ( +200% Crit Rate ) seconds on hit.",
          "cooldown": "Cooldown: 2 / 2 / 2 / 2",
          "cost": "Cost: 20 / 20 / 20 / 20",
          "icon": "abilities/corki/missile-barrage.webp",
          "icon_sha256": "ea18771ad2abe58dd3fe0d1b52ecf931404afa789264997f2ddfacde09dbed9b"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWQRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10060.js",
          "snapshot": "sources/e59e53b1015b8bb319b20860b39822d171f6cc5d11622d15e76dde980b47340a",
          "sha256": "e59e53b1015b8bb319b20860b39822d171f6cc5d11622d15e76dde980b47340a",
          "retrieved_at": "2026-11-01T15:46:28.194882+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:26",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "海克斯科技军备",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "磷光炸弹",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "瓦尔基里俯冲",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "格林机枪",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "火箭轰击",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Darius": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/darius",
        "snapshot": "sources/5d4c369b279fedb970c74f359fd25bbd4b1dd23ddf7af6491ebbde85b1df7071",
        "sha256": "5d4c369b279fedb970c74f359fd25bbd4b1dd23ddf7af6491ebbde85b1df7071",
        "retrieved_at": "2026-11-01T15:45:56.573486+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Hemorrhage",
          "description": "Attacks cause enemies to bleed, dealing 18 ( +40% bonus AD ) physical damage over 5 seconds. Can stack up to 5 times. Upon reaching full stacks, Darius gains Noxian Might for 5 seconds, gaining 32 Attack Damage and applying full stacks of Hemorrhage instead of 1. Deals 180% damage to monsters.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/darius/hemorrhage.webp",
          "icon_sha256": "a7cdd1407250af6ed5a45a4c2ff72ebe0a1122d31ade68c166ff2746129fc038"
        },
        {
          "slot": "Q",
          "name": "Decimate",
          "description": "Swings his axe after a delay, dealing 18 / 32 / 46 / 60 ( +35% / 40% / 45% / 50% AD ) physical damage . Hitting enemies with the blade of the axe deals 50 / 90 / 130 / 170 ( +100% / 115% / 130% / 145% AD ), heals himself for 15% of his missing Health for each champion or large monster hit (max 45%) and applies Hemorrhage .",
          "cooldown": "Cooldown: 10 / 8 / 7 / 5",
          "cost": "Cost: 35 / 40 / 45 / 50",
          "icon": "abilities/darius/decimate.webp",
          "icon_sha256": "a735e5d2e7171fab1dc646014cefe4e67a4f27863a0b81f413f69257a4239b17"
        },
        {
          "slot": "W",
          "name": "Crippling Strike",
          "description": "Empowers his next attack for 8 seconds to deal an additional 21 ( 30% / 40% / 50% / 60% AD ) physical damage and slows by 90% for 1 second. Killing the target refunds 50% of the cooldown and 100% of the mana cost.",
          "cooldown": "Cooldown: 6 / 6 / 6 / 6",
          "cost": "Cost: 30 / 30 / 30 / 30",
          "icon": "abilities/darius/crippling-strike.webp",
          "icon_sha256": "e362be3691f4f24029f49ddca59ae5ad6e8624c6ff27242a1529b8fac18f7cd2"
        },
        {
          "slot": "E",
          "name": "Apprehend",
          "description": "Passive : Gains 15% / 22% / 29% / 36% Armor Penetration. Active : Pulls in enemies in front of him, slowing them by 40% for 1.5 seconds.",
          "cooldown": "Cooldown: 18 / 16 / 14 / 12",
          "cost": "Cost: 45 / 45 / 45 / 45",
          "icon": "abilities/darius/apprehend.webp",
          "icon_sha256": "ce4112458ab061a645d2513ede4a4ab2518d5276a619c0e936bff8ecfd0f1381"
        },
        {
          "slot": "R",
          "name": "Noxian Guillotine",
          "description": "Leaps to execute a champion. Deals 125 / 250 / 375 ( +75% AD ) true damage , increased by 20% per Hemorrhage stack, and applies Hemorrhage . Killing the target with Noxian Guillotine refreshes its cooldown, mana cost, and grants Noxian Might for 5 seconds and causes nearby minions and monsters to flee for 1.5 seconds. When casting Noxian Guillotine and the target dies, moves out of range, becomes untargetable, or activates Zhonya's Hurglass or Guardian Angel, the mana cost will be refunded and go on a 5 second cooldown.",
          "cooldown": "Cooldown: 70 / 65 / 60",
          "cost": "",
          "icon": "abilities/darius/noxian-guillotine.webp",
          "icon_sha256": "c2753c7457943dcf39c26defca712481543da4c6e8f1ad0754e9130e392797ee"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "WQEQRQQEREEWRWW"
        },
        {
          "label": "Source plan 2",
          "choices": "WQQERQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            2,
            4,
            6,
            7
          ],
          [
            2,
            3,
            6,
            7
          ]
        ],
        "W": [
          [
            1,
            12,
            14,
            15
          ],
          [
            1,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            3,
            8,
            10,
            11
          ],
          [
            4,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ],
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10071.js",
          "snapshot": "sources/30e2399bdb531abeb075d458d8598d1c191936f99232f7c1fa6ed71bde83daeb",
          "sha256": "30e2399bdb531abeb075d458d8598d1c191936f99232f7c1fa6ed71bde83daeb",
          "retrieved_at": "2026-11-01T15:46:28.223415+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:27",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "外伤",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "轮转飞斧",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "致残打击",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "无情铁手",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "诺克萨斯断头台",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Diana": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/diana",
        "snapshot": "sources/bd22ddbeb3cd752d2fd20b222dbd29fc418b6f33142075ae26dd87ac3691da0b",
        "sha256": "bd22ddbeb3cd752d2fd20b222dbd29fc418b6f33142075ae26dd87ac3691da0b",
        "retrieved_at": "2026-11-01T15:45:56.672088+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Moonsilver Blade",
          "description": "After casting an ability, Diana gains 30% Attack Speed for 4 seconds. Every third attack deals an additional 35 magic damage to nearby enemies.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/diana/moonsilver-blade.webp",
          "icon_sha256": "d3249b378163f3c8bf17ba46e59ccf129fe23ddd740a3790c30124db3418074c"
        },
        {
          "slot": "Q",
          "name": "Crescent Strike",
          "description": "Unleashes an arcing bolt of energy that deals 60 / 105 / 150 / 195 ( +70% AP ) magic damage and applies Moonlight for 3 seconds.",
          "cooldown": "Cooldown: 8 / 7 / 6 / 5",
          "cost": "Cost: 50 / 55 / 60 / 65",
          "icon": "abilities/diana/crescent-strike.webp",
          "icon_sha256": "7cc6a60038c78e55ca999deb820a2e6ccef10aa00c39db67a456051da50adb20"
        },
        {
          "slot": "W",
          "name": "Pale Cascade",
          "description": "Creates 3 spheres that orbit Diana for 5 seconds. Upon contact with enemies the spheres detonate, dealing 20 / 35 / 50 / 65 ( +20% AP ) magic damage . Also grants a shield that absorbs 50 / 70 / 90 / 110 ( +40% AP ) damage . If the third sphere detonates, the shield is increased by 50 / 70 / 90 / 110 ( +40% AP ).",
          "cooldown": "Cooldown: 13 / 12 / 10 / 9",
          "cost": "Cost: 70 / 70 / 70 / 70",
          "icon": "abilities/diana/pale-cascade.webp",
          "icon_sha256": "30be1c921bead34a7406efac2db049d8cfd47462b44b0d0f12c67e1cb4e56b35"
        },
        {
          "slot": "E",
          "name": "Lunar Rush",
          "description": "Dashes to a point near an enemy, dealing 40 / 80 / 120 / 160 ( +30% AP ) magic damage and removing Moonlight in an area. Lunar Rush's Cooldown is reduced to 0.5 seconds if it removes Moonlight from an enemy.",
          "cooldown": "Cooldown: 18 / 16 / 14 / 12",
          "cost": "Cost: 20 / 20 / 20 / 20",
          "icon": "abilities/diana/lunar-rush.webp",
          "icon_sha256": "534d96da281ede81bd4943b5789d3edf030fb4a929fd4384acb952e6558d0979"
        },
        {
          "slot": "R",
          "name": "Moonfall",
          "description": "Summons the moon, illuminating an area that expands. Enemies in this area are slowed by 20% . During this time, Diana charges for up to 1 second, triggering Moonfall Glow when the charge is complete. Diana can move and cast abilities and spells while charging up. Diana cannot cast this ability if there are no enemy champions nearby. Moonfall Glow : Slams the moon down, marking enemies with Moonlight and dealing 100 / 160 / 220 ( +80% AP ) magic damage to 200 / 320 / 440 ( +80% AP ) magic damage based on charge time. Targets are slowed by 20% for 2 seconds.",
          "cooldown": "Cooldown: 70 / 65 / 60",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/diana/moonfall.webp",
          "icon_sha256": "be4bd395123e6cdf2c5b61aa3f2a7fe7ea49ba090b0d5aadd806c4153c7b6bce"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWQRQQWRWWEREE"
        },
        {
          "label": "Source plan 2",
          "choices": "QWEQRQQWRWWEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ],
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            8,
            10,
            11
          ],
          [
            2,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            2,
            12,
            14,
            15
          ],
          [
            3,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ],
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10013.js",
          "snapshot": "sources/20fa58ffbb0069e0c530882ebe55bc666574bc67703627cba88215630efe7a84",
          "sha256": "20fa58ffbb0069e0c530882ebe55bc666574bc67703627cba88215630efe7a84",
          "retrieved_at": "2026-11-01T15:46:28.434035+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:24",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "月银之刃",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "新月打击",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "苍白之瀑",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "月神冲刺",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "月之降临",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Dr. Mundo": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/dr-mundo",
        "snapshot": "sources/2f3dba8455819f5d56ca36cd20af05b3a277d2edb5d296837f7d6f03590b9768",
        "sha256": "2f3dba8455819f5d56ca36cd20af05b3a277d2edb5d296837f7d6f03590b9768",
        "retrieved_at": "2026-11-01T15:45:56.858716+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Goes Where He Pleases",
          "description": "Resists the first immobilizing effect, losing 3% current Health instead and dropping a Chemical Canister nearby. Retrieving the Canister reduces cooldown by 10 seconds and heals Dr. Mundo for 4% of his maximul Health (40 second CD). Regenerates 1% of his maximum Health ever 5 seconds. Enemy champions destroy the Canister if they reach it first.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/dr-mundo/goes-where-he-pleases.webp",
          "icon_sha256": "0b6ebef31ff2fc3ff7ad925563529813489280ce2a835dda73c05e813656c0ca"
        },
        {
          "slot": "Q",
          "name": "Infected Bonesaw",
          "description": "Throws his bonesaw, dealing magic damage equal to 20% / 23% / 26% / 29% of the target's current Health ( min: 90 / 160 / 230 / 300 ) and slowing them by 40% for 2 seconds. Hitting and enemy heals Dr. Mundo for 25 , or 50 on hitting a champion or monster. Deals up to 250 / 350 / 450 / 550 damage against monsters.",
          "cooldown": "Cooldown: 4 / 4 / 4 / 4",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/dr-mundo/infected-bonesaw.webp",
          "icon_sha256": "88a787f3bb3dd8f6a7c3268f84ee2e432defc525f4869c7a79aec37ccaca9682"
        },
        {
          "slot": "W",
          "name": "Heart Zapper",
          "description": "Charges a defibrillator for 4 seconds, dealing 20 / 40 / 60 / 80 magic damage per second to nearby enemies. Re-cast: Detonates the defibrillator, dealing 20 / 40 / 60 / 80 ( +5% bonus HP ) magic damage to nearby enemies. If the detonation damaged an enemy, Dr. Mundo heals for 15% of the damage taken during Heart Zapper's duration. If it damaged a champion or monster he heals 30% / 35% / 40% / 45% instead.",
          "cooldown": "Cooldown: 13 / 12 / 11 / 10",
          "cost": "Cost: 5 / 5 / 5 / 5",
          "icon": "abilities/dr-mundo/heart-zapper.webp",
          "icon_sha256": "8f449c7f87688e78a9f2a3cc74d348f4b66df4fdbedf4e64095f727c4fd53a3a"
        },
        {
          "slot": "E",
          "name": "Blunt Force Trauma",
          "description": "Passive : Dr. Mundo gains 15 / 20 / 25 / 30 , plus up to 30 / 45 / 50 / 60 Attack Damage based on his missing health. Active : Empowers his next attack to deal an addition 5 / 20 / 35 / 50 ( +5% HP ) physical damage , increased by up to 60% based on Dr. Mundo's missing heath. Dr. Mundo swats the target away if it was killed or was a small monster, dealing the same damage to enemies.",
          "cooldown": "Cooldown: 8 / 8 / 7 / 7",
          "cost": "Cost: 10 / 20 / 30 / 40",
          "icon": "abilities/dr-mundo/blunt-force-trauma.webp",
          "icon_sha256": "d4654f330916f4c9835e2f4c76bcb6545bef6f4f33a5e9353c119962cb98fe06"
        },
        {
          "slot": "R",
          "name": "Maximum Dosage",
          "description": "Dr. Mundo's base Health is increased by 25% / 30% / 35% of his missing Health. He also gains Attack Damage ( 4% / 5.5% / 7% bonus HP ), 15% / 25% / 35% Movement Speed for 10 seconds and heals 15% / 35% / 55% of his maximum Health over the duration.",
          "cooldown": "Cooldown: 70 / 65 / 60",
          "cost": "",
          "icon": "abilities/dr-mundo/maximum-dosage.webp",
          "icon_sha256": "3ae7f3543fb4d838ff9d90fd808e9df691cd482f96256780af3817f3fea25f3c"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWQRQQEREEWRWW"
        },
        {
          "label": "Source plan 2",
          "choices": "QEQWRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ],
          [
            1,
            3,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ],
          [
            4,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ],
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ],
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10062.js",
          "snapshot": "sources/1e2098b4c7d161299954360bb86aeb13d542167eba930bb2956659f1a0f32ad4",
          "sha256": "1e2098b4c7d161299954360bb86aeb13d542167eba930bb2956659f1a0f32ad4",
          "retrieved_at": "2026-11-01T15:46:28.439266+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:26",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "想去哪就去哪",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "病毒屠刀",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "电击疗法",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "大力行医",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "极限剂量",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Draven": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/draven",
        "snapshot": "sources/2f8a4e778a9eb0b5121eb611361538a4404c7dad606595c83bcc9de3f41803f1",
        "sha256": "2f8a4e778a9eb0b5121eb611361538a4404c7dad606595c83bcc9de3f41803f1",
        "retrieved_at": "2026-11-01T15:45:57.760664+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "League of Draven",
          "description": "Killing a unit or catching a Spinning Axe grants a stack of Adoration . Killing champions consume all Adoration stacks and grant 60 bonus gold + 3 per stack of Adoration . When Draven dies, half of Adoration stacks are lost.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/draven/league-of-draven.webp",
          "icon_sha256": "f5e5fc4d55417cbe8c156279defc197661f2188b787cbb6e4e8726294393aed1"
        },
        {
          "slot": "Q",
          "name": "Spinning Axe",
          "description": "Gains a Spinning Axe , causing his next attack within 6 seconds to deal an additional 45 / 50 / 55 / 60 ( +90% / 100% / 110% / 120% bonus AD ) physical damage . The Spinning Axe bounces off the target, allowing Draven to catch and regain it. Draven can hold two Spinning Axes at once.",
          "cooldown": "Cooldown: 10 / 9 / 8 / 7",
          "cost": "Cost: 45 / 45 / 45 / 45",
          "icon": "abilities/draven/spinning-axe.webp",
          "icon_sha256": "976bcf142f17e0238085e12aa4d8afae00421268508b80788f9cb3fd2c07403b"
        },
        {
          "slot": "W",
          "name": "Blood Rush",
          "description": "Gains 25% / 30% / 35% / 40% Attack Speed for 3 seconds and 50% / 55% / 60% / 65% Movement Speed for 1.5 seconds. Catching a Spinning Axe refreshes Blood Rush's cooldown.",
          "cooldown": "Cooldown: 10 / 10 / 10 / 10",
          "cost": "Cost: 40 / 35 / 30 / 25",
          "icon": "abilities/draven/blood-rush.webp",
          "icon_sha256": "0882567157921c4f73e5e9095b792aae934c9f9ff3130ff31a88b70c21bab49c"
        },
        {
          "slot": "E",
          "name": "Stand Aside",
          "description": "Throws his axes, dealing 75 / 120 / 165 / 210 ( +50% bonus AD ) physical damage and knocking enemies aside, slowing them by 25% / 30% / 35% / 40% for 2 seconds.",
          "cooldown": "Cooldown: 15 / 14 / 13 / 12",
          "cost": "Cost: 70 / 70 / 70 / 70",
          "icon": "abilities/draven/stand-aside.webp",
          "icon_sha256": "46f97df899302874f2d7bb6aac11c01f100e028331b086cea717e268508c51dc"
        },
        {
          "slot": "R",
          "name": "Whirling Death",
          "description": "Hurls two massive axes, dealing 200 / 300 / 400 ( +150% bonus AD ) physical damage . The axe return to Draven when they reach the edge of the map, hit a champion or upon reactivation. Deals 5% less damage as it damages targets, minimum 50% . Upon reversal, the reduction is reset to deal full damage. If Whirling Death strikes an enemy champion with less Health than Draven's current Adoration stacks, he will execute them.",
          "cooldown": "Cooldown: 70 / 65 / 60",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/draven/whirling-death.webp",
          "icon_sha256": "94305d8b08509c879abc72a191e47dccf00a3ffa665ad34bc08dcc88be9d74f7"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWEQRQQWRWWEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10077.js",
          "snapshot": "sources/49417f23e726046dea6f4ab897e6efd37eeb757f9e8fbc84796e7729e3c086ef",
          "sha256": "49417f23e726046dea6f4ab897e6efd37eeb757f9e8fbc84796e7729e3c086ef",
          "retrieved_at": "2026-11-01T15:46:28.438929+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:27",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "德莱文联盟",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "旋转飞斧",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "血性冲刺",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "开道利斧",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "冷血追命",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Ekko": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/ekko",
        "snapshot": "sources/f6cbe0ffde9d03426d4a381603d0af7d10b79324c04818307cf3ee27c43c5b11",
        "sha256": "f6cbe0ffde9d03426d4a381603d0af7d10b79324c04818307cf3ee27c43c5b11",
        "retrieved_at": "2026-11-01T15:45:57.818667+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Z-Drive Resonance",
          "description": "Every third attack or damaging ability against the same target deals an additional 30 ( +80% AP ) magic damage . If the target was a champion, Ekko gains 40% Movement Speed for 2.5 seconds. Deals 110% damage to monsters. Cannot affect the same target for 5 seconds.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/ekko/z-drive-resonance.webp",
          "icon_sha256": "13e80f5895209a165182c7702e1caa2e83328d94fa44dfa176470368857f7482"
        },
        {
          "slot": "Q",
          "name": "Timewinder",
          "description": "Throw a temporal device, dealing 90 / 110 / 130 / 150 ( +30% AP ) magic damage . On hitting a champion or the distance limit, it expands into a field that slows by 30% / 40% / 50% / 60% . The device then returns to Ekko, dealing 7 0 / 105 / 140 / 175 ( +60% AP ) magic damage . Deals 100% damage to monsters.",
          "cooldown": "Cooldown: 8 / 8 / 7 / 7",
          "cost": "Cost: 50 / 60 / 70 / 80",
          "icon": "abilities/ekko/timewinder.webp",
          "icon_sha256": "15c556bdc5a01eaeac0395c43225f896eb3f48718d179db73b17a7e2aead9003"
        },
        {
          "slot": "W",
          "name": "Parallel Convergence",
          "description": "Passive : Attacks gains Low Health targets deal an additional 3% ( +0.025% AP ) missing Health magic damage. Active : Launches a chronosphere that lasts 1.5 seconds, slowing by 40% . If Ekko enters the sphere it detonates, stunning for 2.25 seconds and granting Ekko a shield that absorbs 70 / 100 / 130 / 160 ( +150% AP ) damage for 2 seconds.",
          "cooldown": "Cooldown: 20 / 18 / 16 / 14",
          "cost": "Cost: 35 / 40 / 45 / 50",
          "icon": "abilities/ekko/parallel-convergence.webp",
          "icon_sha256": "8d4ca54ae118fdc2d9cda6c49d236e19094455552873156d376234b889b44ea4"
        },
        {
          "slot": "E",
          "name": "Phase Dive",
          "description": "Dashes in a taget direction. Ekko's next attack within 3 seconds gains 250 range and causes Ekko to blink to his target and deal an additional 60 / 90 / 120 / 150 ( +40% AP ) magic damage .",
          "cooldown": "Cooldown: 10 / 9 / 8 / 7",
          "cost": "Cost: 45 / 50 / 55 / 60",
          "icon": "abilities/ekko/phase-dive.webp",
          "icon_sha256": "0d1e86af1b90ca2cdd2b2360bb3e8b050aa46b29eab4483947cdff05f8d62a4c"
        },
        {
          "slot": "R",
          "name": "Chronobreak",
          "description": "Becomes untargetable and returns to his position 3.5 seconds ago and heals for 150 / 200 / 250 ( +50% AP ) increased by 3% per 1% of health lost within 3.5 seconds. Upon arrival, Ekko deals 200 / 350 / 500 ( +150% AP ) magic damage to nearby enemies.",
          "cooldown": "Cooldown: 80 / 60 / 40",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/ekko/chronobreak.webp",
          "icon_sha256": "047ed7e1c2fba5eb9b97de370c9a4c363ce6f580bf6e71ef1d80d5452a517fcd"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWQRQQEREEWRWW"
        },
        {
          "label": "Source plan 2",
          "choices": "QWEQRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ],
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ],
          [
            2,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ],
          [
            3,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ],
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10011.js",
          "snapshot": "sources/90d610461a293e613a584cba35a75c4a13dcc393c85ae175ac07f5b8b3d57aaa",
          "sha256": "90d610461a293e613a584cba35a75c4a13dcc393c85ae175ac07f5b8b3d57aaa",
          "retrieved_at": "2026-11-01T15:46:28.444576+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:23",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "Z型驱动共振",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "时间卷曲器",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "时光交错",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "相位俯冲",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "时空断裂",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Evelynn": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/evelynn",
        "snapshot": "sources/abf24e96bed25db9b24f5fb1c5f21429682f89ba148ac418b53d0e3ce9b9fac1",
        "sha256": "abf24e96bed25db9b24f5fb1c5f21429682f89ba148ac418b53d0e3ce9b9fac1",
        "retrieved_at": "2026-11-01T15:45:57.714194+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Demon Shade",
          "description": "Enters Demon Shade after not attacking or casting for 4 seconds. Taking damage from enemy champions or turrets puts Demon Shade on a 1.5 seconds cooldown. In Demon Shade, Evelynn regenerates 17 Health ( +7.5% AP ) every second when she is below 320 Health. After lever 5, Demons Shade grants her Camouflage .",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/evelynn/demon-shade.webp",
          "icon_sha256": "5db3f02f05914a69247855b6364894850141f1e7f39afdbb80c7f7ab52a4fde5"
        },
        {
          "slot": "Q",
          "name": "Hate Spike",
          "description": "Unleashes two lines of spikes, dealing 40 / 47.5 / 55 / 62.5 ( +50% AP ) magic damage , each to all enemies struck. Can re-cast within 4 seconds. Deals 40% / 50% / 60% / 70% damage to minions.",
          "cooldown": "Cooldown: 4 / 4 / 4 / 4",
          "cost": "Cost: 30 / 35 / 40 / 45",
          "icon": "abilities/evelynn/hate-spike.webp",
          "icon_sha256": "6b2d95e4a7a4d851a410751a188827c512755e1ad347a6f357d8bf3bfd72dadd"
        },
        {
          "slot": "W",
          "name": "Allure",
          "description": "Curses target champion or monster for 5 seconds. Evelynn's next attack or ability will expunge the Curse adn slow them by 65% for 1 / 1.25 / 1.5 / 1.75 seconds. If the Curse lasts at least 2.5 seconds, expunging it charms the target for 1 / 1.25 / 1.5 / 1.75 seconds, If the target is a champion, shreds their Magic Resist by 20% / 24% / 28% / 32% for 4 seconds. If the target is a monster, deal additional 300 / 350 / 400 / 450 ( +60% AP ) magic damage . Casting Allure does not remove Evelynn from Demon Shade .",
          "cooldown": "Cooldown: 14 / 13 / 12 / 11",
          "cost": "Cost: 70 / 80 / 90 / 100",
          "icon": "abilities/evelynn/allure.webp",
          "icon_sha256": "027c46d343122d299f3d515cc65aa7a15ce2257edebcc0833c62a9cd11577ddc"
        },
        {
          "slot": "E",
          "name": "Whiplash",
          "description": "Whips a target with Lashers, applying on-hit effects and dealing 55 / 75 / 95 / 115 + 2% ( +0.01% AP ) magic damage of their max Health. Then gain 30% Movement Speed for 2 seconds. Entering Demon Shade enhances the next cast to pull Evelynn to her target, dealing 80 / 110 / 140 / 170 + 4% ( +0.015% AP ) increased magic damage of their max Health to all enemies in the way.",
          "cooldown": "Cooldown: 8 / 8 / 8 / 8",
          "cost": "Cost: 45 / 50 / 55 / 60",
          "icon": "abilities/evelynn/whiplash.webp",
          "icon_sha256": "46c89db22f6c39f0ed2d44d089ad596baf2afec205e28fa4ce70101cf0198249"
        },
        {
          "slot": "R",
          "name": "Last Caress",
          "description": "Evelynn briefly goes untargetable and decimates the area in front of her before warping backwards a long distance. Deals 150 / 260 / 370 ( +75% AP ) magic damage , increased to 230% to enemy champions below 35% Health .",
          "cooldown": "Cooldown: 90 / 75 / 60",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/evelynn/last-caress.webp",
          "icon_sha256": "76f1cceffca56d27602a41a16b039661625d902e2d0c0c1ac037a25cb1d4d9f0"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWQRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10029.js",
          "snapshot": "sources/dfb8425abfc2fd17feabdc56194e3d19a5820ce6c21f261f12b6ccb9a160e0a3",
          "sha256": "dfb8425abfc2fd17feabdc56194e3d19a5820ce6c21f261f12b6ccb9a160e0a3",
          "retrieved_at": "2026-11-01T15:46:28.444299+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:24",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "恶魔魅影",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "憎恨之刺",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "引诱",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "鞭笞",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "最终抚慰",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Ezreal": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/ezreal",
        "snapshot": "sources/5583bd173bf51f5eedeb6714b3384a4c5df450165b463c940e616f4113d0f98c",
        "sha256": "5583bd173bf51f5eedeb6714b3384a4c5df450165b463c940e616f4113d0f98c",
        "retrieved_at": "2026-11-01T15:45:57.196155+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Rising Spell Force",
          "description": "Gains 13% Attack Speed for 8 seconds when hitting targets with abilities, stacking up to 4 times.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/ezreal/rising-spell-force.webp",
          "icon_sha256": "5dc8e5cc94b9306ffb790d964454e612e36d910bce1690c246ef29a32af0be2f"
        },
        {
          "slot": "Q",
          "name": "Mystic Shot",
          "description": "Fires a bolt, dealing 25 / 55 / 85 / 115 ( +135% AD +30% AP ) physical damage . Hitting a target reduces Ezreal's ability cooldowns by 1.5 seconds. Applies on-hit effects .",
          "cooldown": "Cooldown: 6 / 5 / 4 / 4",
          "cost": "Cost: 30 / 35 / 40 / 45",
          "icon": "abilities/ezreal/mystic-shot.webp",
          "icon_sha256": "fcff5b510f61585954db464ad7b78f94ecc29b9742021e09333bc12ce2af0eae"
        },
        {
          "slot": "W",
          "name": "Essence Flux",
          "description": "Fires an orb that sticks to a champion, epic monster or structure for 4 seconds. Hitting the target with an attack or ability detonates the orb, dealing 80 / 155 / 230 / 305 ( +60% bonus AD +75% / 80% / 85% / 90% AP ) magic damage and refunding 60 / 70 / 80 / 90 Mana .",
          "cooldown": "Cooldown: 10 / 10 / 10 / 10",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/ezreal/essence-flux.webp",
          "icon_sha256": "70524f7ce14a68a03740ae93e93a8a3e64d14c406efa7b05d6c50c20817b1225"
        },
        {
          "slot": "E",
          "name": "Arcane Shift",
          "description": "Blinks to taget location and fires a bolt, dealing 80 / 145 / 210 / 275 ( +50% bonus AD +75% AP ) magic damage . Prioritizes enemies hit by Essence Flux , then the nearest enemy.",
          "cooldown": "Cooldown: 24 / 21 / 17 / 14",
          "cost": "Cost: 70 / 70 / 70 / 70",
          "icon": "abilities/ezreal/arcane-shift.webp",
          "icon_sha256": "ea6813c47cd6d7abe21a7e77f5345f143bb577cbc26c8b16be6529d43a5b8291"
        },
        {
          "slot": "R",
          "name": "Trueshot Barrage",
          "description": "Fires an energy wave, dealing 300 / 500 / 700 ( +100% bonus AD +100% AP ) magic damage . Deals 50% reduced damage to minions and non-epic monsters.",
          "cooldown": "Cooldown: 80 / 70 / 60",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/ezreal/trueshot-barrage.webp",
          "icon_sha256": "271f09e3a2ab0f840f574981f8bf462d50e0d54c289a861bd256bbf862394be9"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWQRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10098.js",
          "snapshot": "sources/0c6b550a880bfcb2e0faca2216c2f081e41054151b45b92cd98df504f795ca1f",
          "sha256": "0c6b550a880bfcb2e0faca2216c2f081e41054151b45b92cd98df504f795ca1f",
          "retrieved_at": "2026-11-01T15:46:28.475244+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:28",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "咒能高涨",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "秘术射击",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "精华跃动",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "奥术跃迁",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "精准弹幕",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Fiddlesticks": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/fiddlesticks",
        "snapshot": "sources/7e241d5c07857c504be48d8aeb1487e66259936d47f129dd5ba150e58136f086",
        "sha256": "7e241d5c07857c504be48d8aeb1487e66259936d47f129dd5ba150e58136f086",
        "retrieved_at": "2026-11-01T15:45:57.165838+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "A Harmless Scarecrow",
          "description": "After a champion takedown, summons a Scarecrow Effigy for 3 seconds. The Effigy automatically tracks the nearest enemy champion, detonating upon reaching them or when its duration ends to fear all enemy champions nearby. Only 1 Effigy can exist at one time.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/fiddlesticks/a-harmless-scarecrow.webp",
          "icon_sha256": "fda1f616a0ec0aefbe6fcc7ad402f957a937622a5a481c7992949133b5d604d6"
        },
        {
          "slot": "Q",
          "name": "Terrify",
          "description": "Passive: While unseen and out of combat or standing still for 2 seconds and impersonating an Effigy, damaging an enemy with an ability fears them for 1 / 1.2 / 1.4 / 1.6 seconds. Active: Unleashes a murder of crows, fearing the target hit for 1 / 1.2 / 1.4 / 1.6 seconds and dealing 4% / 5% / 6% / 7% of their current Health as magic damage i ncreased by 1.5% per 100 AP . Deals at least 45 / 70 / 90 / 120 damage. If the target has recently been feared, they take 200% more damage instead of becoming feared again. Deals a maximum of 400 damage against monsters.",
          "cooldown": "Cooldown: 14 / 13 / 13 / 12",
          "cost": "Cost: 65 / 65 / 65 / 65",
          "icon": "abilities/fiddlesticks/terrify.webp",
          "icon_sha256": "626ff2776a44bad8e5b50e21efe76b2bfb4540dd2ae644fe9613bcfe4897f2d9"
        },
        {
          "slot": "W",
          "name": "Bountiful Harvest",
          "description": "Channels and drains the souls of nearby enemies, dealing 60 / 90 / 120 / 150 ( +30% AP ) magic damage per second for 2 seconds, plus 1 0% / 11.5% / 13% / 14.5% of the target's missing Health as damage at the end. Pain to Gain : Restores 40% / 45% / 50% / 55% of the damage as Health. Fiddlesticks is slowed by 30% while channeling. Recast anytime to end the channel early. If Fiddlesticks completes the channel without interruption, this ability's remaining cooldown is reduced by 50% . Health restored varies by target: Champions - 40% ; Minions - 15% ; Monsters 45% . Deals 160% damage against monsters and 50% damage against minions.",
          "cooldown": "Cooldown: 11 / 10 / 9 / 8",
          "cost": "Cost: 60 / 60 / 60 / 60",
          "icon": "abilities/fiddlesticks/bountiful-harvest.webp",
          "icon_sha256": "1b9b1550e867a4693c979fd1f773b79072d1eb0a5235e561f9f3a7778d8b0fa7"
        },
        {
          "slot": "E",
          "name": "Reap",
          "description": "Slashes the target location with its scythe, dealing 70 / 120 / 170 / 220 ( +50% AP ) magic damage to enemies within the area and slowing them by 35% / 40% / 45% / 50% for 1.25 seconds. Enemies in the center are silenced.",
          "cooldown": "Cooldown: 9 / 8 / 7 / 6",
          "cost": "Cost: 40 / 40 / 40 / 40",
          "icon": "abilities/fiddlesticks/reap.webp",
          "icon_sha256": "2f110b751bd91031290c4527106f8d1fc9e266b6734cccbbba0e829f0ff0aefd"
        },
        {
          "slot": "R",
          "name": "Crowstorm",
          "description": "Channels for 1.5 seconds, then blinks to the target location and summons Crowstorm, dealing 30 / 50 / 70 ( +10% AP ) magic damage every 0.25 seconds to nearby enemies for 5 seconds. Crowstorm deals a maximum of 600 / 1000 / 1400 magic damage .",
          "cooldown": "Cooldown: 100 / 80 / 60",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/fiddlesticks/crowstorm.webp",
          "icon_sha256": "c4b382fb32a8c3dd93891a7521c72694ba9eaa646c78a10a626825d2de86f68b"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "WEWQRWWQRQQEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            4,
            8,
            10,
            11
          ]
        ],
        "W": [
          [
            1,
            3,
            6,
            7
          ]
        ],
        "E": [
          [
            2,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10133.js",
          "snapshot": "sources/d544118ac6ad348fbff87ddd9af605695d5313158f26e481028d79138fecc13f",
          "sha256": "d544118ac6ad348fbff87ddd9af605695d5313158f26e481028d79138fecc13f",
          "retrieved_at": "2026-11-01T15:46:28.686655+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:30",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "巫骇草人",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "恐惧",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "五骨丰登",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "夜割",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "群鸦风暴",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Fiora": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/fiora",
        "snapshot": "sources/37851f5c6e972377ae4dd6ec7a9e5b26899c3a476d6cccce3ffa86495538b177",
        "sha256": "37851f5c6e972377ae4dd6ec7a9e5b26899c3a476d6cccce3ffa86495538b177",
        "retrieved_at": "2026-11-01T15:45:57.486647+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Duelist's Dance",
          "description": "After 2 seconds (scales with Grand Challenge's level), reveals Vitals on a nearby enemy champion. Striking a Vital deals 4% ( +0.055% bonus AD ) of the target's max Health as true damage , heals Fiora for 45 Health and grants her 30% Movement Speed (scales with Grand Challenge's level) decaying over 1.75 seconds. Reveals a new Vital after striking one or after 16.75 seconds.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/fiora/duelist-s-dance.webp",
          "icon_sha256": "061b7451e15c6d89566ceebfca7c79de4af3d90394bbb57bed4ccb4c5e458a24"
        },
        {
          "slot": "Q",
          "name": "Lunge",
          "description": "Lunges in a direction and stabs a nearby enemy, dealing 75 / 85 / 95 / 105 ( +110% / 115% / 120% / 125% bonus AD ) physical damage . Hitting the target refunds 50% of Lunge's cooldown. Lunge prioritizes Vitals and enemies it will kill and applies on-hit effects to the main target. Lunge deals 50% damage to monsters and can deal damage to turrets.",
          "cooldown": "Cooldown: 12 / 10 / 8 / 6",
          "cost": "Cost: 20 / 25 / 30 / 35",
          "icon": "abilities/fiora/lunge.webp",
          "icon_sha256": "dd68892e36b672a8a123f8c49684dba64a9669a783cc9cba90b48f47f68d898a"
        },
        {
          "slot": "W",
          "name": "Riposte",
          "description": "Parries all incoming damage and debuffs for the next 0.75 seconds. Then stabs in the target direction, dealing 120 / 170 / 220 / 270 ( +100% AP ) magic damage to the first enemy champion, slowing their Movement Speed and Attack Speed by 50% for 1.5 seconds. Riposte stuns instead of slows if it parries an immobilizing effect.",
          "cooldown": "Cooldown: 18 / 16 / 14 / 12",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/fiora/riposte.webp",
          "icon_sha256": "879aea235d0bfc4c4127134860101959706b8452277352f48bf37b1a69269c25"
        },
        {
          "slot": "E",
          "name": "Bladework",
          "description": "Empowers the next 2 attacks with 60% Attack Speed . The first attack applies a 30% slow for 1 second, but cannot critically strike. The second attack will always critically strike for 170% / 180% / 190% / 200% physical damage .",
          "cooldown": "Cooldown: 11 / 9 / 7 / 5",
          "cost": "Cost: 30 / 35 / 40 / 45",
          "icon": "abilities/fiora/bladework.webp",
          "icon_sha256": "21ebacd8f496ee7098d623639cd04a42f9fe203cc7a387f3decd6041b374794c"
        },
        {
          "slot": "R",
          "name": "Grand Challenge",
          "description": "Passive : Reduces the time needed to reveal Vitals by 0.25 / 0.5 / 0.75 seconds. Active : Revels all 4 Vitals on an enemy champion for 8 seconds and gains Duelist's Dance's Movement Speed bonus while near them. If Fiora strikes all 4 Vitals within 8 seconds, or if the target dies after she has hit at least one, restores 80 / 110 / 140 ( +60% bonus AD ) Health per second to herself and nearby allied champions for 2 - 5 seconds, scaling with the number of Vitals hit. Striking all 4 Vitals of a champion deals 16% of their max Health as true damage .",
          "cooldown": "Cooldown: 70 / 60 / 50",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/fiora/grand-challenge.webp",
          "icon_sha256": "06bb998addf94947f89a3a1560f15a060392f07ac832711a0690f653e8e8916b"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWEQRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            2,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            3,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10032.js",
          "snapshot": "sources/a7bc8d861ea7f7b36419793d35937796b4d473d25b4880fe89d72f12a1088629",
          "sha256": "a7bc8d861ea7f7b36419793d35937796b4d473d25b4880fe89d72f12a1088629",
          "retrieved_at": "2026-11-01T15:46:28.688766+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:25",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "决斗之舞",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "破空斩",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "劳伦特心眼刀",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "夺命连刺",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "无双挑战",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Fizz": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/fizz",
        "snapshot": "sources/d64a4b0ef8f651a7a082d85033f161c962685ab977e43ac68fdf1824b1a0bfdc",
        "sha256": "d64a4b0ef8f651a7a082d85033f161c962685ab977e43ac68fdf1824b1a0bfdc",
        "retrieved_at": "2026-11-01T15:45:57.539942+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Seastone Trident",
          "description": "Attacks deal an additional 24 ( +45% AP ) magic damage over 3 seconds. Deals 90% damage to monsters.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/fizz/seastone-trident.webp",
          "icon_sha256": "1d40d10df732d6869afeb2887a8da5faed154efefb9cd48cacc865d6ec89e438"
        },
        {
          "slot": "Q",
          "name": "Urchin Strike",
          "description": "Dashes through target enemy, dealing 20 / 40 / 60 / 80 ( +60% AP ) magic damage + 58 physical damage ( 100% AD ) and applying on-hit effects.",
          "cooldown": "Cooldown: 8 / 8 / 7 / 7",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/fizz/urchin-strike.webp",
          "icon_sha256": "c01a400857bee2e625fed8363180d02056a81b24a4d1198688aebc51428bf342"
        },
        {
          "slot": "W",
          "name": "Rending Wave",
          "description": "Empowers the next attack to gush water around the target, dealing 50 / 75 / 100 / 125 ( +45% AP ) magic damage and applying Seastone Trident to enemies hit. Additional attacks within 5 seconds deal 10 / 15 / 20 / 25 ( +40% AP ) bonus magic damage . Killing a unit with the first attack reduces Rending Wave's cooldown to 1 second.",
          "cooldown": "Cooldown: 10 / 10 / 9 / 9",
          "cost": "Cost: 30 / 40 / 50 / 60",
          "icon": "abilities/fizz/rending-wave.webp",
          "icon_sha256": "5ac9257d110bec87214a4acd9bfbe1583ad69daea7a509c43a3ae8026de3080a"
        },
        {
          "slot": "E",
          "name": "Playful / Trickster",
          "description": "Vaults to target location, becoming untargetable while balanced on the trident. After 1.2 seconds, Fizz hops down with a large splash that deals 80 / 150 / 220 / 290 ( +80% AP ) magic damage and slows enemies hit by 40% / 45% / 50% / 55% for 2 seconds. Re-cast : Hop down early towards a direction, but deal damage in a smaller splash that does not slow enemies.",
          "cooldown": "Cooldown: 16 / 14 / 12 / 10",
          "cost": "Cost: 85 / 90 / 95 / 100",
          "icon": "abilities/fizz/playful-trickster.webp",
          "icon_sha256": "81bbbf301cc0a940e7b3303ea9e6fae4e1e8406497362af44b95e4ff19a1f693"
        },
        {
          "slot": "R",
          "name": "Chum the Waters",
          "description": "Launches a fish in target direction that attaches to the first champion hit and reveals them. After 2 seconds, the fish attracts a shark that knocks up its target and knocks away enemies around them. The farther the fish travels, the larger the shark it will attract, dealing 150 / 250 / 350 ( +60% AP ) to 300 / 400 / 500 ( +120% AP ) magic damage and slowing enemies hit by 40% to 80% based on the size of the shark. If the fish does not attach to a champion, it will flop on the ground and still attract a shark at its location.",
          "cooldown": "Cooldown: 85 / 70 / 55",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/fizz/chum-the-waters.webp",
          "icon_sha256": "ec4d9ee21ffb3479fd8700a85b43a62b300909a9a1f6680e2d745983a9a6d0a7"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "EWQEREEWRWWQRQQ"
        },
        {
          "label": "Source plan 2",
          "choices": "WQEEREEWRWWQRQQ"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            3,
            12,
            14,
            15
          ],
          [
            2,
            12,
            14,
            15
          ]
        ],
        "W": [
          [
            2,
            8,
            10,
            11
          ],
          [
            1,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            1,
            4,
            6,
            7
          ],
          [
            3,
            4,
            6,
            7
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ],
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10086.js",
          "snapshot": "sources/14faabf6140b7f6ce6cf2af4ebf3c7ad91f5763ab3e75110bcc9beb786020ebc",
          "sha256": "14faabf6140b7f6ce6cf2af4ebf3c7ad91f5763ab3e75110bcc9beb786020ebc",
          "retrieved_at": "2026-11-01T15:46:28.693427+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:28",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "海石三叉戟",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "淘气打击",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "撕裂之潮",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "古灵/精怪",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "巨鲨强袭",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Galio": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/galio",
        "snapshot": "sources/cd98450434a6164e0cfbbe0bb096a3a43b74556c7cfaa3d3eda189db2112c700",
        "sha256": "cd98450434a6164e0cfbbe0bb096a3a43b74556c7cfaa3d3eda189db2112c700",
        "retrieved_at": "2026-11-01T15:45:58.751338+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Colossal Smash",
          "description": "Enhances his next attack to gain 40% bonus Attack Speed and deal 15 ( + 10 x level + 100% AD +60% bonus MR ) magic damage to nearby enemies. Hitting an enemy champion or epic monster with an ability reduces this ability's cooldown by 3 seconds. This effect can only be triggered once per cast.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/galio/colossal-smash.webp",
          "icon_sha256": "39dd9363f51bd85d72b81e5a68440d1c95d0ddb02480f75efa740fe83a30cdf0"
        },
        {
          "slot": "Q",
          "name": "Winds of War",
          "description": "Fires two windblasts that deal 70 / 115 / 160 / 205 ( +75% AP ) magic damage and converge into a tornado. The tornado deals 8% ( +2% AP ) magic damage of target's maximum Health over 1.5 seconds.",
          "cooldown": "Cooldown: 12 / 10 / 9 / 7",
          "cost": "Cost: 75 / 75 / 75 / 75",
          "icon": "abilities/galio/winds-of-war.webp",
          "icon_sha256": "c38e5bca29bf9914c91fc282dd2e05ac54acedfc3e74ad501713b89593e3d319"
        },
        {
          "slot": "W",
          "name": "Shield of Durand",
          "description": "Passive : Every 12 seconds, upon taking damage, Galio gains a shield that absorbs 53 ( 8% / 12% / 16% / 20% HP ) magic damage for 3.5 seconds. Hold : Enters a defensive stance, slowing himself by 15% for up to 2 seconds. Takes 25% / 30% / 35% / 40% ( +4% AP + 8% bonus MR +1% bonus Health ) reduced magic damage and 12.5% / 15% / 17.5% / 20% ( +2% AP + 4% bonus MR +0.5% bonus Health ) reduced physical damage . Release : Deals 40 / 80 / 120 / 160 ( +55% AP ) magic damage to nearby enemies and taunts them for 0.5 - 1.5 seconds, increased with hold time.",
          "cooldown": "Cooldown: 18 / 17 / 16 / 15",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/galio/shield-of-durand.webp",
          "icon_sha256": "67991223a7a6cd237e9f884eb6feadb66512b0ee58da9a414c2f07d29d8ff9fb"
        },
        {
          "slot": "E",
          "name": "Justice Punch",
          "description": "Dashes forward until he hits an enemy champion or terrain, dealing 90 / 140 / 190 / 240 ( +80% AP ) magic damage to enemies and knocking them up for 0.75 seconds. Deals 85% damage to minions and monsters.",
          "cooldown": "Cooldown: 10 / 9 / 8 / 7",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/galio/justice-punch.webp",
          "icon_sha256": "d4791449c89e19ed54437fa4c7def125c40256b974db847839982d126679a215"
        },
        {
          "slot": "R",
          "name": "Hero's Entrance",
          "description": "Grants Shield of Durand's passive shield for 5 seconds to all allied champions near the target and designates the position as his landing spot. After 2.5 seconds Galio arrives at the location, dealing 150 / 250 / 350 ( +70% AP ) magic damage to nearby enemies and knocking them up for 0.75 seconds.",
          "cooldown": "Cooldown: 90 / 80 / 70",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/galio/hero-s-entrance.webp",
          "icon_sha256": "ce2d16d5b905eaa28ce9b39c436ab1d557bb2e5b5e1db8183cb09a3c1a21ef3b"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWEQRQQWRWWEREE"
        },
        {
          "label": "Source plan 2",
          "choices": "WEQWRWWEREEQRQQ"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ],
          [
            3,
            12,
            14,
            15
          ]
        ],
        "W": [
          [
            2,
            8,
            10,
            11
          ],
          [
            1,
            4,
            6,
            7
          ]
        ],
        "E": [
          [
            3,
            12,
            14,
            15
          ],
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ],
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10099.js",
          "snapshot": "sources/a21425c7cdd45deb3ff8a9fdaea21a53255faa64691d0dbfdb4ff44ba57c4e4c",
          "sha256": "a21425c7cdd45deb3ff8a9fdaea21a53255faa64691d0dbfdb4ff44ba57c4e4c",
          "retrieved_at": "2026-11-01T15:46:28.699316+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:28",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "巨像重击",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "战争罡风",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "杜朗护盾",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "正义冲拳",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "英雄登场",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Garen": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/garen",
        "snapshot": "sources/68aa387da8465303c794964ea8a6083e8281a386f32fa91ef85c2d9b7f1498ff",
        "sha256": "68aa387da8465303c794964ea8a6083e8281a386f32fa91ef85c2d9b7f1498ff",
        "retrieved_at": "2026-11-01T15:45:57.790020+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Perseverance",
          "description": "If Garen has not recently been struck by damage or enemy abilities within the last 5 seconds, he regenerates 1.2% - 4.5% (1% + champion level x 0.3) missing Health per second. Damage from minions and non-epic monsters does hot affect this effect.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/garen/perseverance.webp",
          "icon_sha256": "2f74b5ca6065b355007f248682f01e27e2442f5fee2ed056f3df8f4da4cf19ae"
        },
        {
          "slot": "Q",
          "name": "Decisive Strike",
          "description": "Breaks free from all slows, becoming immune to them for 0.5 seconds and gaining 35% Movement Speed for 2 / 2.5 / 3 / 3.5 seconds. The next attack within 3 seconds is empowered to deal an additional 40 / 80 / 120 / 160 ( +40% AD ) physical damage and silence the target for 1.5 seconds.",
          "cooldown": "Cooldown: 9 / 9 / 8 / 8",
          "cost": "",
          "icon": "abilities/garen/decisive-strike.webp",
          "icon_sha256": "3436751e8eff0c6acb4cdf676997aba18016c25e932c1ac46d57b1b7224679fa"
        },
        {
          "slot": "W",
          "name": "Courage",
          "description": "Passive : Gains 10% bonus Magic Resist and Armor . Active : Reduces incoming damage by 30% for 4 seconds. On cast, Garen gains 60% Tenacity for 1 second and a shield that absorbs 65 / 95 / 125 / 155 ( +20% bonus Health ) damage for 2.5 seconds. The shield starts decaying after 1 second.",
          "cooldown": "Cooldown: 18 / 16 / 14 / 12",
          "cost": "",
          "icon": "abilities/garen/courage.webp",
          "icon_sha256": "7f93d4bcbcc061abc6de5e27ed21bc6a2d420cf6e14a4e1d476cd93321080875"
        },
        {
          "slot": "E",
          "name": "Judgment",
          "description": "First Cast : Rapidly spins his sword for 3 seconds, dealing 13 / 17 / 21 / 25 ( +25% / 30% / 35% / 40% AD ) physical damage 8 times over the duration. Every 4 levels, the number of spins increases by 1 , up to 11 strikes. Recast : Ends Judgment early and reduces its cooldown by the duration remaining. Armor Shred ; When a champion is hit by 6 strikes, their Armor is shredded by 10% for 4.5 seconds. Every hit refreshes the effect duration. The target nearest to Garen takes 20% increased damage.",
          "cooldown": "Cooldown: 9 / 9 / 9 / 9",
          "cost": "",
          "icon": "abilities/garen/judgment.webp",
          "icon_sha256": "018a4ddd80b1210065969ff29ac3adb2954bfacf519e50c7c138939d4eedfaae"
        },
        {
          "slot": "R",
          "name": "Demacian Justice",
          "description": "Calls forth the might of Demacia to execute an enemy champion, dealing 150 / 250 / 350 +15% ( +0.12% bonus AD ) true damage of the target's missing health. Nearby enemies take 75 +7.5% ( +0.06% bonus AD ) true damage of their missing health. Deals a max of 600 damage to epic monsters.",
          "cooldown": "Cooldown: 70 / 65 / 60",
          "cost": "",
          "icon": "abilities/garen/demacian-justice.webp",
          "icon_sha256": "870a5f65459e0ce99972556e7d98739680b58844ab080b76c24349dc637e4c05"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "EQWEREEQRQQWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10001.js",
          "snapshot": "sources/e4d20e3b1c25fa034a200eebe0e3a94c4f03f46dc43510393139a1984f2e7a1f",
          "sha256": "e4d20e3b1c25fa034a200eebe0e3a94c4f03f46dc43510393139a1984f2e7a1f",
          "retrieved_at": "2026-11-01T15:46:28.700103+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:23",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "坚韧",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "致命打击",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "勇气",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "审判",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "德玛西亚正义",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Gnar": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/gnar",
        "snapshot": "sources/45adda4faae9fe9ce0780c73b4ae9f45b05bd3c6a4a82b87643482b6c3d021ec",
        "sha256": "45adda4faae9fe9ce0780c73b4ae9f45b05bd3c6a4a82b87643482b6c3d021ec",
        "retrieved_at": "2026-11-01T15:45:57.860896+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Rage Gene",
          "description": "Dealing or taking damage generates Rage . At max Rage , Gnar's abilities will change, and his next ability transforms him into Mega Gnar for 15 seconds. Mini Gnar : Gains Movement Speed ( max 20 ), Attack Range (max 150 ), and Attack Speed (max 90% ) . Mega Gnar : Gains 100 Health ( max 900 ), 5 base Armor (max 60 ), 5 base Magic Resist (max 70 ), and 8 base Attack Damage ( max 50 ). When dealing or taking damage as Mini Gnar , gains 3 Rage for the next 2 seconds. Attacking enemy champions generates 2 Rage , and attacking non-champions generates 1 Rage . At max Rage , Gnar automatically transforms after 4 seconds if he does not use an ability. Rage decays after 13 seconds if Gnar has not dealt or taken damage during this time. Gnar cannot generate Rage for 15 seconds after he transforms back from Mini Gnar to Mega Gnar . Mini Gnar and Mega Gnar share all ability cooldowns except Hyper 's.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/gnar/rage-gene.webp",
          "icon_sha256": "30fad85cb0a7647398a75e75d77232d95bbfe28d89a2a7812aa4a525de267059"
        },
        {
          "slot": "Q",
          "name": "Boomerang Throw / Boulder Toss",
          "description": "Mini Gnar : Throws a boomerang that deals 5 / 55 / 105 / 155 ( +125% AD ) physical damage and slows enemies by 20% / 25% / 30% / 35% for 2 seconds. The boomerang returns to Gnar after hitting the target, dealing 50% damage to subsequent enemies. Each enemy can only be hit once. Catching the boomerang reduces its cooldown by 40% . Mega Gnar : Throws a boulder, dealing 40 / 95 / 150 / 205 ( +140% AD ) physical damage and slowing the target hit and nearby enemies by 35% / 40% / 45% / 50% for 2 seconds. Picking up the boulder within 5 seconds reduces its cooldown by 70% . The boomerang generates 1 Rage when it hits a champion and 1 Rage when it hits a non-champion. Only the first hit on each target generates Rage .",
          "cooldown": "Cooldown: 16 / 14 / 12 / 10",
          "cost": "",
          "icon": "abilities/gnar/boomerang-throw-boulder-toss.webp",
          "icon_sha256": "4410ea6008f04b2b0718958d1be9cf2d85f12af9efa1927e649b5c3883d0a68f"
        },
        {
          "slot": "W",
          "name": "Hyper / Wallop",
          "description": "Mini Gnar (Passive) : Every third attack or ability on the same enemy deals an additional 10 / 20 / 30 / 40 ( +100% AP ) plus 7% / 9% / 11% / 13% of the target's max Health as magic damage and grants 20% Movement Speed that decays over 3 seconds. Mini Gnar (Active) : Gains 35% / 40% / 45% / 50% Attack Speed for 6 seconds. Mega Gnar : Smashes down on the area in front of him, dealing 45 / 85 / 125 / 165 ( +100% AD ) physical damage in an area and stunning for 1.25 seconds. Gain Hyper's passive Movement Speed bonus upon leaving Mega Gnar form. Mini Gnar (Passive) deals up to 300 damage to monsters.",
          "cooldown": "Cooldown: 20 / 19 / 18 / 17",
          "cost": "",
          "icon": "abilities/gnar/hyper-wallop.webp",
          "icon_sha256": "4ce0d09438297871f3920e5c54b51b8f444ca1a402989e28f99eba270cc5dfde"
        },
        {
          "slot": "E",
          "name": "Hop / Crunch",
          "description": "Mini Gnar : Leaps to a location. If Gnar lands on a unit, he will bounce off it, traveling further in the same direction. Deals 50 / 95 / 140 / 185 ( +6% of his max Health ) physical damage and briefly slows the unit landed on by 80% if they are an enemy. Mega Gnar : Leaps to a location, dealing 80 / 125 / 170 / 215 ( +6% of his max Health ) physical damage to nearby enemies on landing. Enemies Gnar lands directly on top of are slowed briefly by 80% . If casting Hop transforms Gnar into Mega Gnar , Mega Gnar will also bounce off the unit he lands on and travel further.",
          "cooldown": "Cooldown: 21 / 18 / 15 / 12",
          "cost": "",
          "icon": "abilities/gnar/hop-crunch.webp",
          "icon_sha256": "e1704f50113a565a142516a02383e50f5dabe70f7b1dcc05d04f4ae44c3b5b36"
        },
        {
          "slot": "R",
          "name": "GNAR!",
          "description": "Mini Gnar (Passive) : Hyper's Movement Speed bonus is increased to 35% / 50% / 65% . Mega Gnar : Knocks back enemies around him, dealing 200 / 300 / 400 ( +50% bonus AD +100% AP ) physical damage and slowing them by 45% for 1.25 / 1.5 / 1.75 seconds. GNAR! 's damage to enemies knocked back into a wall increases by 50% and stunning them instead of slowing.",
          "cooldown": "Cooldown: 60 / 45 / 30",
          "cost": "",
          "icon": "abilities/gnar/gnar.webp",
          "icon_sha256": "2da55b24f784342b16590a7e514604b9185c03ca487897e2356d37ff0da08d87"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWEQRQQWRWWEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [
        "Mini and Mega forms share Q/W/E ranks. GNAR! still takes ordinary ultimate upgrade points; transformation is controlled by Rage, not a separate skill point."
      ],
      "combat_sync": {
        "mapped_controls": [
          {
            "control_key": "hyper_rank",
            "slot": "W",
            "rank_basis": "learned",
            "ability": "Hyper / Wallop",
            "engine_semantics": "gnar_hyper and gnar_hyper_active; Mini form only",
            "initial_rank": 0,
            "source": "champion.source (exact slot/name); canonical champion_mechanics.json rule identity",
            "engine_evidence": "game_rules.py rank consumers and champion_mechanics.json explicit rule parameters"
          }
        ],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10078.js",
          "snapshot": "sources/147120d97919fffe546995b8d4d88be911ba83cb25b07679d634f3f3f08fb186",
          "sha256": "147120d97919fffe546995b8d4d88be911ba83cb25b07679d634f3f3f08fb186",
          "retrieved_at": "2026-11-01T15:46:28.726111+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:27",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "狂怒基因",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "投掷回力标",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "亢奋",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "轻跳",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "呐啊！",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Gragas": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/gragas",
        "snapshot": "sources/0240a6346e31f50454721253a44aa8b0a54ac0166e38e53521403e2fb648aef6",
        "sha256": "0240a6346e31f50454721253a44aa8b0a54ac0166e38e53521403e2fb648aef6",
        "retrieved_at": "2026-11-01T15:45:58.790881+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Happy Hour",
          "description": "Casting an ability restores 62 ( 8.5% max HP ) Health .",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/gragas/happy-hour.webp",
          "icon_sha256": "9c1f49e043ae1d5761b566b1fe7a19ea49cb11e199deaa6002894a5c7bcf9de7"
        },
        {
          "slot": "Q",
          "name": "Barrel Roll",
          "description": "Rolls a cask to target location that explodes upon re-casting or after 3 seconds. Enemies hit take 65 / 120 / 175 / 230 ( +70% AP ) magic damage and are slowed by 30% / 35% / 40% / 45% for 2 seconds. The damage and slow amount increase over the first 1.5 seconds, by up to 150% . The cask reveals the area and deals 90% damage to minions.",
          "cooldown": "Cooldown: 9 / 8 / 7 / 6",
          "cost": "Cost: 65 / 70 / 75 / 80",
          "icon": "abilities/gragas/barrel-roll.webp",
          "icon_sha256": "64007b42ca7691fba138fdeb23d8ef9e9000f3c9493e3e2a730182d2b4063eb8"
        },
        {
          "slot": "W",
          "name": "Drunken Rage",
          "description": "Reduces damage taken by 11% / 13% / 15% / 17% ( +0.04% AP ) for 2.5 seconds. The next attack within 5 seconds after drinking is empowered to splash enemies for bonus 35 / 70 / 105 /140 ( +70% AP ) +8% magic damage of their max Health.",
          "cooldown": "Cooldown: 5 / 5 / 5 / 5",
          "cost": "Cost: 20 / 20 / 20 / 20",
          "icon": "abilities/gragas/drunken-rage.webp",
          "icon_sha256": "adc6d94e4cb2c03c6fa35f57589eb43053c939bef43fa9809bcebe8df3b08a80"
        },
        {
          "slot": "E",
          "name": "Body Slam",
          "description": "Charges forward, colliding with the first enemy hit to deal 70 / 135 / 200 / 265 ( +70% AP ) magic damage to nearby enemies. Enemies hit are also bumped backwards, stunning them for 1 second. Body Slam's cooldown is reduced by 3 seconds if it successfully collides with an enemy.",
          "cooldown": "Cooldown: 15 / 14 / 13 / 12",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/gragas/body-slam.webp",
          "icon_sha256": "40c9c582d319ba499ad0c1ed751ed78027db769e9ba6556949f1e694e74ef8ac"
        },
        {
          "slot": "R",
          "name": "Explosive Cask",
          "description": "Hurls a potent cask that explodes when it lands, dealing 200 / 300 / 400 ( +70% AP ) magic damage and knocking enemies away from the explosion's center. The cask has a fixed travel time.",
          "cooldown": "Cooldown: 85 / 70 / 55",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/gragas/explosive-cask.webp",
          "icon_sha256": "3edecf7b759ff4e30ddbe8864bf2f15ef47edc9ce6f5510583e85bbbb3c044b3"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWQERQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            3,
            6,
            7
          ]
        ],
        "W": [
          [
            2,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            4,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10089.js",
          "snapshot": "sources/f3968b8da74fcf68251bb7e6ec5762ba8a9d61fcf580c9267d212eebe34d5363",
          "sha256": "f3968b8da74fcf68251bb7e6ec5762ba8a9d61fcf580c9267d212eebe34d5363",
          "retrieved_at": "2026-11-01T15:46:28.954906+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:28",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "欢乐时光",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "滚动酒桶",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "醉酒狂暴",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "肉弹冲击",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "爆破酒桶",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Graves": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/graves",
        "snapshot": "sources/f3d654f1ec364e58047906b99c9a8077c6568eb703cecb3d6e1f561eab02fff1",
        "sha256": "f3d654f1ec364e58047906b99c9a8077c6568eb703cecb3d6e1f561eab02fff1",
        "retrieved_at": "2026-11-01T15:45:58.901713+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "New Destiny",
          "description": "Graves' shotgun has some unique properties: Double Barrel : Graves must reload when he runs out of ammo. Attack Speed reduces reload time slightly, but reduces time between attacks dramatically. 12 Gauge : Attacks fire 4 bullets. Units hit take 72% AD physical damage +24% for additional bullets. Critical strikes fire 6 bullets, 150% damage each and increase each bullet's damage by 30% . Structures only take 75% damage. Buckshot : Bullets cannot pass through enemy units. Non-champions struck by multiple bullets are knocked back slightly.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/graves/new-destiny.webp",
          "icon_sha256": "f567684c8fc18531662988cc218df46fd7010ca9416d9202dcb1c061ec5a9fb2"
        },
        {
          "slot": "Q",
          "name": "End of the Line",
          "description": "Fires a powder round that deals 70 / 90 / 110 / 130 ( +80%bonus AD ) physical damage and then detonates after 1 second to deal an additional 80 / 130 / 180 / 230 ( +110% / 130% / 150% / 170% bonus AD ) physical damage . Detonates in 0.25 seconds if the round hits terrain. Deals 110% damage against monsters.",
          "cooldown": "Cooldown: 10 / 9 / 8 / 7",
          "cost": "Cost: 65 / 70 / 75 / 80",
          "icon": "abilities/graves/end-of-the-line.webp",
          "icon_sha256": "c22b48fa57e57095b2e49cc5ee98b110118c9063eb56f397f4d0ecde882c06cb"
        },
        {
          "slot": "W",
          "name": "Smoke Screen",
          "description": "Throws a canister that creates a cloud of smoke for 4 seconds. Enemies within the smoke cannot see outside of it. Enemies caught in the initial impact take 60 / 125 / 190 / 255 ( +60% AP ) magic damage and are slowed by 50% for 0.5 seconds.",
          "cooldown": "Cooldown: 20 / 18 / 16 / 14",
          "cost": "Cost: 75 / 80 / 85 / 90",
          "icon": "abilities/graves/smoke-screen.webp",
          "icon_sha256": "55b98de125e0edbf1fadefe093003a45c4165962c43fd514bb8d49c8fa28402e"
        },
        {
          "slot": "E",
          "name": "Quickdraw",
          "description": "Dashes in a direction, reloading one shell and granting True Grit for 4 seconds. True Grit grants 13 / 18 / 23 / 28 Armor ( stacks 6 times) and refreshes when damaging non-minions. Dashing towards an enemy champion grants 2 stacks of True Grit . Each bullet hit reduces Quickdraw's cooldown by 0.5 seconds.",
          "cooldown": "Cooldown: 13 / 13 / 13 / 13",
          "cost": "Cost: 40 / 40 / 40 / 40",
          "icon": "abilities/graves/quickdraw.webp",
          "icon_sha256": "e91ffa0309513c20e66dfac983cb82e925b38a3788de35423cd323f0ff05bfd8"
        },
        {
          "slot": "R",
          "name": "Collateral Damage",
          "description": "Fires an explosive shell that deals 300 / 450 / 600 ( +150% bonus AD ) physical damage and knocks Graves back from recoil. The shell explodes upon hitting an enemy champion or reaching the end of its range, dealing 200 / 320 / 440 ( +120% bonus AD ) physical damage in a cone. Enemies damaged by the shell's initial impact do not take damage from the explosive cone.",
          "cooldown": "Cooldown: 75 / 60 / 45",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/graves/collateral-damage.webp",
          "icon_sha256": "5e989149d7d177a7d5ebaba27318abf81b9df5a3a5c1a923f2bf0cf953a461ba"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEQWRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            3,
            6,
            7
          ]
        ],
        "W": [
          [
            4,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [
          {
            "control_key": "quickdraw_rank",
            "slot": "E",
            "rank_basis": "learned",
            "ability": "Quickdraw",
            "engine_semantics": "graves_shotgun grit armor per stack",
            "initial_rank": 0,
            "source": "champion.source (exact slot/name); canonical champion_mechanics.json rule identity",
            "engine_evidence": "game_rules.py rank consumers and champion_mechanics.json explicit rule parameters"
          }
        ],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10072.js",
          "snapshot": "sources/1532fbbef1b881f86eb68539be008075d842ec61a677335671af211b07eed385",
          "sha256": "1532fbbef1b881f86eb68539be008075d842ec61a677335671af211b07eed385",
          "retrieved_at": "2026-11-01T15:46:28.957346+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:27",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "新命运",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "穷途末路",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "烟幕弹",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "快速拔枪",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "终极爆弹",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Gwen": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/gwen",
        "snapshot": "sources/fa178277232c5869a299340f05c044bf1dff451803040042c79917281eb794ff",
        "sha256": "fa178277232c5869a299340f05c044bf1dff451803040042c79917281eb794ff",
        "retrieved_at": "2026-11-01T15:45:58.091516+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Thousand Cuts",
          "description": "Attacks deal bonus 1% ( +0.005% AP ) magic damage of the target's max Health. Heals for 70% of the damage this ability deals to champions up to 12 ( +7% AP ). Deals a max of 2 ( +3% AP ) magic damage against monsters.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/gwen/thousand-cuts.webp",
          "icon_sha256": "624b2d8fb45bb44f675723fc6e5c6284423ec1308e5d19125edd294f39bce95d"
        },
        {
          "slot": "Q",
          "name": "Snip Snip!",
          "description": "Passive : Gains 1 stack per attack hit (max 4 , lasts 6 seconds). Active : Snips her scissors twice, snipping an extra time for each stack consumed. Each snip deals 14 / 18 / 22 / 26 ( +6% AP ) magic damage with the final snip dealing 70 / 90 / 110 / 130 ( +30% AP ) magic damage instead. The center of each strike deals true damage instead and applies Thousand Cuts . Deals 100% damage to monsters.",
          "cooldown": "Cooldown: 7 / 6 / 5 / 4",
          "cost": "Cost: 35 / 35 / 35 / 35",
          "icon": "abilities/gwen/snip-snip.webp",
          "icon_sha256": "ed12426bef5eb9708354648b38dedf3fa09439fcfbef6fa5006c18799de65e4d"
        },
        {
          "slot": "W",
          "name": "Hallowed Mist",
          "description": "Summons the Hallowed Mist for 4 seconds, making Gwen untargetable to enemies outside the zone while inside. Gwen gains 18 / 20 / 22 / 24 ( +5% AP ) Armor and Magic Resist inside the Mist. The Mist will move to Gwen the first time she attempts to leave.",
          "cooldown": "Cooldown: 17 / 16 / 15 / 14",
          "cost": "Cost: 60 / 60 / 60 / 60",
          "icon": "abilities/gwen/hallowed-mist.webp",
          "icon_sha256": "cb63355db25522440ba0a32f471f13e39cb279d918c4f568ed498c5521f06691"
        },
        {
          "slot": "E",
          "name": "Skip 'n Slash",
          "description": "Dashes and enhances her attacks for 4 seconds. Enhanced attacks gain 20% / 40% / 60% / 80% Attack Speed , 10 ( +18% AP ) magic damage on-hit and 100 Range. The first enhanced attack to hit a champion or minion refunds 50% of this ability's coodown.",
          "cooldown": "Cooldown: 14 / 12 / 11 / 9",
          "cost": "Cost: 35 / 35 / 35 / 35",
          "icon": "abilities/gwen/skip-n-slash.webp",
          "icon_sha256": "fa23b7e521202cfa047c0b27ca56118244ca88ec59e227be74435f65744853e4"
        },
        {
          "slot": "R",
          "name": "Needlework",
          "description": "First Cast : Hurl a needle that deals 35 / 50 / 65 ( +10% AP ) magic damage , slows by 35% / 40% / 45% for 1.5 seconds, and applies Thousand Cuts to all enemies hit. Needlework can be re-cast 2 additional times. Second Cast : Fires 3 needles, dealing a total of 105 / 150 / 195 ( +30% AP ) magic damage . Third Cast : Fires 5 needles, dealing a total of 175 / 250 / 325 ( +50% AP ) magic damage .",
          "cooldown": "Cooldown: 75 / 65 / 55",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/gwen/needlework.webp",
          "icon_sha256": "cbfde6acf5f2d3b32274d7e84554f360c2cc1d371407be84aa775cf26a122d35"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWQRQQEREEWRWW"
        },
        {
          "label": "Source plan 2",
          "choices": "QEQWRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ],
          [
            1,
            3,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ],
          [
            4,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ],
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ],
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10054.js",
          "snapshot": "sources/ddf5ae813c920014f6b8e785c154b9a919619d5a7413622318b6b2f0b8da7985",
          "sha256": "ddf5ae813c920014f6b8e785c154b9a919619d5a7413622318b6b2f0b8da7985",
          "retrieved_at": "2026-11-01T15:46:28.956157+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:26",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "千穿百孔",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "快刀剪乱",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "丝缕缠流",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "断续疾走",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "引针簇射",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Hecarim": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/hecarim",
        "snapshot": "sources/35299fe26a4c5124630a0249f2ec4fe063532f2201c950cb2b1345c0af91f351",
        "sha256": "35299fe26a4c5124630a0249f2ec4fe063532f2201c950cb2b1345c0af91f351",
        "retrieved_at": "2026-11-01T15:45:58.974910+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Warpath",
          "description": "Gains Attack Damage ( 12% of bonus Movement Speed ).",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/hecarim/warpath.webp",
          "icon_sha256": "5f1752269e65e40d5d7594e59b6a85d0c082d36a5fdc5b8553197072d55247ce"
        },
        {
          "slot": "Q",
          "name": "Rampage",
          "description": "Charges his halberd for 0.75 seconds, increasing the area Hecarim deals damage to. Automatically casts when fully charged, dealing 5 / 15 / 25 / 35 ( +110% AD ) physical damage. If Hecarim hits an enemy champion or a large monster with a full charge, he critically strikes them for 120% damage and gains a 18% Movement Speed bonus that decays over 3 seconds. This also empowers Hecarim's next Rampage within the next 8 seconds to deal 120% damage. Deals 60% damage to minions.",
          "cooldown": "Cooldown: 5 / 4 / 4 / 3",
          "cost": "Cost: 28 / 32 / 36 / 40",
          "icon": "abilities/hecarim/rampage.webp",
          "icon_sha256": "2186c3346f1fb7b1bb50ddaafe67a36a0aeaf71facf0d5895f2f838e3a70a6a8"
        },
        {
          "slot": "W",
          "name": "Spirit of Dread",
          "description": "Gains 6 / 12 / 18 / 24 Armor and Magic Resist , and deals 12 / 18 / 24 / 30 ( +20% AP ) magic damage to nearby enemies once every 0.5 seconds for 4 seconds. For every enemy hit, he heals for 5 ( +1% bonus HP ). He also heals for 20% ( +0.02% bonus AD ) of the damage he deals to the targets Healing gained from damaging minions and monsters is reduced by 50% and capped at 90 Health .",
          "cooldown": "Cooldown: 16 / 15 / 14 / 13",
          "cost": "Cost: 50 / 60 / 70 / 80",
          "icon": "abilities/hecarim/spirit-of-dread.webp",
          "icon_sha256": "2ba2dd4d81c795cba4f5206adde5d50595a53376e4f3da1b3b567fc377b0b2f0"
        },
        {
          "slot": "E",
          "name": "Devastating Charge",
          "description": "Gains 25% Movement Speed , which increases to 55% over 4 seconds. Hecarim dashes toward the enemy if his next attack is within 5 seconds, dealing 5 / 10 / 15 / 20 ( +30% bonus AD ) physical damage , knocking the target back, and then pursuing them immediately after. Enemies hit are revealed. While Onslaught of Shadows is in effect, the remaining duration of this ability is paused.",
          "cooldown": "Cooldown: 18 / 17 / 16 / 15",
          "cost": "Cost: 60 / 60 / 60 / 60",
          "icon": "abilities/hecarim/devastating-charge.webp",
          "icon_sha256": "b65db9b89e0b25b6a9b2a58e42a3ad0a6e9c3bb6d466be4790096caabd8c678f"
        },
        {
          "slot": "R",
          "name": "Onslaught of Shadows",
          "description": "Hecarim summons spectral riders and charges forward, dealing 150 / 250 / 350 ( +100% AP ) magic damage and revealing enemies hit. Hecarim unleashes a shockwave at the end of the charge that fears for between 0.75 to 1.5 seconds, increased by charge distance.",
          "cooldown": "Cooldown: 100 / 85 / 70",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/hecarim/onslaught-of-shadows.webp",
          "icon_sha256": "7618404a87ca3532118dfdd9b22d501b2af48ecb07953d9d36b9de517dc29a37"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWQERQQWRWWEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            3,
            6,
            7
          ]
        ],
        "W": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            4,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10019.js",
          "snapshot": "sources/7bbb82ce56558f216d92a0101ca9a9244e1be0b7e314488f46860d250381199c",
          "sha256": "7bbb82ce56558f216d92a0101ca9a9244e1be0b7e314488f46860d250381199c",
          "retrieved_at": "2026-11-01T15:46:28.956773+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:24",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "征战之路",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "暴走",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "恐惧之灵",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "毁灭冲锋",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "暗影冲击",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Heimerdinger": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/heimerdinger",
        "snapshot": "sources/314f5f967615da823cc7c69d6b194261f6c11c86fd3a77bf5ea946ef3a7a86fb",
        "sha256": "314f5f967615da823cc7c69d6b194261f6c11c86fd3a77bf5ea946ef3a7a86fb",
        "retrieved_at": "2026-11-01T15:45:59.053686+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Hextech Affinity",
          "description": "Gains 20% Movement Speed while near allied turrets and turrets deployed by Heimerdinger.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/heimerdinger/hextech-affinity.webp",
          "icon_sha256": "39efd869ed5fab0af6d2c07e52de47e0508c8b81645414a41004da728f44f0c5"
        },
        {
          "slot": "Q",
          "name": "H-28G Evolution Turret",
          "description": "Constructs a turret that slowly build up charge and attacks nearby enemies. The turret deals 5 / 10 / 15 / 20 ( +25% AP ) magic damage on hit. At max charge, it fires a beam that deals 25 / 45 / 65 / 85 ( +55% AP ) magic damage . Heimerdinger can have a 3 H-28G Evolution Turrets active at once. If Heimerdinger gets too far away, his turrets will become dormant. UPGRADE!!! : Technological enhancement upgrades this ability to H-28Q Apex Turret . H-28G Evolution Turret Stats: Base Health : 110 ( +8% to 50% AP ) Base Armor : 20 - 90 (based on level) Base Magic Resist : 25 Deals 40% damage to monsters.",
          "cooldown": "Cooldown: 1 / 1 / 1 / 1",
          "cost": "Cost: 20 / 20 / 20 / 20",
          "icon": "abilities/heimerdinger/h-28g-evolution-turret.webp",
          "icon_sha256": "457cd9778e6c56bdcd716a7171b14a1aafb0bedff4f317ccd7fb7cc6e0df11d8"
        },
        {
          "slot": "W",
          "name": "Hextech Micro-Rockets",
          "description": "Unleashes a barrage of 5 rockets that deal 60 / 85 / 110 / 135 ( +60% AP ) magic damage to the first enemy hit. Nearby Turrets gain 20% charge for every rocket that hits a champion. Additional rocket hits after the first to the same champion or monster only deal 20% magic damage . This damage is increased to 60% for minions. UPGRADE!!! : Technological enhancement upgrades this ability to Hextech Rocket Swarm .",
          "cooldown": "Cooldown: 9 / 8 / 7 / 6",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/heimerdinger/hextech-micro-rockets.webp",
          "icon_sha256": "b15df2dbffc380817338824b008a1e2f5f1085910949546169ce2c0f35f0b29f"
        },
        {
          "slot": "E",
          "name": "CH-2 Electron Storm Grenade",
          "description": "Hurls a grenade that deals 70 / 120 / 170 / 220 ( +60% AP ) magic damage in a target area and slows by 35% for 2 seconds. Enemies in the center are also stunned for 1.25 seconds. Hitting a champion fully charges nearby turrets. UPGRADE!!! : Technological enhancement upgrades this ability to CH-3X Lightning Grenade .",
          "cooldown": "Cooldown: 10 / 10 / 10 / 10",
          "cost": "Cost: 85 / 85 / 85 / 85",
          "icon": "abilities/heimerdinger/ch-2-electron-storm-grenade.webp",
          "icon_sha256": "3ac2877bfd110f798be271e6b82a6a48a2b0969d4894273574af13ffbe36bee3"
        },
        {
          "slot": "R",
          "name": "UPGRADE!!!",
          "description": "Active : Upgrades Heimerdinger's next basic ability. H-28Q Apex Turret : Places an upgraded turret for 10 seconds, dealing 80 / 100 / 120 ( +35% AP ) magic damage per shot, increased to 100 / 140 / 180 ( +60% AP ) magic damage at max charge. The turret slows for 1 second on hit. Hextech Rocket Swarm : Fires 4 waves of rockets. Each rocket deals 135 ( +45% AP ) magic damage to the first enemy hit. Additional rocket hits after the first to the same champion or monster only deal 25% magic damage per hit. Once the target is hit by five rockets, the damage decays further. Rockets deal full damage to minions. The rocket swarm deals a maximum of 524 ( +175% AP ) magic damage to each enemy champion or monster. CH-3X Lightning Grenade : Throws a bouncing grenade that discharges 3 times, each dealing 100 ( +60% AP ) magic damage . The stun and slow areas are larger, and the grenade now slows enemies by 40% . Recast : Cancels this ability.",
          "cooldown": "Cooldown: 75 / 66 / 56",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/heimerdinger/upgrade.webp",
          "icon_sha256": "099c0a53aa354fe4294b103cd750594338c9741c7c23866b5a8ca2fc7b33d84a"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWQRQQWRWWEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            2,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10127.js",
          "snapshot": "sources/d7cd3ec494bebc77394e7d6aa1a6de6ebd1c6d953c4a67e0854451345a46e3b9",
          "sha256": "d7cd3ec494bebc77394e7d6aa1a6de6ebd1c6d953c4a67e0854451345a46e3b9",
          "retrieved_at": "2026-11-01T15:46:28.957139+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:30",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "海克斯科技亲和",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "H-28 G 进化炮台",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "海克斯科技微型导弹",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "CH-2电子风暴手雷",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "升级！！！",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Hwei": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/hwei",
        "snapshot": "sources/71781caba8507e3d2fcaaacbbcdd55dc924342c5b07ca7148052fbc6d35aff55",
        "sha256": "71781caba8507e3d2fcaaacbbcdd55dc924342c5b07ca7148052fbc6d35aff55",
        "retrieved_at": "2026-11-01T15:45:59.231964+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Signature of the Visionary",
          "description": "Hwei's damaging abilities against enemy champions mark them with his signature for 4 seconds. Hitting a marked enemy with a second damaging ability consumes the mark to create an explosion underneath them that detonates after a short delay, dealing 30 - 280 ( +25% AP ) magic damage to all enemies in range. Each ability can only trigger this effect once per target.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/hwei/signature-of-the-visionary.webp",
          "icon_sha256": "777885b6728d873406db0773403bb93daa6f1a444cb5a6edd58d6ad059ad1f25"
        },
        {
          "slot": "Q",
          "name": "Subject: Disaster",
          "description": "Paints visions of disaster that deal large damage to enemies. Devastating Fire : Paints a blazing fireball that flies out in the target direction. It explodes o the first enemy hit, dealing 50 / 85 / 120 / 155 ( +70% AP ) plus 4% / 5% / 6% / 7% of the target's max Health as magic damage to all enemies in an area. Severing Bolt : Paints a long-range, delayed lightning bolt at the target location, dealing 80 / 110 / 140 / 170 ( +30% AP ) magic damage . If the target is immobilized or only one target is struck, they take increased damage based on their missing Health , up to 200 / 330 / 490 / 680 ( +75% AP ) magic damage . Molten Fissure : Paints a field of exploding volcanic eruptions, creating lingering lava in its path. Every eruption deals 20 / 35 / 50 / 65 ( +30% AP ) magic damage to enemies hit. Enemies in the lava area are dealt 20 / 40 / 60 / 80 ( +30% AP ) magic damage per second and slowed by 30% . Each lava pool lasts 2.5 seconds.",
          "cooldown": "Cooldown: 9 / 8 / 7 / 6",
          "cost": "Cost: 80 / 80 / 80 / 80",
          "icon": "abilities/hwei/subject-disaster.webp",
          "icon_sha256": "46930d081882300637d2ebe06df9fd13acbd1720ba44626b6c7727e4d8a36a52"
        },
        {
          "slot": "W",
          "name": "Subject: Serenity",
          "description": "Paints visions of serenity that provide utility for himself and allied champions. Fleeting Current : Paints a current of swift waters in a line for 4 / 4.5 / 5 / 5.5 seconds, that grants 30% / 32% / 35% / 37% ( +3% AP ) Movement Speed to himself and allied champions. Pool of Reflection : Paints a protective pool at the target location that lasts 3 seconds, granting a shield that absorbs 50 / 70 / 90 / 110 ( +30% AP ) damage to allied champions in the area. The shield increases over 1.5 seconds, up to an increase of 98 / 118 / 138 / 158 ( +60% AP ) damage . Shields granted to allied champions other than Hwei are reduced by 15% . Stirring Lights : Paints three swirling lights that circle him, causing his next three abilities or attacks to deal 20 / 30 / 40 / 50 ( +15% AP ) bonus magic damage and restore 45 / 50 / 55 / 60 Mana on hit.",
          "cooldown": "Cooldown: 16 / 16 / 15 / 15",
          "cost": "Cost: 90 / 90 / 90 / 90",
          "icon": "abilities/hwei/subject-serenity.webp",
          "icon_sha256": "f5dbdc67f6aa55e14cf218991d865b803cf197eb73baca5a212967239dd8d0d2"
        },
        {
          "slot": "E",
          "name": "Subject: Torment",
          "description": "Paints visions of torment that control enemies. Grim Visage : Launches a terrifying face that strikes the first enemy hit, fearing them for 1 / 1.125 / 1.25 / 1.375 seconds and dealing 70 / 120 / 170 / 220 ( +70% AP ) magic damage . Gaze of the Abyss : Paints an abyssal eye at the target location that grants vision, locking onto the nearest enemy champion and launching a homing missile at them. The missile roots the first enemy hit for 1.25 / 1.5 / 1.75 / 2 seconds, dealing 70 / 120 / 170 / 220 ( +70% AP ) magic damage and revealing them for 2.5 seconds. Crushing Maw : Paints crushing jaws that deal 60 / 110 / 160 / 210 ( +60% AP ) magic damage to enemies hit and drag them toward the center, applying a 40% / 50% / 60% / 70% slow that decays over 1.25 seconds.",
          "cooldown": "Cooldown: 12 / 11 / 10 / 9",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/hwei/subject-torment.webp",
          "icon_sha256": "07dd28b404d034cab2dbe6f60966310d53b09076f9ccad9cc7f0d974113421ee"
        },
        {
          "slot": "R",
          "name": "Wash Brush",
          "description": "Hwei clears his paintbrush and returns to base abilities. Cancels do not cost mana or cooldowns.",
          "cooldown": "Cooldown: 0 / 0 / 0",
          "cost": "",
          "icon": "abilities/hwei/wash-brush.webp",
          "icon_sha256": "1ef4052aaba228c1eae6a7e09622f9a7d5ae3b6d9d2e57d602cff979eb4ef448"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWQRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [
        "Subject spells share their Q/W/E subject’s rank; the nine resulting spells do not receive nine independent point tracks."
      ],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10147.js",
          "snapshot": "sources/58126d1d471997c7b1dd05e11b08fddb8d1cb4abec56ad7ab9c8c7a305d8f520",
          "sha256": "58126d1d471997c7b1dd05e11b08fddb8d1cb4abec56ad7ab9c8c7a305d8f520",
          "retrieved_at": "2026-11-01T15:46:28.979114+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:31",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "落款",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "主题：灾",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "主题：靖",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "主题：悚",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "焚心绚华绘",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Irelia": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/irelia",
        "snapshot": "sources/67f05018276db26dcbb36eb4117aa20343996a32a945abd9f618a629a29adb76",
        "sha256": "67f05018276db26dcbb36eb4117aa20343996a32a945abd9f618a629a29adb76",
        "retrieved_at": "2026-11-01T15:45:59.023365+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Ionian Fervor",
          "description": "Hitting enemies with abilities grant 3% - 17% bonus Attack Speed for 6 seconds, stacking up to 4 times. At max stacks attacks deal an additional 25 - 150 ( +30% bonus AD ) magic damage to champions and minions on hit . Attacking enemy champions refreshes the duration. An ability grants multiple stacks upon hitting multiple champions.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/irelia/ionian-fervor.webp",
          "icon_sha256": "df09220ea7c7e5cefc0219ca929ff2a5151fc16b526fc29f86a6d3178e8886e8"
        },
        {
          "slot": "Q",
          "name": "Bladesurge",
          "description": "Dashes through an enemy, dealing 10 / 40 / 70 / 100 ( +65% AD ) physical damage and healing herself for 11% / 14% / 17% / 20% AD . Bladesurge's cooldown is refreshed if the target was Marked or dies to Bladesurge. When aimed, Bladesurge will prioritize targets it will reset on. Deals 150% damage to minions.",
          "cooldown": "Cooldown: 9 / 8 / 7 / 6",
          "cost": "Cost: 20 / 20 / 20 / 20",
          "icon": "abilities/irelia/bladesurge.webp",
          "icon_sha256": "cdae6c22b89a8ec60b708aa2143a6be584117b0b3c97a78494e84b815f9db4e2"
        },
        {
          "slot": "W",
          "name": "Defiant Dance",
          "description": "Hold : Defends with her blades for up to 1.5 seconds, taking 60% ( +7% AP ) reduced damage. Release : Whips the blades forward, dealing 20 / 35 / 50 / 65 ( +50% AD +40% AP ) physical damage , increased by up to 100% with charge time. Cannot be interrupted.",
          "cooldown": "Cooldown: 14 / 13 / 12 / 11",
          "cost": "Cost: 75 / 80 / 85 / 90",
          "icon": "abilities/irelia/defiant-dance.webp",
          "icon_sha256": "78c869404521358a4db71cbff4e7c319a423d9b0839570e6f2384a2e3748dd64"
        },
        {
          "slot": "E",
          "name": "Flawless Duet",
          "description": "Sends a blade to target location. May be recast within 3 seconds to send another blade. The blades converge upon reaching their destination, dealing 80 / 130 / 180 / 230 ( +80% AP ) magic damage , stunning for 1 second, and Marking enemy champions and large monsters hit for 5 seconds.",
          "cooldown": "Cooldown: 12 / 11 / 10 / 9",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/irelia/flawless-duet.webp",
          "icon_sha256": "fb678cd0222fe9419650f9005991416b2608d5b5b62124b6f733e2550c3f7c8f"
        },
        {
          "slot": "R",
          "name": "Vanguard's Edge",
          "description": "Fires a storm of blades that deals 125 / 250 / 375 ( +70% AP ) magic damage and Marks enemy champions and Large Monsters for 5 seconds. The blades explode into a wall for 3 seconds upon hitting an enemy champion, The bladewall deals 100 / 225 / 350 ( +70% AP ) magic damage and slows by 90% for 1 second.",
          "cooldown": "Cooldown: 70 / 65 / 60 / 8",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/irelia/vanguard-s-edge.webp",
          "icon_sha256": "bac4500e19e9485568377b1194785ddcdb36e698c6aedd0a7572abb93cf707cb"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWQRQQWRWWEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            2,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10094.js",
          "snapshot": "sources/62faab6964bc32fa39fe3299297cab610b3236e80b319dc1d45e0bbfe6bc914c",
          "sha256": "62faab6964bc32fa39fe3299297cab610b3236e80b319dc1d45e0bbfe6bc914c",
          "retrieved_at": "2026-11-01T15:46:29.203583+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:28",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "艾欧尼亚热诚",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "利刃冲击",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "距破之舞",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "比翼双刃",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "先锋之刃",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Janna": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/janna",
        "snapshot": "sources/32477b1da440cbde35a85a92723d6856f4d065aba83cd58045b0bae57ca05cb8",
        "sha256": "32477b1da440cbde35a85a92723d6856f4d065aba83cd58045b0bae57ca05cb8",
        "retrieved_at": "2026-11-01T15:46:00.051456+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Tailwind",
          "description": "Passively gain 5% Movement Speed . Nearby allied champions also gain this bonus.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/janna/tailwind.webp",
          "icon_sha256": "21e08c5fb15d4f2a9e98432daf37f9679e40c9b107bd2b84202c856b0949477d"
        },
        {
          "slot": "Q",
          "name": "Howling Gale",
          "description": "Charges up for 0.75 seconds and summons a powerful whirlwind that deals 50 / 90 / 130 / 170 ( +50% AP ) magic damage and knocks up enemies in its path. The whirlwind always reaches its destination in 0.5 seconds. This ability's charges are stored once every 14 seconds, up to a maximum of 2 charges.",
          "cooldown": "Cooldown: 1 / 1 / 1 / 1",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/janna/howling-gale.webp",
          "icon_sha256": "2a3a1c36a17e3aca00e589752067ba53e3309e77ab9d21e7ddb53b9892b8efe4"
        },
        {
          "slot": "W",
          "name": "Zephyr",
          "description": "Gains 10% / 15% / 20% / 25% Movement Speed for 2 seconds. The wind spirit automatically searches for the nearest 3 campions within range, granting Movement Speed bonuses to allies and dealing 50 / 90 / 130 / 170 ( 50% AP + 20% bonus MS ) magic damage to enemies.",
          "cooldown": "Cooldown: 9 / 8 / 8 / 7",
          "cost": "Cost: 50 / 55 / 60 / 65",
          "icon": "abilities/janna/zephyr.webp",
          "icon_sha256": "a425a7d50408fceafaa16be451cb4df5086452147f28a70786118e6fef1a52af"
        },
        {
          "slot": "E",
          "name": "Eye Of The Storm",
          "description": "Blesses herself and the allied champion with the lowest HP with a shield that absorbs 80 / 120 / 160 / 200 ( +50% AP ) damage and grants 10 / 20 / 30 / 40 ( +10% AP ) Attack Damage while it holds. Lasts for 3 seconds. If there is a turret within range, applies a shield to the turret as well.",
          "cooldown": "Cooldown: 16 / 14 / 12 / 10",
          "cost": "Cost: 70 / 80 / 90 / 100",
          "icon": "abilities/janna/eye-of-the-storm.webp",
          "icon_sha256": "6abb020322e72ba13d99681aa95b2e3fb78d7bd9cdeb5f1d18f2d62757f6ed8a"
        },
        {
          "slot": "R",
          "name": "Monsoon",
          "description": "Calls forth mighty winds of salvation to knock back surrounding enemies and restore 50 / 100 / 150 ( +30% AP ) Health to nearby allies each second for 3 seconds.",
          "cooldown": "Cooldown: 80 / 75 / 70",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/janna/monsoon.webp",
          "icon_sha256": "407044636a950b073682cc4eebd1b3196f8876750cb37c692c1f6e7e48623713"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWEREEWRWWQRQQ"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            12,
            14,
            15
          ]
        ],
        "W": [
          [
            3,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            2,
            4,
            6,
            7
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10075.js",
          "snapshot": "sources/f3bfc348490166c620c58ab1d7e73469c135e360948181287fab627ee1b00bd4",
          "sha256": "f3bfc348490166c620c58ab1d7e73469c135e360948181287fab627ee1b00bd4",
          "retrieved_at": "2026-11-01T15:46:29.207212+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:27",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "顺风而行",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "飓风呼啸",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "和风守护",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "风暴之眼",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "复苏季风",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Jarvan IV": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/jarvan-iv",
        "snapshot": "sources/d9956e3194e494f112765002fcf60b55d1355d2b53be6e202aa6196236251c79",
        "sha256": "d9956e3194e494f112765002fcf60b55d1355d2b53be6e202aa6196236251c79",
        "retrieved_at": "2026-11-01T15:45:59.256807+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Martial Cadence",
          "description": "The first attack against an enemy deals bonus 8% physical damage of their current Health ( 5 second cooldown per unique enemy).",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/jarvan-iv/martial-cadence.webp",
          "icon_sha256": "22801bc25999c336d0097c7f1719a5abe1ce77a18adfa27d26daa248e0add158"
        },
        {
          "slot": "Q",
          "name": "Dragon Strike",
          "description": "Extends Jarvan IV's lance, dealing 80 / 140 / 200 / 260 ( +130% bonus AD ) physical damage and reducing the Armor of enemies hit by 10% / 15% / 20% / 25% for 3 seconds. If the lance contacts a Demacian Standard it will pull Jarvan IV to the Demacian Standard's location, knocking up enemies in his path for 0.75 seconds.",
          "cooldown": "Cooldown: 9 / 8 / 7 / 6",
          "cost": "Cost: 50 / 55 / 60 / 65",
          "icon": "abilities/jarvan-iv/dragon-strike.webp",
          "icon_sha256": "73cbd18ffd6999fecdbaf0d559f3978716146f2ec2b7c4cfe0dd4882a4ec1c91"
        },
        {
          "slot": "W",
          "name": "Golden Aegis",
          "description": "Unleashes a regal aura that slows nearby enemies by 30% / 35% / 40% / 45% for 2 seconds, and grants him a shield that absorbs damage equal to 100 / 140 / 180 / 220 plus 5% of his max Health for 5 seconds. Absorbs 10 ( 1.6% / 1.9% / 2.2% / 2.5% of max HP ) more damage for each nearby enemy champion.",
          "cooldown": "Cooldown: 10 / 10 / 10 / 10",
          "cost": "Cost: 30 / 30 / 30 / 30",
          "icon": "abilities/jarvan-iv/golden-aegis.webp",
          "icon_sha256": "2cd60dcea9f501b7af4ee45c61c447b555802a51554d728fd8de8d9f3e5d57f7"
        },
        {
          "slot": "E",
          "name": "Demacian Standard",
          "description": "Passive : Gains 25% / 30% / 35% / 40% Attack Speed. Active : Throws a Demacian Standard that deals 85 / 140 / 195 / 250 ( +80% AP ) magic damage and remains in place for 8 seconds, granting nearby ally champions 30% / 35% / 40% / 45% Attack Speed . Tapping this ability while near a Demacian Standard will cast Dragon Strike towards it.",
          "cooldown": "Cooldown: 11 / 11 / 10 / 10",
          "cost": "Cost: 55 / 55 / 55 / 55",
          "icon": "abilities/jarvan-iv/demacian-standard.webp",
          "icon_sha256": "ec122b174bc0280ab2b20f689199688484890f5aabf0a64b1279e72b5b1bee7e"
        },
        {
          "slot": "R",
          "name": "Cataclysm",
          "description": "Heroically leaps to an enemy champion, dealing 200 / 350 / 500 ( +170% bonus AD ) physical damage to nearby enemies and creating an arena of impassable terrain around them for 3.5 seconds. Damage dealt by enemies within the arena is reduced by 12% / 16% / 20% . The effect ends once they leave the terrain or when it collapses. Cast again to collapse the terrain.",
          "cooldown": "Cooldown: 70 / 65 / 60",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/jarvan-iv/cataclysm.webp",
          "icon_sha256": "e6f89897ef006ab60fe77f830776220b1f18eb13a7a0d96043f677665d3d5f70"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "EQQWRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            2,
            3,
            6,
            7
          ]
        ],
        "W": [
          [
            4,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            1,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10056.js",
          "snapshot": "sources/41d9df055fc30594775284262e622523e4f743fafa169a4529efa6d8f7ec040d",
          "sha256": "41d9df055fc30594775284262e622523e4f743fafa169a4529efa6d8f7ec040d",
          "retrieved_at": "2026-11-01T15:46:29.211959+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:26",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "战争律动",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "巨龙撞击",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "黄金圣盾",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "德邦军旗",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "天崩地裂",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Jax": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/jax",
        "snapshot": "sources/23caa90e7a983d22616e9d07ab46bd6079549ca9cab3014a2dcc01a1cfca2482",
        "sha256": "23caa90e7a983d22616e9d07ab46bd6079549ca9cab3014a2dcc01a1cfca2482",
        "retrieved_at": "2026-11-01T15:45:59.288373+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Relentless Assault",
          "description": "Attacks against champions and minions grant 6% - 20% Attack Speed for 3 seconds. (Max 5 stacks.)",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/jax/relentless-assault.webp",
          "icon_sha256": "06c5684bbc3a8a3504366b41247dd72a9c6d30880d142234a0bedbacf6376046"
        },
        {
          "slot": "Q",
          "name": "Leap Strike",
          "description": "Leaps to a target unit, dealing 70 / 125 / 180 / 235 ( +100% bonus AD ) physical damage if it is an enemy.",
          "cooldown": "Cooldown: 8 / 7 / 7 / 6",
          "cost": "Cost: 65 / 65 / 65 / 65",
          "icon": "abilities/jax/leap-strike.webp",
          "icon_sha256": "55c99e4fd7988d0a6875658845ab5c03407c8bb8ee84e2bb403927ff92703b7d"
        },
        {
          "slot": "W",
          "name": "Empower",
          "description": "Empowers the next attack or Leap Strike to deal an additional 55 / 100 / 145 / 190 ( +60% AP ) magic damage . Deals 175% damage to monsters.",
          "cooldown": "Cooldown: 6 / 5 / 4 / 3",
          "cost": "Cost: 30 / 30 / 30 / 30",
          "icon": "abilities/jax/empower.webp",
          "icon_sha256": "953c6a9ee894028821cdac23d537a2f436ac3a01b3f6408bacbfc82ddcae5a18"
        },
        {
          "slot": "E",
          "name": "Counter Strike",
          "description": "Enters a defensive stance, dodging all incoming attacks and taking 25% reduced damage from champions for 2 seconds. After this duration, nearby enemies are stunned for 1 second and take 35 / 75 / 115 / 155 ( +3.5% max target HP + 70% AP ) magic damage . Each attack dodged increases this damage by 20% (up to 100% ). Re-cast : Ends the defensive stance early to damage and stun nearby enemies immediately.",
          "cooldown": "Cooldown: 12 / 11 / 9 / 8",
          "cost": "Cost: 60 / 70 / 80 / 90",
          "icon": "abilities/jax/counter-strike.webp",
          "icon_sha256": "27bf81cae3fc483a6a6df806e6723168f2df4b027cd5725cddde81d2e952cf0f"
        },
        {
          "slot": "R",
          "name": "Grandmaster-at-Arms",
          "description": "Passive : Deals an additional 75 / 130 / 185 ( +70% AP ) magic damage with every 3 consecutive attacks he haunches within 3 seconds. Active : Swings his stave, dealing 100 / 200 / 300 ( +100% AP ) magic damage to nearby enemies and gaining Armor and Magic Resist based on the number of champions hit. If he hits a champion, he gains 30 / 50 / 70 ( +50% bonus AD ) Armor and 18 / 30 / 42 ( +30% bonus AD ) Magic Resist . If he hits more than one champion, he gains 15 / 20 / 25 ( +10% bonus AD ) Armor and 9 / 12 / 15 ( +6% bonus AD ) Magic Resist for 8 seconds per additional champion hit. During this time, his size increases by 10% , and he deals additional magic damage with every 2 attacks instead. Deals 110% damage to monsters.",
          "cooldown": "Cooldown: 55 / 55 / 55",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/jax/grandmaster-at-arms.webp",
          "icon_sha256": "bc5293f6798fac36370be23d4100b87ed7f3bf823e353c28af80cb2769528c65"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "EQWWRWWEREEQRQQ"
        },
        {
          "label": "Source plan 2",
          "choices": "WEQWRWWEREEQRQQ"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            2,
            12,
            14,
            15
          ],
          [
            3,
            12,
            14,
            15
          ]
        ],
        "W": [
          [
            3,
            4,
            6,
            7
          ],
          [
            1,
            4,
            6,
            7
          ]
        ],
        "E": [
          [
            1,
            8,
            10,
            11
          ],
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ],
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [
          {
            "control_key": "grandmaster_rank",
            "slot": "R",
            "rank_basis": "learned",
            "ability": "Grandmaster-at-Arms",
            "engine_semantics": "jax_grandmaster passive and active attack period",
            "initial_rank": 0,
            "source": "champion.source (exact slot/name); canonical champion_mechanics.json rule identity",
            "engine_evidence": "game_rules.py rank consumers and champion_mechanics.json explicit rule parameters"
          },
          {
            "control_key": "empower_rank",
            "slot": "W",
            "rank_basis": "learned",
            "ability": "Empower",
            "engine_semantics": "jax_empower explicit empowered attack",
            "initial_rank": 0,
            "source": "champion.source (exact slot/name); canonical champion_mechanics.json rule identity",
            "engine_evidence": "game_rules.py rank consumers and champion_mechanics.json explicit rule parameters"
          }
        ],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10040.js",
          "snapshot": "sources/febc497930a81d7a9eeb22ed76be67d4ff738d7a3a648200c0308149e0ad14df",
          "sha256": "febc497930a81d7a9eeb22ed76be67d4ff738d7a3a648200c0308149e0ad14df",
          "retrieved_at": "2026-11-01T15:46:29.211691+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:25",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "无情连打",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "跳斩",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "蓄力一击",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "反击风暴",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "武器大师",
            "rank_detail_count": 4
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Jayce": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/jayce",
        "snapshot": "sources/f128ce8d800dde34c2774890b4f8e6b0d47d2611871d43a41c8416bc641f6453",
        "sha256": "f128ce8d800dde34c2774890b4f8e6b0d47d2611871d43a41c8416bc641f6453",
        "retrieved_at": "2026-11-01T15:45:59.330562+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Hextech Capacitor",
          "description": "Transforming between the Mercury Hammer and Mercury Cannon grants 30 Movement Speed for 1.25 seconds.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/jayce/hextech-capacitor.webp",
          "icon_sha256": "06df44e78aa06483e5d50e096d90ca3803194c4d9931dd44a3c0837a8f2e95c7"
        },
        {
          "slot": "Q",
          "name": "To The Skies! / Shock Blast",
          "description": "To the Skies! : Leaps to an enemy dealing 70 / 120 / 170 / 220 / 270 ( +140% AD ) physical damage and slowing nearby enemies by 35% / 40% / 45% / 50% / 55% for 2 seconds. Shock Blast fires an orb of electricity that detonates on hitting an enemy or reaching the end of its path, dealing 65 / 130 / 195 / 260 / 325 ( +140% AD ) physical damage . Orbs fired through an Acceleration Gate travel farther and faster, increasing their damage by 45%. Deals 80% damage to monsters.",
          "cooldown": "Cooldown: 14 / 12 / 10 / 8",
          "cost": "Cost: 40 / 40 / 40 / 40",
          "icon": "abilities/jayce/to-the-skies-shock-blast.webp",
          "icon_sha256": "de5e6ccec525d1b4a5b48811e771259f0790f4707fbf2d12aa3bbf1e69e7f02f"
        },
        {
          "slot": "W",
          "name": "Lightning Field / Hyper Charge",
          "description": "Lightning Field : Passive : Attacks with the Mercury Hammer restore 12 / 15 / 18 / 21 / 24 Mana. Active : Releases an electrifying aura, dealing 160 / 230 / 300 / 370 / 440 ( +100% AP ) magic damage over 4 seconds to nearby enemies. Hyper Charge : Gains a burst of energy, increasing Attack Speed to maximum for 3 attacks within 4 seconds. These attacks deal ( 70% / 80% / 90% / 100% / 110% AD ) physical damage . Cooldown : 13 / 11 / 9 / 7 / 5",
          "cooldown": "Cooldown: 10 / 10 / 10 / 10",
          "cost": "Cost: 40 / 40 / 40 / 40",
          "icon": "abilities/jayce/lightning-field-hyper-charge.webp",
          "icon_sha256": "ea621fca89bb01e88a76257bdcf0b81ec75f66ac2759b6150003ce1972644de8"
        },
        {
          "slot": "E",
          "name": "Thundering Blow / Acceleration Gate",
          "description": "Thundering Blow : Knocks a target and enemies near them backwards, dealing 10% / 12.5% / 15% / 17.5% / 20% ( +100% AD ) magic damage of their maximum health. Acceleration Gate : Deploys an Acceleration Gate that grants 35% / 40% / 45% / 50% / 55% decaying Movement Speed for 2.5 / 3 / 3.5 / 4 / 4.5 seconds to ally champions that pass through it. Shock Blasts fired through the gate travel farther and faster, increasing their damage by 40% . Cooldown : 14",
          "cooldown": "Cooldown: 18 / 16 / 14 / 12",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/jayce/thundering-blow-acceleration-gate.webp",
          "icon_sha256": "d6b951cd346907ae4542ccc84db329231e28c841039b0def2325cf814eb77fdc"
        },
        {
          "slot": "R",
          "name": "Mercury Cannon / Mercury Hammer",
          "description": "Mercury Cannon : Transforms the Mercury Hammer into the Mercury Cannon , gaining new abilities and ranged attacks. The next attack with the Mercury Cannon is empowered to deal an additional 13 ( +10% AD ) magic damage and reduce the target's Armor and Magic Resist by 11% for 5 seconds. Mercury Hammer : Transforms the Mercury Cannon into the Mercury Hammer , gaining new abilities, 16% Attack Speed and 5 ( +9% bonus AD ) Armor and Magic Resist . The next attack with the Mercury Hammer is empowered to deal an additional 28 ( +25% bonus AD ) magic damage .",
          "cooldown": "Cooldown: 5 / 5 / 5 / 5",
          "cost": "",
          "icon": "abilities/jayce/mercury-cannon-mercury-hammer.webp",
          "icon_sha256": "6085198bde13e6848bc110bbb37c5c8b552a9000c83ce7daa685d87b3638b4f0"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWEQQWWQQWWEEEE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 5,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "jayce"
          ]
        },
        "W": {
          "max_rank": 5,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "jayce"
          ]
        },
        "E": {
          "max_rank": 5,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "jayce"
          ]
        },
        "R": {
          "max_rank": 1,
          "initial_rank": 1,
          "rank_min_levels": null,
          "source_ids": [
            "jayce"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            5,
            8,
            9
          ]
        ],
        "W": [
          [
            2,
            6,
            7,
            10,
            11
          ]
        ],
        "E": [
          [
            3,
            12,
            13,
            14,
            15
          ]
        ],
        "R": [
          []
        ]
      },
      "notes": [
        "Transform is available at level 1 and cannot receive upgrade points. Each basic slot has five ranks; both forms share that slot."
      ],
      "combat_sync": {
        "mapped_controls": [
          {
            "control_key": "hyper_charge_rank",
            "slot": "W",
            "rank_basis": "learned",
            "ability": "Lightning Field / Hyper Charge",
            "engine_semantics": "jayce_hyper_charge cannon W; shares hammer W points",
            "initial_rank": 0,
            "source": "champion.source (exact slot/name); canonical champion_mechanics.json rule identity",
            "engine_evidence": "game_rules.py rank consumers and champion_mechanics.json explicit rule parameters"
          }
        ],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10101.js",
          "snapshot": "skill_sources/403bbd90b5ccfb9d3e20592a816d219dda808d8ab2487bd9e0a0d1a8e0dc2929",
          "sha256": "403bbd90b5ccfb9d3e20592a816d219dda808d8ab2487bd9e0a0d1a8e0dc2929",
          "retrieved_at": "2026-11-05T13:53:42.524995+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-11-02 17:42:28",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "海克斯科技电容",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "苍穹之跃",
            "rank_detail_count": 5
          },
          {
            "spell_index": 2,
            "name": "闪电领域",
            "rank_detail_count": 5
          },
          {
            "spell_index": 3,
            "name": "雷霆一击",
            "rank_detail_count": 5
          },
          {
            "spell_index": 4,
            "name": "墨丘利之炮",
            "rank_detail_count": 1
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources.",
          "The minimum champion levels for each of Jayce’s five basic ranks are not evidenced."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Jhin": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/jhin",
        "snapshot": "sources/3e7c7e4b4f102a0bf9c3702377fdc6a243ede056c93c8087bf08c479ec2a184e",
        "sha256": "3e7c7e4b4f102a0bf9c3702377fdc6a243ede056c93c8087bf08c479ec2a184e",
        "retrieved_at": "2026-11-01T15:45:59.368034+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Whisper",
          "description": "Jhin's hand cannon, Whisper, carries 4 shots before needing to be reloaded and fires at a fixed rate. ( Attack speed will be converted into Attack Damage ). The final bullet will critically strike and deal additional 11% missing Health physical damage . Whenever Whisper crits, Jhin gains a burst of 14% ( +0.44% per 1% bonus AS ) movement speed for 2 seconds. Attack Damage scales with Critical Rate and bonus Attack Speed.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/jhin/whisper.webp",
          "icon_sha256": "0c6abe41b553c36665d34f32ff86745ef67f5b357f886639710ed0fdd146dbee"
        },
        {
          "slot": "Q",
          "name": "Dancing Grenade",
          "description": "Launches a magical cartridge at an enemy, dealing 45 / 80 / 115 / 150 ( +35% / 45% / 55% / 65% AD +60% AP ) physical damage before bouncing to a nearby target that has not yet been hit. It can hit up to 4 targets and gains 44% damage each time it kills.",
          "cooldown": "Cooldown: 7 / 6 / 6 / 5",
          "cost": "Cost: 45 / 50 / 55 / 60",
          "icon": "abilities/jhin/dancing-grenade.webp",
          "icon_sha256": "c2a94225eea57aad6b983afca37e27e331931dbbbcd4ed267a895c81d2892c8c"
        },
        {
          "slot": "W",
          "name": "Deadly Flourish",
          "description": "Fires a long range shot that stops on the first champion hit, dealing 60 / 100 / 140 / 180 ( +40% AD ) physical damage to it, and 75% of that damage to minions and monsters hit along the way. If the target champion was struck by Jhin, Jhin's allies, or Lotus Traps within the last 4 seconds, they are rooted for 1.25 / 1.5 / 1.75 / 2 seconds and Jhin gaines Movement Speed as though he had crit them.",
          "cooldown": "Cooldown: 12 / 12 / 12 / 12",
          "cost": "Cost: 60 / 60 / 60 / 60",
          "icon": "abilities/jhin/deadly-flourish.webp",
          "icon_sha256": "fe27c0ee59d69847576ed6f439b8bc4ab9db71f92d842ba78f5570c66de79478"
        },
        {
          "slot": "E",
          "name": "Captive Audience",
          "description": "Places an invisible Lotus Trap that reveals nearby enemies when walked over. It slows enemies by 30% before dealing 20 / 100 / 180 / 260 ( +120% AD +100% AP ) magic damage . When Jhin kills an enemy champion, a Lotus Trap will spawn and detonate where they were killed. Deals 65% damage to non-champions and champions recelty hit by another trap.",
          "cooldown": "Cooldown: 2 / 2 / 2 / 2",
          "cost": "Cost: 35 / 40 / 45 / 50",
          "icon": "abilities/jhin/captive-audience.webp",
          "icon_sha256": "ceedc69178c1a58dae2f2a31858b479d8fe4b505de39588292fc55c0ff86a7ef"
        },
        {
          "slot": "R",
          "name": "Curtain Call",
          "description": "Channels to fire 4 super shots at extreme range in a cone. The shots stop on the first champion hit, slowing it by 80% for 0.75 seconds and dealing 75 / 150 / 225 ( +25% AD ) physical damage , increased by 3% for each 1% health the target is missing. The 4th shot crits for current Critical Damage . Tap the cancel button to cancel the channel.",
          "cooldown": "Cooldown: 80 / 70 / 60",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/jhin/curtain-call.webp",
          "icon_sha256": "23a53f616c1089a608c0d996fbd2a1255865bf1186723f7ff81c5a720c7e272f"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWEQRQQWRWWEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10022.js",
          "snapshot": "sources/5b57059a0d2c1a47e3aa2c2af1b6b5d5edd9b64ea288a8fa09546fd00e4d41f9",
          "sha256": "5b57059a0d2c1a47e3aa2c2af1b6b5d5edd9b64ea288a8fa09546fd00e4d41f9",
          "retrieved_at": "2026-11-01T15:46:29.244781+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:24",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "低语",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "曼舞手雷",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "致命华彩",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "万众倾倒",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "完美谢幕",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Jinx": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/jinx",
        "snapshot": "sources/38149b26966f993da994d104371ebd4dab39e725f8f774232d2999179ac921a2",
        "sha256": "38149b26966f993da994d104371ebd4dab39e725f8f774232d2999179ac921a2",
        "retrieved_at": "2026-11-01T15:46:01.119384+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Get Excited!",
          "description": "Scoring a takedown on a champion or structure that Jinx has damaged within the last 3 seconds grants her 140% decaying Movement Speed and 25% Total Attack Speed for 6 seconds. While Excited, Jinx can exceed the Attack Speed cap. When Get Excited is triggered, restore 10% of missing mana.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/jinx/get-excited.webp",
          "icon_sha256": "f05fc766c0c40246e6efa891cf80bec6982352b67ea5261ccd0a36d3975ae253"
        },
        {
          "slot": "Q",
          "name": "Switcheroo!",
          "description": "Swaps weapons- Fishbones, the Rocket Launcher : Attacks cost mana but gain 80 / 95 / 110 / 125 range and explode to deal 112% damage to the target and enemies around it. Pow-Pow , the Minigun: Attacks grant bonus Attack Speed for 2.5 seconds. This effect stacks up to 3 times for a total bonus of 35% / 60% / 85% / 110% . Pow-Pow's stacks fall off one at a time and will only benefit the first attakc fire from Fishbones.",
          "cooldown": "Cooldown: 1 / 1 / 1 / 1",
          "cost": "Cost: 20 / 20 / 20 / 20",
          "icon": "abilities/jinx/switcheroo.webp",
          "icon_sha256": "45ebc948105dcefcbf6627c29ef4a30983c55d9af1d1f1503266ccfecd216584"
        },
        {
          "slot": "W",
          "name": "Zap!",
          "description": "Fires a shock blast that deals 10 / 80 / 150 / 220 ( +160% AD ) physical damage to the first enemy hit, granting vision of it and slowing it by 30% / 40% / 50% / 60% for 2 seconds.",
          "cooldown": "Cooldown: 8 / 7 / 6 / 5",
          "cost": "Cost: 50 / 60 / 70 / 80",
          "icon": "abilities/jinx/zap.webp",
          "icon_sha256": "438c0a59d150d08d742b2796dcdc2e7351d568b4db88d0f94808a56191b1569d"
        },
        {
          "slot": "E",
          "name": "Flame Chompers!",
          "description": "Tosses out three compes that arm after a brief delay. Chompers explode on contact with enemy champions, interrupting their dashes and rooting them for 1.45 / 1.55 / 1.65 / 1.75 seconds. Enemies hit by the explosion take 70 / 140 / 210 / 280 ( +100% AP ) magic damage. Chompers last for 5 seconds and will explode automatically if no champion triggers them.",
          "cooldown": "Cooldown: 15 / 13 / 11 / 9",
          "cost": "Cost: 70 / 70 / 70 / 70",
          "icon": "abilities/jinx/flame-chompers.webp",
          "icon_sha256": "5396183af11b9c8a7a93855e7626b5a758447e32e138320895602fab00fd8a1a"
        },
        {
          "slot": "R",
          "name": "Super Mega Death Rocket!",
          "description": "Fires a mega-rocket that gains damage and speed over the first second it travels. The rocket explodes on the first enemy champion hit, dealing 25 / 35 / 45 to 250 / 350 / 450 ( +12% to 120% bonus AD ) physical damage +25% / 30% / 35% of their missing health. Nearby enemies take 80% damage. Deals a max of 500 damage to epic monsters.",
          "cooldown": "Cooldown: 60 / 50 / 40",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/jinx/super-mega-death-rocket.webp",
          "icon_sha256": "1031ce10b89deac17b9172d5a7cd2d041419f01c18fcaea37f8791ca3ef162e4"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWEQRQQWRWWEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [
          {
            "control_key": "switcheroo_rank",
            "slot": "Q",
            "rank_basis": "learned",
            "ability": "Switcheroo!",
            "engine_semantics": "jinx_weapon minigun/rocket modifiers; weapon remains explicit",
            "initial_rank": 0,
            "source": "champion.source (exact slot/name); canonical champion_mechanics.json rule identity",
            "engine_evidence": "game_rules.py rank consumers and champion_mechanics.json explicit rule parameters"
          }
        ],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10018.js",
          "snapshot": "sources/0f55bd7819cba0b1e8cac876ff90da5fdb631f51e60ea4621885399c5e8e1100",
          "sha256": "0f55bd7819cba0b1e8cac876ff90da5fdb631f51e60ea4621885399c5e8e1100",
          "retrieved_at": "2026-11-01T15:46:29.457573+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:24",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "罪恶快感",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "枪炮交响曲！",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "震荡电磁波！",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "嚼火者手雷！",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "超究极死神飞弹！",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "K'Sante": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/ksante",
        "snapshot": "sources/404d239a024b795158490a2539990dfcd59978919671d9908dd346a3b24f6bb5",
        "sha256": "404d239a024b795158490a2539990dfcd59978919671d9908dd346a3b24f6bb5",
        "retrieved_at": "2026-11-01T15:46:01.865326+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Dauntless Instinct",
          "description": "K'Sante's damaging abilities mark enemies with Dauntless Instinct . Attacking a marked target deals physical damage equal to 12% + 1% - 2% of their max Health and consumes the mark. All Out : K'Sante's attacks, active abilities, and passive deal an additional 1% ( +0.01% bonus Armor + 0.01% bonus MR ) of the target's max Health as physical damage . Health percent damage against minions has a minimum cap of 15 - 85 . Health percent damage against monsters has a minimum cap of 25 - 95 .",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/k-sante/dauntless-instinct.webp",
          "icon_sha256": "a471979befcdefd4312a10861de5abbaaa5e43fb9f61d883d472cf4ce7acf53a"
        },
        {
          "slot": "Q",
          "name": "Ntofo Strikes",
          "description": "Slams his weapon, dealing 80 / 120 / 160 / 200 ( +35% bonus Armor +35% bonus MR ) physical damage and slowing enemies by 80% for 0.5 seconds. Ntofo Strikes : If he hits the target, he gains a stack of Ntofo Strikes for 6 seconds. At 2 stacks, he instead fires a shockwave that pulls in and stuns the target for 0.75 seconds. All Out : This ability's cooldown is reduced by 30% .",
          "cooldown": "Cooldown: 3 / 3 / 3 / 3",
          "cost": "Cost: 20 / 20 / 20 / 20",
          "icon": "abilities/k-sante/ntofo-strikes.webp",
          "icon_sha256": "07c66babaa3c88db43f0b6d45e3caa72376308125c8aa8805adbe9d05030fb9a"
        },
        {
          "slot": "W",
          "name": "Path Maker",
          "description": "Raises his weapons, charging up for 0.3 - 0.75 seconds. During this time, he is unstoppable and reduces incoming damage by 30% . After charging up, he dashes forward, which deals 50 / 80 / 110 / 140 + 8% ( +0.02% bonus Armor +0.02% bonus MR ) of the target's max Health as physical damage , knocks back the target and stuns for 0.5 - 1.65 seconds (based on charge time). All Out: Refreshes this ability's cooldown; Deals an additional 10% - 80% true damage (based on charge time); Damage reduction is increased by 75% and dash speed is increased; No longer knocks back or stuns. Deals a maximum of 180 / 280 / 380 / 480 damage against monsters.",
          "cooldown": "Cooldown: 13 / 12 / 11 / 10",
          "cost": "Cost: 40 / 45 / 50 / 55",
          "icon": "abilities/k-sante/path-maker.webp",
          "icon_sha256": "9e0cdf3b500343e1c1a58841a51c85f2845276093fba474267d700c7b660f499"
        },
        {
          "slot": "E",
          "name": "Footwork",
          "description": "Dashes, gaining a s hield that absorbs 75 / 120 / 165 / 210 ( +15% bonus Health ) damage for 2 seconds. If dashing to an allied champion: the distance of the dash is significantly increased and the ally gains the same shield . All Out : This ability's cooldown is reduced by 50% and dash speed is increased.",
          "cooldown": "Cooldown: 11 / 10 / 9 / 8",
          "cost": "Cost: 40 / 45 / 50 / 55",
          "icon": "abilities/k-sante/footwork.webp",
          "icon_sha256": "6d54ed22bcb6261432e3b81589b5be030c43ce2fe8e8931cb8d523769be64825"
        },
        {
          "slot": "R",
          "name": "All Out",
          "description": "Shatters his ntofos to knock back an enemy champion, dealing 80 / 115 / 150 physical damage , then dashes behind them and goes All Out for 15 seconds. Demolishing Strike : If the enemy would hit a wall, they are knocked back through the wall and K'Sante strikes them again for 80 / 115 / 150 ( +5% bonus Health ) physical damage . All Out : His basic abilities are upgraded; gains 40% / 60% / 80% Attack Speed; gains 50% bonus Armor Pen; gains 20% Omnivamp; loses 30% max Health ; loses 80% bonus armor; loses 80% bonus Magic Resist. K'Sante is unstoppable and roots his target while casting this ability.",
          "cooldown": "Cooldown: 80 / 70 / 60",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/k-sante/all-out.webp",
          "icon_sha256": "c206712b26e9869914cabe91086b33042cd835eec36a37aa56e49fd16c922aee"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWQRQQWRWWEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            2,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10152.js",
          "snapshot": "sources/3cb339a6867086e936f90057476db4965c9aa5a4cb7b73fd3a6a07782d63a3c3",
          "sha256": "3cb339a6867086e936f90057476db4965c9aa5a4cb7b73fd3a6a07782d63a3c3",
          "retrieved_at": "2026-11-01T15:46:30.004219+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:31",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "血性本能",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "无双陀斧",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "辟路先锋",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "大步驰援",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "傲岸雄姿",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Kai'Sa": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/kaisa",
        "snapshot": "sources/c3a217fc419adf77ac91db7615008b502df229a95d8c2992b7309523237202bf",
        "sha256": "c3a217fc419adf77ac91db7615008b502df229a95d8c2992b7309523237202bf",
        "retrieved_at": "2026-11-01T15:45:59.885605+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Second Skin",
          "description": "Living Weapon : Kai'sa's abilities evolve upon fully upgrading an item. Caustic Wounds : Kai'sa's attacks stack Plasma for 4 seconds and deal 5 ( +12% AP ) bonus magic damage . Plasma detonates at 5 stacks, dealing 15% ( +5% AP ) bonus magic damage of their missing Health. Nearby allies apply 1 stack to champions they Immobilize. Plasma detonations deal a max of 400 damage to monsters.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/kai-sa/second-skin.webp",
          "icon_sha256": "0511196befc7ace87005740153fba6be5af4c2fb6ad631654bc22307d56dcdf1"
        },
        {
          "slot": "Q",
          "name": "Icathian Rain",
          "description": "Launches 6 missiles that split evenly among nearby enemies, each dealing 40 / 60 / 80 / 100 ( +50% AD +30% AP ) physical damage . Additional hits on champions or monsters deal 25% damage. Living Weapon : Fires 12 missiles. Minions below 35% Health take 150% damage. Monster take 50% damage instead.",
          "cooldown": "Cooldown: 9 / 8 / 7 / 6",
          "cost": "Cost: 55 / 55 / 55 / 55",
          "icon": "abilities/kai-sa/icathian-rain.webp",
          "icon_sha256": "30e05081afcd7e1b3098ac31925082e0c805cd072c37e9bfd8541125c341cf40"
        },
        {
          "slot": "W",
          "name": "Void Seeker",
          "description": "Fires a blast that reveals the first enemy hit, adds 2 Plasma stacks, and deals 30 / 60 / 90 / 120 ( +130% AD +50% AP ) magic damage . Living Weapon : Adds 3 stacks and refunds 70% Cooldown on champion hits.",
          "cooldown": "Cooldown: 20 / 18 / 16 / 14",
          "cost": "Cost: 60 / 65 / 70 / 75",
          "icon": "abilities/kai-sa/void-seeker.webp",
          "icon_sha256": "3a3f98b0a1bbfc06c596f3568e93f7b6969e254a0ef846481082c1b7fabc19d6"
        },
        {
          "slot": "E",
          "name": "Supercharge",
          "description": "Charges up for 1 second, gaining 50% / 55% / 60% / 65% ( + bonus Attack Speed ) Movement Speed . For 4 seconds after charging, gain 40% / 50% / 60% / 70% Attack Speed . Living Weapon : Grants invisibility during the charge up. Attacks reduce Supercharge's Cooldown by 0.5 seconds. Charge time and Movement Speed scale with Attack Speed.",
          "cooldown": "Cooldown: 16 / 14 / 12 / 10",
          "cost": "Cost: 30 / 30 / 30 / 30",
          "icon": "abilities/kai-sa/supercharge.webp",
          "icon_sha256": "9c1279621c50e0b51e05d5fe1f21f555785ef341a3dcf4d865fecfaf15f25ad2"
        },
        {
          "slot": "R",
          "name": "Killer Instinct",
          "description": "Dash to a location near an enemy champion marked by Plasma , gaining a shield that absorbs 100 / 125 / 150 ( +80% / 120% / 160% AD +100% AP ) damage for 2 seconds.",
          "cooldown": "Cooldown: 80 / 70 / 60",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/kai-sa/killer-instinct.webp",
          "icon_sha256": "86b62d66b88821d657df5a8fb55c20680074c502bc264fe0f4bc9bde5801c4f6"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWEQRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            2,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            3,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10026.js",
          "snapshot": "sources/c9692f94888da66267940803000acb35b9dbc0be8e2a94781693c33df06eda77",
          "sha256": "c9692f94888da66267940803000acb35b9dbc0be8e2a94781693c33df06eda77",
          "retrieved_at": "2026-11-01T15:46:29.458368+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:24",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "体表活肤",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "艾卡西亚暴雨",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "虚空索敌",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "极限超载",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "猎手本能",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Kalista": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/kalista",
        "snapshot": "sources/e886491cf9e7977682685a881d299cb2c3eba47cdefd0e9a485e33c993c304bf",
        "sha256": "e886491cf9e7977682685a881d299cb2c3eba47cdefd0e9a485e33c993c304bf",
        "retrieved_at": "2026-11-01T15:46:00.009757+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Martial Poise",
          "description": "When Kalista winds up her attacks, moving the left joystick will cause her to dash for a short distance in that direction after she throws her spear. When the game starts, she can choose an ally to become her Oathsworn . Kalista cannot change her Oathsworn . Once Kalista launches her attacks, they cannot be canceled. Her dash speed and distance scale with boot tier.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/kalista/martial-poise.webp",
          "icon_sha256": "b70023d1d95c3cc02c5c9cc240ed08b2ac0bdba12570e6c2b309ce7946da6534"
        },
        {
          "slot": "Q",
          "name": "Pierce",
          "description": "Hurls a spear, dealing 70 / 135 / 200 / 265 ( +110% AD ) physical damage to the first target hit. If this kills the target, the spear continues onward, carrying the target's Rend stacks to the next enemy hit. After casting this ability, Kalista can dash using Martial Poise .",
          "cooldown": "Cooldown: 8 / 7 / 7 / 6",
          "cost": "Cost: 55 / 60 / 65 / 70",
          "icon": "abilities/kalista/pierce.webp",
          "icon_sha256": "a0c5cfd8c60b9e6e231caa3ef3659ce1f6e16df7a313eb5b523fd3232bf3d0c9"
        },
        {
          "slot": "W",
          "name": "Sentinel",
          "description": "Passive : When the distance between Kalista and her Oathsworn is less than 8, and both hit the same target within 4 seconds using attacks or Pierce, Kalista deals 16% / 17% / 18% / 19% of the target's max Health as bonus magic damage . This effect has a 8 second cooldown per target. Active : Sends a Soul Sentinel to patrol an area. Upon spotting an enemy champion, the Sentinel follows them for 4 seconds, revealing them for 4 seconds. Sentinels disappear after patrolling 3 laps. Charge : Kalista gains a charge every 45 / 40 / 35 / 30 seconds, storing up to 2 charges. This ability's passive deals at least 75 damage against minions and executes them if their Health is below 125 .",
          "cooldown": "Cooldown: 20 / 20 / 20 / 20",
          "cost": "Cost: 30 / 30 / 30 / 30",
          "icon": "abilities/kalista/sentinel.webp",
          "icon_sha256": "ee63a2a6a126ee04b5e6556932216a5fc301a4a5cc7c450caf92d297e093776a"
        },
        {
          "slot": "E",
          "name": "Rend",
          "description": "Passive : On hit, Kalista's spears linger in their target for 4 seconds, applying a stacking Rend . Active : Kalista rips the spears from nearby enemies, dealing 30 / 45 / 60 / 75 ( +70% AD ) physical damage plus 12 / 22 / 32 / 42 ( +36% / 43% / 50% / 57% AD ) physical damage per spear after the first. Slows enemies hit by 15% / 25% / 35% / 45% for 2 seconds. If this ability kills at least one target, it's cooldown is refreshed, and it refunds 12 / 18 / 24 / 30 Mana . Deals 50% damage to epic monsters.",
          "cooldown": "Cooldown: 10 / 9 / 8 / 7",
          "cost": "Cost: 30 / 30 / 30 / 30",
          "icon": "abilities/kalista/rend.webp",
          "icon_sha256": "8decd4b0366dbb5839056a58c5351f3f976f2f28fa6830c74a37812032ac4a21"
        },
        {
          "slot": "R",
          "name": "Fate's Call",
          "description": "Kalista puts her Oathsworn into stasis and draws them to herself for up to 4 seconds. The Oathsworn can launch themselves in a direction, knocking nearby enemies airborne for 1 / 1.5 / 2 seconds upon hitting the first enemy champion. The Oathsworn then ricochets for a distance based on their max attack range.",
          "cooldown": "Cooldown: 60 / 55 / 50",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/kalista/fate-s-call.webp",
          "icon_sha256": "4559c9d56ab795e53ae017e3461b09e6062cee8b5e70209e3be4d80af3a1febd"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "EQWEREEQRQQWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [
          {
            "control_key": "sentinel_rank",
            "slot": "W",
            "rank_basis": "learned",
            "ability": "Sentinel",
            "engine_semantics": "kalista_sentinel explicit Oathsworn hit",
            "initial_rank": 0,
            "source": "champion.source (exact slot/name); canonical champion_mechanics.json rule identity",
            "engine_evidence": "game_rules.py rank consumers and champion_mechanics.json explicit rule parameters"
          }
        ],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10134.js",
          "snapshot": "sources/e84c0b229680563da2ec7046cc489d19c4397afe032aca24a2740e3a47d979d8",
          "sha256": "e84c0b229680563da2ec7046cc489d19c4397afe032aca24a2740e3a47d979d8",
          "retrieved_at": "2026-11-01T15:46:29.458885+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:30",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "武术姿态",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "穿刺",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "哨兵",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "撕裂",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "命运的召唤",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Karma": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/karma",
        "snapshot": "sources/fe32254839e2e7b86cb651491f63617f7392f38b97c6ba5e0b7fe1e1c4fd43b9",
        "sha256": "fe32254839e2e7b86cb651491f63617f7392f38b97c6ba5e0b7fe1e1c4fd43b9",
        "retrieved_at": "2026-11-01T15:45:59.977833+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Mantra",
          "description": "Every ability cast grants Karma a stack of Mantra. At 3 stacks, she enters a Mantra State, enchancing her next basic ability.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/karma/mantra.webp",
          "icon_sha256": "a885b884a1ad8881e4ed28e100bf092af85820b45ca6dbbd50ff548175ec7f08"
        },
        {
          "slot": "Q",
          "name": "Inner Flame",
          "description": "Fires a blast of energy, dealing 60 / 100 / 140 / 180 ( +40% AP ) magic damage to the first target hit and surrounding enemies, and slowing them by 35% for 1.5 seconds. Mantra : Increases the destructive power of the blast, dealing 65 / 140 / 215 / 290 ( +50% AP ) magic damage to the first target hit and surrounding enemies. The blast leaves a field for 1.5 seconds, slowing targets by 42.5% / 45% / 47.5% / 50% , after which it explodes and deals 40 / 80 / 120 / 160 ( +50% AP ) magic damage .",
          "cooldown": "Cooldown: 9 / 8 / 7 / 6",
          "cost": "Cost: 60 / 60 / 60 / 60",
          "icon": "abilities/karma/inner-flame.webp",
          "icon_sha256": "93e56ba67712692267cc79b4f3a40b0cda8a1eefbf9658ac232d4d1a21de63f6"
        },
        {
          "slot": "W",
          "name": "Focused Resolve",
          "description": "Tethers up to two nearby enemy champions, dealing 35 / 60 / 85 / 110 ( +40% AP ) magic damage and revealing them for 1.75 seconds. If targets fail to break the tether, they take 40 / 70 / 100 / 130 ( +45% AP ) magic damage and are rooted for 1 / 1.25 / 1.5 / 1.75 seconds. Mantra : A new tether will be fromed between tethered targets. If there is only one tethered target, the new tether will spread toward an additional nearby enemy champion. If targets fail to break all the tethers, they take 40 / 70 / 100 /130 ( +45% AP ) magic damage and are rooted for an improved 1.5 / 1.75 / 2 / 2.25 seconds.",
          "cooldown": "Cooldown: 15 / 15 / 15 / 15",
          "cost": "Cost: 55 / 60 / 65 / 70",
          "icon": "abilities/karma/focused-resolve.webp",
          "icon_sha256": "272a978c1451984bf6ed07fb348911085eac5017fb11e17538dba09d5a158be0"
        },
        {
          "slot": "E",
          "name": "Inspire",
          "description": "Grants an allied champion 60 / 90 / 120 / 150 ( + 65% AP ) shield for 3 seconds and 30% movement speed for 1.5 seconds. Mantra : Karma focuses her power, granting a 120 / 180 / 240 / 300 ( +65% AP ) shield that decays over 4 seconds and 60% movement speed that decays to 20% over the same duration. An additional ring is generated around the shielded target, and the first ally champion who enters the ring will be granted the same shield and movement speed.",
          "cooldown": "Cooldown: 10 / 9 / 8 / 7",
          "cost": "Cost: 70 / 70 / 70 / 70",
          "icon": "abilities/karma/inspire.webp",
          "icon_sha256": "2d967e66c51c6e032ec9a7644ee12f02fba4a84fa90e9d44546017f896030603"
        },
        {
          "slot": "R",
          "name": "Transcendent Embrace",
          "description": "Immediately enters Mantra state. Forms a ring of spirit energy at the taget location. After 1 second, it detonates, dealing 170 / 280 / 390 ( +80% AP ) magic damage to all enemies inside the circle and slowing them by 35% for 1 second. If enemies are hit by the outer ring, they will be knocked back toward the center.",
          "cooldown": "Cooldown: 70 / 65 / 60",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/karma/transcendent-embrace.webp",
          "icon_sha256": "9092b317d48ce7835d21d56c8a17d276c312f24075737fdd4ac2fbfa8a01b24d"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWEREEQRQQWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            8,
            10,
            11
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            4,
            6,
            7
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [
        "Empowered or transformed versions use the same upgrade slot as the base ability; no extra form-specific points are allocated."
      ],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10007.js",
          "snapshot": "sources/351468edcfc7c9505c5a156fac003b587de962fb4c1eb193b9ec5ab2ab6d4fd6",
          "sha256": "351468edcfc7c9505c5a156fac003b587de962fb4c1eb193b9ec5ab2ab6d4fd6",
          "retrieved_at": "2026-11-01T15:46:29.459499+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:23",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "梵咒",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "心灵烈焰",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "坚定不移",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "鼓舞",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "超凡之拥",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Kassadin": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/kassadin",
        "snapshot": "sources/280bbb8cbc634e838c4c6ea0e78bf0d44874fe46a382b69e140a74658e8a261b",
        "sha256": "280bbb8cbc634e838c4c6ea0e78bf0d44874fe46a382b69e140a74658e8a261b",
        "retrieved_at": "2026-11-01T15:46:01.209181+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Void Stone",
          "description": "Gains a shield that aborbs 50 ( +30% AP ) magic damage for 1.5 seconds when casting an ability near a visible enemy champion.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/kassadin/void-stone.webp",
          "icon_sha256": "0a66299aa7f3f6effd0dda3704451bbfd056bee110469ce6cd8da9b205332e08"
        },
        {
          "slot": "Q",
          "name": "Null Sphere",
          "description": "Fires an orb that deals 80 / 145 / 210 / 275 ( +80% AP ) magic damage and silences the first enemy hit for 1 second.",
          "cooldown": "Cooldown: 10 / 9 / 8 / 7",
          "cost": "Cost: 70 / 75 / 80 / 85",
          "icon": "abilities/kassadin/null-sphere.webp",
          "icon_sha256": "f4eb699ceda24aae80dd2aa968aa0609111b30e2f670a234878dff2fc853de61"
        },
        {
          "slot": "W",
          "name": "Nether Blade",
          "description": "Enhances his next attack within 4 seconds to gain 250 range , deal an additional 50 / 80 / 110 / 140 ( +50% AP ) magic damage and restore 5% ( 15% vs. champions) of missing mana . If the attack killed the target Nether Blade's remaining cooldown is reduced by 50% .",
          "cooldown": "Cooldown: 10 / 10 / 10 / 10",
          "cost": "Cost: 20 / 20 / 20 / 20",
          "icon": "abilities/kassadin/nether-blade.webp",
          "icon_sha256": "d529e84dd8526b058f41536408f2bf056bed94465ecfae0785cb21ac2f0b425e"
        },
        {
          "slot": "E",
          "name": "Force Pulse",
          "description": "Deals 60 / 100 / 140 / 180 ( +50% AP ) magic damage to enemies and slows them by 30% for 1 second. Force Pulse is enhanced after 6 other abilities are cast nearby, dealing 40% increased damage and slowing for 90% instead.",
          "cooldown": "Cooldown: 12 / 10 / 8 / 6",
          "cost": "Cost: 70 / 75 / 80 / 85",
          "icon": "abilities/kassadin/force-pulse.webp",
          "icon_sha256": "74edf07428cac88d62c4a388f01210ba0c37fb18cc63c6b33f76455d58ce38a9"
        },
        {
          "slot": "R",
          "name": "Riftwalk",
          "description": "Blinks to target location and deals 80 / 100 / 120 ( +30% AP +1.5% Mana ) magic damage to nearby enemies. The next Riftwalk cast within 12 seconds deals 50% increased damage and costs 200% additional mana (Stacks 3 times).",
          "cooldown": "Cooldown: 5 / 4 / 2",
          "cost": "Cost: 70 / 70 / 70",
          "icon": "abilities/kassadin/riftwalk.webp",
          "icon_sha256": "44c1684df7b000f30e39b78056bee87d2aebd7ca7dd3a9f30f96ea96ab74243e"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "WQEEREEWRWWQRQQ"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            2,
            12,
            14,
            15
          ]
        ],
        "W": [
          [
            1,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            3,
            4,
            6,
            7
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10103.js",
          "snapshot": "sources/7032d08f041075bde83d7e2ad0f6560ab2c7a67a1dd65ae05ad22a16dd2e0423",
          "sha256": "7032d08f041075bde83d7e2ad0f6560ab2c7a67a1dd65ae05ad22a16dd2e0423",
          "retrieved_at": "2026-11-01T15:46:29.461133+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:29",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "虚空之石",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "虚无法球",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "虚空之刃",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "能量脉冲",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "虚空行走",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Katarina": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/katarina",
        "snapshot": "sources/3deb143e10ec820a4aff1217436abc0a3f2d9ed300118ca5ad0f1d4dc71ac22e",
        "sha256": "3deb143e10ec820a4aff1217436abc0a3f2d9ed300118ca5ad0f1d4dc71ac22e",
        "retrieved_at": "2026-11-01T15:46:00.249248+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Voracity",
          "description": "Whenever an enemy champion dies that Katarina has damaged in the last 3 seconds, her remaining ability cooldowns are reduced by 15 seconds. Katarina slashes at all nearby enemies whenever she picks up a Dagger , dealing 55 ( +100% bonus AD +34.5% AP ) magic damage .",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/katarina/voracity.webp",
          "icon_sha256": "06f6a60bf28a74426381bbd7cca735d6e5bf9a14817063aa44d9fdc48a269c60"
        },
        {
          "slot": "Q",
          "name": "Bouncing Blades",
          "description": "Throws a Dagger , dealing 75 / 115 / 155 / 195 ( +30% AP ) magic damage to the target and 2 nearby enemies. The Dagger then riccochets to the ground behind the initial strike point. The Dagger's time in the air is the same regardless of how many times it bounces.",
          "cooldown": "Cooldown: 10 / 9 / 8 / 7",
          "cost": "",
          "icon": "abilities/katarina/bouncing-blades.webp",
          "icon_sha256": "b7c405a0aec47f93263232673e18d7c8bc35f698efc5b058f6002240f9f5d2c9"
        },
        {
          "slot": "W",
          "name": "Preparation",
          "description": "Tosses a Dagger in the air and hastes Katarina by 50% / 60% / 70% / 80% .",
          "cooldown": "Cooldown: 14 / 13 / 12 / 11",
          "cost": "",
          "icon": "abilities/katarina/preparation.webp",
          "icon_sha256": "28b16f287cfc70cfaade797185e1079480b57c98f21c53ae4e45ad83abd3458f"
        },
        {
          "slot": "E",
          "name": "Shunpo",
          "description": "Blink to a location near a Dagger or unit, dealing 20 / 50 / 80 / 110 ( +50% AD +30% AP ) magic damage to the nearest enemy. Picking up a Dagger greatly reduces the Cooldown of Shunpo .",
          "cooldown": "Cooldown: 11 / 10 / 9 / 8",
          "cost": "",
          "icon": "abilities/katarina/shunpo.webp",
          "icon_sha256": "4ea963b4f550476a86a03fc35fa999df630d74a53649ba2394950822e3272732"
        },
        {
          "slot": "R",
          "name": "Death Lotus",
          "description": "Rapidly throws blades at the 3 nearest enemy champions, dealing 400 / 600 / 800 ( +260% AD +290% AP ) magic damage and applying 60% Grievous Wounds . Katarina can move and throw blades for up to 2.6 seconds. Grievous Wounds reduces the effectiveness of Healing and Regeneration effects.",
          "cooldown": "Cooldown: 60 / 50 / 40",
          "cost": "",
          "icon": "abilities/katarina/death-lotus.webp",
          "icon_sha256": "24d7aa00ff86b8689d0f8979eb8abf8a88e3e88c442481e7fa8cee62ebb098ff"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWQRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10095.js",
          "snapshot": "sources/d21056cdb2877d63c7e9159058525b4a1fb9946117320761a6a919a72870a3b5",
          "sha256": "d21056cdb2877d63c7e9159058525b4a1fb9946117320761a6a919a72870a3b5",
          "retrieved_at": "2026-11-01T15:46:29.502140+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:28",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "贪婪",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "弹射之刃",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "伺机待发",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "瞬步",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "死亡莲华",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Kayle": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/kayle",
        "snapshot": "sources/45dd17c4ff22121c2eb911bbdd39404b4e13cd2a8600ee51a311a88eed624220",
        "sha256": "45dd17c4ff22121c2eb911bbdd39404b4e13cd2a8600ee51a311a88eed624220",
        "retrieved_at": "2026-11-01T15:46:01.594902+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Divine Ascent",
          "description": "Kayle ascends as she gains levels. Level 1 : Attacks grant 4% ( +1% AP ) Attack Speed for 5 seconds, stacking up to 5 times. Gains 8% Movement Speed at max stacks. Level 5 : Attack range is increased to 525 . Level 9 : Attacks fire waves of flame at max stacks, dealing the passive damage of Starfire SpellBlade . Level 13 : Attack range is increased to 575 . The bonus from reaching max stacks becomes permanent.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/kayle/divine-ascent.webp",
          "icon_sha256": "cfff64db1ad276e4708731fa5f2ee203caf62c613af8cb3da50f1195c1f7806b"
        },
        {
          "slot": "Q",
          "name": "Radiant Blast",
          "description": "Launches a celestial sword, dealing 60 / 100 / 140 / 180 ( +60% AD +50% AP ) magic damage . Enemies hit are slowed by 26% / 34% / 42% / 50% for 2 seconds and their armor and magic resist is reduced by 20% for 4 seconds.",
          "cooldown": "Cooldown: 11 / 10 / 9 / 8",
          "cost": "Cost: 70 / 80 / 90 / 100",
          "icon": "abilities/kayle/radiant-blast.webp",
          "icon_sha256": "87cef64edca2507639e68700a7a9833b638dcc5db6caccd519da6a33a34a3421"
        },
        {
          "slot": "W",
          "name": "Celestial Blessing",
          "description": "Heals herself and an allied champion for 60 / 95 / 130 / 165 ( +30% AP ) and grants them 25% / 30% / 35% / 40% ( +0.08% AP ) Movement Speed for 2 seconds.",
          "cooldown": "Cooldown: 14 / 14 / 14 / 14",
          "cost": "Cost: 75 / 80 / 85 / 90",
          "icon": "abilities/kayle/celestial-blessing.webp",
          "icon_sha256": "7d491fb7fb62342baea5e7405753abbfb40b9a29f112b5ba110e0f792f794fda"
        },
        {
          "slot": "E",
          "name": "Starfire Spellblade",
          "description": "Passive : Attacks deal bonus 8 / 11 / 14 / 17 ( +5% bonus AD +15% AP ) magic damage . Active : Empowers her next attack to become ranged and deal bonus 7% / 8% / 9% / 10% ( +0.02% AP ) magic damage of the targets missing health. When Kayle reaches level 10, Starfire Spellblade affects all nearby enemies. Deal 60% damage to monsters.",
          "cooldown": "Cooldown: 8 / 7 / 7 / 6",
          "cost": "",
          "icon": "abilities/kayle/starfire-spellblade.webp",
          "icon_sha256": "2e6cce5cc83a9648d30c451fb143f280d7ec1d500cbb5fcd7ee44e81ce9d1dc8"
        },
        {
          "slot": "R",
          "name": "Divine Judgment",
          "description": "Grants invulnerability to an allied champion for 2.5 seconds. Blades rain down around the target, dealing 150 / 225 / 300 ( +85% bonus AD +60% AP ) magic damage .",
          "cooldown": "Cooldown: 100 / 90 / 80",
          "cost": "",
          "icon": "abilities/kayle/divine-judgment.webp",
          "icon_sha256": "111783ce1492920dc82a8363a74450a69a14ecacd42f7e9ee27aac72a8ec1609"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "EQWEREEQRQQWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [
          {
            "control_key": "starfire_rank",
            "slot": "E",
            "rank_basis": "learned",
            "ability": "Starfire Spellblade",
            "engine_semantics": "kayle_starfire, kayle_flame_wave, kayle_starfire_active",
            "initial_rank": 0,
            "source": "champion.source (exact slot/name); canonical champion_mechanics.json rule identity",
            "engine_evidence": "game_rules.py rank consumers and champion_mechanics.json explicit rule parameters"
          }
        ],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10041.js",
          "snapshot": "sources/233a980ff8d25b312c9e990c476060f9841530b562be6e1e2f5cad30a1e53152",
          "sha256": "233a980ff8d25b312c9e990c476060f9841530b562be6e1e2f5cad30a1e53152",
          "retrieved_at": "2026-11-01T15:46:29.754836+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:25",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "登神长阶",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "耀焰冲击",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "星界恩典",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "星火符刃",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "圣裁之刻",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Kayn": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/kayn",
        "snapshot": "sources/0d5fe3dd9b4ef9133e277c04a005be6c9a09a3ed9a623868138518498509935a",
        "sha256": "0d5fe3dd9b4ef9133e277c04a005be6c9a09a3ed9a623868138518498509935a",
        "retrieved_at": "2026-11-01T15:46:00.402203+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "The Darkin Scythe: Shadow Assassin",
          "description": "Kayn the Shadow Assassin fights Rhaast the Darkin Slayer for control. Damaging ranged champions charges the Shadow Assassin , and damaging melee champions charges the Darkin Slayer . At full charge, Kayn can permanently transform at his base. Shadow Assassin : Attacks and abilities deal an additional 52% - 66% magic damage for 3 seconds. This only occurs if Kayn has been out of combat for 6 seconds or used Umbral Trespass.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/kayn/the-darkin-scythe-shadow-assassin.webp",
          "icon_sha256": "096bc7f2a5d2a6f2871caef73ad29f27de3ba46ff376109466273b7a1cbffe9a"
        },
        {
          "slot": "Q",
          "name": "Reaping Slash: Shadow Assassin",
          "description": "Dashes and deals 70 / 100 / 130 / 160 ( +60% / 65% / 70% / 75% AD ) physical damage , then spins his scythe to deal the same damage. Deals and additional 35 physical damage to minions and monsters.",
          "cooldown": "Cooldown: 5 / 4 / 4 / 3",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/kayn/reaping-slash-shadow-assassin.webp",
          "icon_sha256": "a0e5e8fe86bcc905242ea9244542bacbd66197b75bef3b1ace9bda20300d1087"
        },
        {
          "slot": "W",
          "name": "Blade's Reach: Shadow Assassin",
          "description": "Swipes the scythe upward, dealing 105 / 165 / 225 / 285 ( +120% AD ) physical damage and slowing enemies hit by 90% decaying over 1.5 seconds.",
          "cooldown": "Cooldown: 9 / 8 / 7 / 6",
          "cost": "Cost: 50 / 60 / 70 / 80",
          "icon": "abilities/kayn/blade-s-reach-shadow-assassin.webp",
          "icon_sha256": "719b75c327d055d72bb27bbca22c5aaa6ed1df0475fb246f59af8dc31d93be27"
        },
        {
          "slot": "E",
          "name": "Shadow Step: Shadow Assassin",
          "description": "Gains 75% movement speed , slow immunity and the ability to move through terrain for 5 / 5.5 / 6 / 6.5 seconds. Kayn restores 100 / 120 / 140 / 160 health upon enetering terrain for the first time. Being immobilized or spending more than 1.2 consecutive seconds outisde of terrain or in combat with enemy champions ends this ability early.",
          "cooldown": "Cooldown: 6 / 6 / 6 / 6",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/kayn/shadow-step-shadow-assassin.webp",
          "icon_sha256": "7f449259156c486abfc67138f699201ed4070a40bddc6ded1cece73e64647202"
        },
        {
          "slot": "R",
          "name": "Umbral Trespass: Shadow Assassin",
          "description": "Infests an enemy champion for 2.5 seconds, becoming untargetable. When the infestation ends, the target is dealt 200 / 300 / 400 ( +165% AD ) physical damage and The Darkin Scythe's cooldown is refreshed. When Kayn is in his Darkin form, infesting a target with Umbral Trespass and the target dies, ending the infestation in advance, the ult will still trigger the health regeneration. Re-cast : Ends the infestation early.",
          "cooldown": "Cooldown: 59 / 52 / 44",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/kayn/umbral-trespass-shadow-assassin.webp",
          "icon_sha256": "5c847c5e151b1b42ce133bbd19ae89ed95e809c8079ed8ff7b9b4135c6aa448d"
        },
        {
          "slot": "P",
          "name": "The Darkin Scythe: Rhaast",
          "description": "Kayn the Shadow Assassin fights Rhaast the Darkin Slayer for control. Damaging ranged champions charge the Shadow Assassin , and damaging melee champions charge the Darkin Slayer . At full charge, Kayn can permanently transform at his base. Darkin Slayer : Kayn heals for 24% - 38% of physical damage dealt to champions.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/kayn/the-darkin-scythe-rhaast.webp",
          "icon_sha256": "a1b8aca9a41b81230e8ad8a81886cfd2bde56616c65c43692350f7b3f4612f40"
        },
        {
          "slot": "Q",
          "name": "Reaping Slash: Rhaast",
          "description": "Dashes and deals 70 / 100 / 130 / 130 / 160 ( 60% / 65% / 70% / 75% AD ) plus 7% ( +0.06% bonus AD ) of the target's maximum health as physical damage (max 235 / 310 / 385 / 460 vs monsters), then spins his scythe to deal the same damage. Deals an additional 35 physical damage to minions and monsters.",
          "cooldown": "Cooldown: 4 / 3 / 3 / 3",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/kayn/reaping-slash-rhaast.webp",
          "icon_sha256": "00a0f4fd8634dceccc2114a8ec2b3edb15677067d28c21aee7f51ec7b6be82aa"
        },
        {
          "slot": "W",
          "name": "Blade's Reach: Rhaast",
          "description": "Swipes the scythe upward, dealing 105 / 165 / 225 / 285 ( +120% AD ) physical damage . Enemies hit are knocked up for 1 second and slowed by 90% decaying over 1.5 seconds.",
          "cooldown": "Cooldown: 8 / 7 / 6 / 5",
          "cost": "Cost: 50 / 60 / 70 / 80",
          "icon": "abilities/kayn/blade-s-reach-rhaast.webp",
          "icon_sha256": "87faeb72f8ff5875fd3ca2f6e6476102aa25f936ec80ba58d91f43a8ca703466"
        },
        {
          "slot": "E",
          "name": "Shadow Step: Rhaast",
          "description": "Gains 35% Movement speed and can move through terrain for 5 / 5.5/ 6 / 6.5 seconds. Kayn restores 100 / 120 / 140 / 160 ( +50% AD ) health upon entering terrain for the first time. Being immobilized or spending more than 1.2 consecutive seconds outside of terrain or in combat with enemy champions ends this ability eary.",
          "cooldown": "Cooldown: 7 / 7 / 7 / 7",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/kayn/shadow-step-rhaast.webp",
          "icon_sha256": "b8f730054c95143de3423da393f5cb13fd85e95a1b1b5927382066ddab58cbb3"
        },
        {
          "slot": "R",
          "name": "Umbral Trespass: Rhaast",
          "description": "Infest an enemy champion for 2.5 seconds, becoming untargetable. When the infestation ends, the target is dealt 36% ( +0.13% AD ) of the targets maximum health as physical damage and Kayn heals for 27% ( +0.1% AD ) of the target's maximum health . When Kayn is in his Darkin form, infesting a target with Umbral Trespass and the target dies, ending the infestation in advance, the ult will still trigger the health regeneration. Re-cast : Ends the infestation early.",
          "cooldown": "Cooldown: 50 / 44 / 38",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/kayn/umbral-trespass-rhaast.webp",
          "icon_sha256": "c6122c1b3e2a7e6dfc636a087b18f2a7e874c306c6412a64a83e78c4d563b3d8"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWQERQQWRWWEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            3,
            6,
            7
          ]
        ],
        "W": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            4,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [
        "Empowered or transformed versions use the same upgrade slot as the base ability; no extra form-specific points are allocated."
      ],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10005.js",
          "snapshot": "sources/548194e4922be066dbdfe0b3506d850bf5381b450ed05402071bd906812cc223",
          "sha256": "548194e4922be066dbdfe0b3506d850bf5381b450ed05402071bd906812cc223",
          "retrieved_at": "2026-11-01T15:46:29.757039+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:23",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "暗裔魔镰",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "巨镰横扫",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "利刃纵贯",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "掠影步",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "裂舍影",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Kennen": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/kennen",
        "snapshot": "sources/0f84245b0e7acd43e72b02ca551ab76ead34912935a702041ee6e2ce1624ff01",
        "sha256": "0f84245b0e7acd43e72b02ca551ab76ead34912935a702041ee6e2ce1624ff01",
        "retrieved_at": "2026-11-01T15:46:01.489679+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Mark of the Storm",
          "description": "Hitting enemies with abilities places a Mark of the storm on them for 6 seconds. At 3 stacks, the enemy is tunned for 1.25 seconds and Kennen gains 25 Energy . Stunning an enemy multiple times within 6 seconds reduces the stun duration to 0.5 seconds.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/kennen/mark-of-the-storm.webp",
          "icon_sha256": "b4dea25d9ae330e275fb235b1543e00bb394616c7abb7ce8c62158a829df2ef6"
        },
        {
          "slot": "Q",
          "name": "Thundering Shuriken",
          "description": "Throws a shuriken, dealing 75 / 140 / 205 / 270 ( +75% AP ) magic damage to the first enemy hit.",
          "cooldown": "Cooldown: 7 / 6 / 5 / 4",
          "cost": "Cost: 60 / 55 / 50 / 45",
          "icon": "abilities/kennen/thundering-shuriken.webp",
          "icon_sha256": "7f4c833ec1dfb4441742c2cea77aba77d61e59b8ec1739479dca86adc6854a93"
        },
        {
          "slot": "W",
          "name": "Electrical Surge",
          "description": "Passive : Every 5th attack deals 55 / 65 / 75 / 85 ( +70% / 80% / 90% / 100% bonus AD + 30% AP ) bonus magic damage and applies a Mark of the Storm . Active : Shocks nearby enemies afflicted by Mark of the Storm , dealing 70 / 100 / 130 / 160 ( +80% AP ) magic damage .",
          "cooldown": "Cooldown: 12 / 10 / 8 / 6",
          "cost": "Cost: 40 / 40 / 40 / 40",
          "icon": "abilities/kennen/electrical-surge.webp",
          "icon_sha256": "778ec42cfb37639a04afa5518560c018413bcc38854c0b335fac8154ca85db5b"
        },
        {
          "slot": "E",
          "name": "Lightning Rush",
          "description": "Transform into an electric ball for 2 seconds, becoming unable to attack but gaining 100% bonus Movement Speed , and dealing 70 / 120 / 170 / 220 ( +70% AP ) magic damage to enemies he passes through. The bonus Movement Speed is doubled during the first 0.5 seconds. Kennen gains 50% /60% / 70% / 80% Attack Speed for 3 seconds upon exiting Lightning Rush. Gains 40 Energy when Lightning Rush first damages an enemy. Deals 50% damage to minions.",
          "cooldown": "Cooldown: 8 / 7 / 6 / 6",
          "cost": "Cost: 100 / 95 / 90 / 85",
          "icon": "abilities/kennen/lightning-rush.webp",
          "icon_sha256": "85f9ae809bc4ec24bd4930a10d6423be5bd0bdcb0724deddbdf597da79416b01"
        },
        {
          "slot": "R",
          "name": "Slicing Maelstrom",
          "description": "Summons a storm that grants Kennen 20 / 40 / 60 Armor and Magic Resist and deals 20 / 55 / 90 ( +13% AP ) magic damage every 0.5 seconds for 3 seconds. Each subsequent bolt against the same target deals 10% increased damage. Only applies 3 Marks of the Storm to a single target.",
          "cooldown": "Cooldown: 80 / 75 / 70",
          "cost": "Cost: 80 / 80 / 80",
          "icon": "abilities/kennen/slicing-maelstrom.webp",
          "icon_sha256": "8f89097cd68a8516f315e10dde1ebe101d3154a206b754810e101b155ae8b948"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWEQRQQWRWWEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [
          {
            "control_key": "electrical_surge_rank",
            "slot": "W",
            "rank_basis": "learned",
            "ability": "Electrical Surge",
            "engine_semantics": "kennen_electrical_surge passive",
            "initial_rank": 0,
            "source": "champion.source (exact slot/name); canonical champion_mechanics.json rule identity",
            "engine_evidence": "game_rules.py rank consumers and champion_mechanics.json explicit rule parameters"
          }
        ],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10061.js",
          "snapshot": "sources/1664adc45cfa5916792e8e551f69039c1c6b50fc4fc5e8d5d3bbfd5cc60e41dc",
          "sha256": "1664adc45cfa5916792e8e551f69039c1c6b50fc4fc5e8d5d3bbfd5cc60e41dc",
          "retrieved_at": "2026-11-01T15:46:29.758324+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:26",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "忍法！雷缚印",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "奥义！千鸟",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "奥义！电刃",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "奥义！雷铠",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "秘奥义！万雷天牢引",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Kha'Zix": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/khazix",
        "snapshot": "sources/95e98da904949163df0859de7b052b7899c6dc158c9e1aa5a86e42d5fc0ac7b3",
        "sha256": "95e98da904949163df0859de7b052b7899c6dc158c9e1aa5a86e42d5fc0ac7b3",
        "retrieved_at": "2026-11-01T15:46:02.246108+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Unseen Threat",
          "description": "Enhances next attack against enemy champions to deal an additional 15 + 8 per level ( +50% AD ) magic damage and slow by 25% for 2 seconds. Unseen Threat is refreshed when the enemy team loses sight of Kha'Zix.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/kha-zix/unseen-threat.webp",
          "icon_sha256": "bf18db27a6af57eff647118a73e4ecd5b15cdd27c6212faf4065756a2cb2dc48"
        },
        {
          "slot": "Q",
          "name": "Taste Their Fear",
          "description": "Slashes with his claws, dealing 75 / 110 / 145 / 180 ( +130% AD ) physical damage . If the target is isolated, the damage is increased by 110% . Evolved Reaper Claws : Attacks and Taste Their Fear gain 50 range and 40% Taste Their Fear's cooldown is refunded against isolated targets. Units without allied units or structures nearby are isolated .",
          "cooldown": "Cooldown: 5 / 4 / 4 / 3",
          "cost": "Cost: 20 / 20 / 20 / 20",
          "icon": "abilities/kha-zix/taste-their-fear.webp",
          "icon_sha256": "1182083be16f1b4a7d681665bd4c0f12f347611a8ca054cb1b496b07b9d03918"
        },
        {
          "slot": "W",
          "name": "Void Spike",
          "description": "Fires spikes that deal 70 / 110 / 150 / 190 ( +100% AD ) physical damage . Heals himself for 40 / 75 / 110 / 145 ( +50% AP ) if he is within the explosion. Evolved Spike Racks : Fires two additional spikes, revealing and slowing enemies by 60% for 2 seconds.",
          "cooldown": "Cooldown: 9 / 9 / 9 / 9",
          "cost": "Cost: 55 / 60 / 65 / 70",
          "icon": "abilities/kha-zix/void-spike.webp",
          "icon_sha256": "fe3374a6995ac6affc0cc5056d4e42913c00568b79831fef32f51ce0f6e332d4"
        },
        {
          "slot": "E",
          "name": "Leap",
          "description": "Leaps to target area, dealing 65 / 110 / 155 / 200 ( +20% AD ) physical damage . Evolved Wings : Gain 250 range on Leap. Leap's cooldown is reset on champion takedowns.",
          "cooldown": "Cooldown: 18 / 16 / 14 / 12",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/kha-zix/leap.webp",
          "icon_sha256": "f179d5c017e5a626840cc9368e8de642c0326dc41415ae79f65f3fccc582f47f"
        },
        {
          "slot": "R",
          "name": "Void Assault",
          "description": "Passive : Each rank in Void Assault allows Kha'Zix to evolve one of his abilites. Active : Becomes invisible and gain 40% Movement Speed for 1.25 seconds. Void Assault can be cast again within 10 seconds. Evolved Adaptive Cloaking : Invisibility duration is increased to 2 seconds and ca be cast up tot three times.",
          "cooldown": "Cooldown: 75 / 65 / 55",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/kha-zix/void-assault.webp",
          "icon_sha256": "058e23088eb94218c8a72eb3e3c30c6fa9cb06ff8638caf2979dcf71c3dba2fe"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWQERQQWRWWEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            3,
            6,
            7
          ]
        ],
        "W": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            4,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10017.js",
          "snapshot": "sources/5cd308af5bf8788a802a5b6df97f816a382383248efbcfc6c82bd73ba2a43da1",
          "sha256": "5cd308af5bf8788a802a5b6df97f816a382383248efbcfc6c82bd73ba2a43da1",
          "retrieved_at": "2026-11-01T15:46:29.758611+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:24",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "无形威胁",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "品尝恐惧",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "虚空突刺",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "跃击",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "虚空来袭",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Kindred": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/kindred",
        "snapshot": "sources/340ee0cc375ee01131355d10a39504723dfeb1ce61398da099fa8c7c5477e8e7",
        "sha256": "340ee0cc375ee01131355d10a39504723dfeb1ce61398da099fa8c7c5477e8e7",
        "retrieved_at": "2026-11-01T15:46:01.154500+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Mark of the Kindred",
          "description": "Marks targets with Mark of the Kindred for hunting. Deals additional 30% damage to small monsters, Red Bramblebacks, and Blue Sentinels that are marked. There are different ways to mark a target: 1. Auto-refresh: Every 25 seconds, the Mark on a monster expires and a new one is automatically applied. Marks on monsters are highlighted on the minimap . 2. Active: Tap the Mark button above your spells to mark an enemy champion. 40 second cooldown (120 second cooldown for marking same champion) . Scoring a takedown against a hunted target grants a Mark of the Kindred stack that empowers Kindred. The first 3 stacks gained grant 75 attack range , and every 3 stacks gained subsequently grant 25 attack range . Mark of the Kindred also empowers abilities and grants them the following effects: Dance of Arrows : Gain 0% bonus Attack Speed (5% of Mark of the Kindred stack count). Wolf's Frenzy : Deal bonus damage equal to 0% of current Health (1% of Mark of the Kindred stack count). Mounting Dread : Deal bonus damage equal to 0% of missing Health (1% of Mark of the Kindred stack count).",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/kindred/mark-of-the-kindred.webp",
          "icon_sha256": "39ddbf0367cf0402cbf968656551cde923309b08623e0b96d6078456d0d1b9db"
        },
        {
          "slot": "Q",
          "name": "Dance of Arrows",
          "description": "Rolls in a target direction and fires an arrow up to 3 enemies, dealing 50 / 75 / 100 / 125 ( +70% bonus AD ) physical damage and gaining 25% (+5% of Mark of the Kindred stack count) Attack Speed for 4 seconds. While in Wolf's Frenzy , this ability's cooldown is reduced to 4 seconds.",
          "cooldown": "Cooldown: 9 / 9 / 9 / 9",
          "cost": "Cost: 35 / 35 / 35 / 35",
          "icon": "abilities/kindred/dance-of-arrows.webp",
          "icon_sha256": "2a1497623d1f4769217c5a014efc881d0b3e0187f84da80fbb3215efad43390e"
        },
        {
          "slot": "W",
          "name": "Wolf's Frenzy",
          "description": "Passive : Gains Hunter's Vigor stacks when moving or attacking. After gaining 100 stacks, Kindred's next attack restores Health ( Health restored is based on missing Health and level). Active : Claims an area as territory and directs Wolf to maul the last target that Lamb attacked. Wolf's mauling deals 25 / 30 / 35 / 40 ( +20% of bonus AD +20% AP ) magic damage plus 1.5% (+1% of Mark of the Kindred stack count) of the target's current Health . Wolf deals 100% damage to marked monsters and other surrounding monsters, slowing them by 50% for 2 seconds. Health restored is the greatest when below 30% Health . Deals up to 300 damage to monsters.",
          "cooldown": "Cooldown: 17 / 16 / 15 / 14",
          "cost": "Cost: 40 / 40 / 40 / 40",
          "icon": "abilities/kindred/wolf-s-frenzy.webp",
          "icon_sha256": "2e8f3346b5df4050640faed90f9e12b42bf3486d9435fd810da533ac205cc3b9"
        },
        {
          "slot": "E",
          "name": "Mounting Dread",
          "description": "Slows and enemy by 50% ( +5% AP ) for 1 second. Kindred's third attack within 4 seconds of attacking an enemy directs Wolf to pounce on the target, dealing 90 / 115 / 140 / 165 ( +80% bonus AD ) physical damage plus 8% (+0.5% of Mark of the Kindred stack count) of the target's missing Health . Wolf's attack deals 90 / 115 / 140 / 165 ( +80% bonus AD ) bonus physical damage plus 12% (+0.75% of Mark of the Kindred stack count) of the target's missing Health to enemies below 25% ( +40% Crit Damage ) Health . Deals up to 300 damage against monsters.",
          "cooldown": "Cooldown: 13 / 12 / 11 / 10",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/kindred/mounting-dread.webp",
          "icon_sha256": "ff79aac2036c947fa46f2de861512cfe4570459f0c33d7db5cb6a77a473cf6e5"
        },
        {
          "slot": "R",
          "name": "Lamb's Respite",
          "description": "Lamb blesses the ground under herself for 3 seconds, creating a zone where all units within cannot be killed. When units inside the zone fall to 10% Health or below, they become invulnerable to damage for as long as they stay inside the zone, during which they cannot be healed. When the blessing ends, restores 150 / 200 / 250 Health to units within the zone and heals for 50 Health . This ability does not take effect against structures.",
          "cooldown": "Cooldown: 105 / 90 / 75",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/kindred/lamb-s-respite.webp",
          "icon_sha256": "7756b36ff5df9545e2d8b3ee2d226af3b4dc50d0bffd1124f4bb8d7fe369acdf"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "WQEQRQQWRWWEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            2,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            1,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10073.js",
          "snapshot": "sources/01e5a0512ca90ec515f59d6fd2cf41122a70e95e41622be285758f1909b8771e",
          "sha256": "01e5a0512ca90ec515f59d6fd2cf41122a70e95e41622be285758f1909b8771e",
          "retrieved_at": "2026-11-01T15:46:29.758029+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:27",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "千珏之印",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "乱箭之舞",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "狼灵狂热",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "横生惧意",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "羊灵生息",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Kog'Maw": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/kogmaw",
        "snapshot": "sources/be9087649300e72ffedb7a2f8f49c757b31b690997285283c5f90a971c17dca0",
        "sha256": "be9087649300e72ffedb7a2f8f49c757b31b690997285283c5f90a971c17dca0",
        "retrieved_at": "2026-11-01T15:46:01.765699+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Icathian Surprise",
          "description": "Icathian Gift : Can continue to move and gain 10% Movement Speed for 4 seconds after dying. The Movement Speed bonus increases to 50% over the duration. Explodes when the effect ends, dealing 105 ( +35 ) true damage to nearby enemies.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/kog-maw/icathian-surprise.webp",
          "icon_sha256": "637cf2413a0c32f4d91a70263c22de984dd64209b4c5aa6faf61cf7e438af7a3"
        },
        {
          "slot": "Q",
          "name": "Caustic Spittle",
          "description": "Vomits a corrosive projective that deals 90 / 150 / 210 / 270 ( +65% AP ) magic damage and shreds 20% / 24% / 28% / 32% Armor and Magic Resist for 4 seconds.",
          "cooldown": "Cooldown: 6 / 6 / 6 / 6",
          "cost": "Cost: 40 / 40 / 40 / 40",
          "icon": "abilities/kog-maw/caustic-spittle.webp",
          "icon_sha256": "35fb198eac3cb7432ac6ea3647fcca507c17d4efe092a55ffec85df5a8f3392f"
        },
        {
          "slot": "W",
          "name": "Bio-Arcane Barrage",
          "description": "Attacks gain 90 / 120 / 150 / 180 range and deal an additional 1.5% / 2.5% / 3.5% / 4.5% ( +0.01% AP ) max Health as magic damage for 8 seconds. Deals up to 100 damage against minions and monsters.",
          "cooldown": "Cooldown: 16 / 16 / 16 / 16",
          "cost": "Cost: 40 / 40 / 40 / 40",
          "icon": "abilities/kog-maw/bio-arcane-barrage.webp",
          "icon_sha256": "ee775de71da80254d69a37c8bcbe2389d3baeac2c3b4741ca6246f696ff58f98"
        },
        {
          "slot": "E",
          "name": "Void Ooze",
          "description": "Spits bile, dealing 80 / 130 / 180 / 230 ( +55% AP ) magic damage and leaving a trail of ooze for 3.5 seconds. Enemies in the ooze are slowed by 45% / 50% / 55% / 60% .",
          "cooldown": "Cooldown: 11 / 11 / 11 / 11",
          "cost": "Cost: 40 / 50 / 60 / 70",
          "icon": "abilities/kog-maw/void-ooze.webp",
          "icon_sha256": "b7ee7cb8c23dd21a019592ee6e1975642f38d1b8dc11070b618172e3587ffaa5"
        },
        {
          "slot": "R",
          "name": "Living Artillery",
          "description": "Corrosion Specialist (Passive) : Gains 10% / 20% / 30% Attack Speed . Acid Shot (Active) : Shoots acid at an area, revealing the area for 2 seconds. Then deals 80 / 120 / 160 ( +25% AP +75% bonus AD ) magic damage to enemies within and reveals them for seconds. This ability's damage scales with the target's missing Health , increasing by 0% - 50% based on 0% - 60% missing Health . Enemies below 40% Health take 200 / 280 / 360 ( +50% AP +150% bonus AD ) magic damage instead. Subsequent shots within 8 seconds cost an additional 50 Mana (max 500 Mana). This ability's range increases by 200 units with each rank gained.",
          "cooldown": "Cooldown: 2 / 1 / 1",
          "cost": "",
          "icon": "abilities/kog-maw/living-artillery.webp",
          "icon_sha256": "b6780ab3266682279b46e7918eb41ff06eb8bdf82c971442751ad8d239f49b55"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "WQEWRWWQRQQEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "W": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "E": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10110.js",
          "snapshot": "sources/35ee68fa0c0526c3f4bfc7b2fae7d83a7efbd4b1169410e35e55c42dde89de95",
          "sha256": "35ee68fa0c0526c3f4bfc7b2fae7d83a7efbd4b1169410e35e55c42dde89de95",
          "retrieved_at": "2026-11-01T15:46:29.758877+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:29",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "来自艾卡西亚的惊喜",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "腐蚀唾液",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "生化弹幕",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "虚空淤泥",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "活体大炮",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Lee Sin": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/lee-sin",
        "snapshot": "sources/3c3485ebd4d3713d2f8f06b6d7c1811564726fa4c83f894285eb45899787b010",
        "sha256": "3c3485ebd4d3713d2f8f06b6d7c1811564726fa4c83f894285eb45899787b010",
        "retrieved_at": "2026-11-01T15:46:02.276697+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Flurry",
          "description": "Lee Sin's Abilities grant him 40% Attack Speed for 2 attacks within 3 seconds. The first attack restores 20 energy and the second restores half of that amount.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/lee-sin/flurry.webp",
          "icon_sha256": "c4aca0092b19b49ffb7b26ec273be0d95954cbbe10dbadcaf6c2ceb74077908d"
        },
        {
          "slot": "Q",
          "name": "Sonic Wave / Resonating Strike",
          "description": "Sonic Wave : Fires an energy wave that deals 60 / 100 / 140 / 180 ( +90% AD ) physical damage to enemies and reveals them. Hitting an enemy allows Resonating Strike to be cast within 3 seconds. Resonating Strike : Dash to enemy marked by Sonic Wave, dealing 60 / 100 / 140 / 160 to 110 / 180 / 250 / 360 ( +90% to +200% AD ) physical damage based on its missing Health.",
          "cooldown": "Cooldown: 8 / 7 / 6 / 5",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/lee-sin/sonic-wave-resonating-strike.webp",
          "icon_sha256": "d3a08293b9ee638fa3c1c553b667e522d38b50c61b68403c33200c167cc40a16"
        },
        {
          "slot": "W",
          "name": "Safeguard / Iron Will",
          "description": "Safeguard : Dashes to target location. If an enemy is nearby on arrival, Lee Sin shield himself for 100 / 160 / 220 / 280 ( +100% AP ) for 2 seconds. Allows Iron Will to be cast within 3 seconds. Safeguard's cooldown is reduced by 0.5 seconds with each attack. Iron Will : Empowers next two attacks to deal an additional 26 / 39 / 52 / 65 ( +40% AP ) magic damage and gain 20% / 30% / 40% / 50% Omnivamp .",
          "cooldown": "Cooldown: 15 / 14 / 14 / 13",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/lee-sin/safeguard-iron-will.webp",
          "icon_sha256": "8070030ba5759a91d9719ce20c642864b3aa32df73c473c28a0c79ba09da0a47"
        },
        {
          "slot": "E",
          "name": "Tempest / Cripple",
          "description": "Tempest : Deals 35 / 70 / 105 / 140 ( +90% AD ) magic damage , to nearby enemies and reveals them for 3 seconds. Hitting an enemy allows Cripple to be cast within 3 seconds. Cripple : Slows enemies hit by Tempest by 30% / 40% / 50% / 60% , decaying over the course of 4 seconds.",
          "cooldown": "Cooldown: 8 / 8 / 8 / 8",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/lee-sin/tempest-cripple.webp",
          "icon_sha256": "e853ac3cbcd9f2f050d480dbf8a7b1c9e97f88edc8c810479d85ae4b26afbff4"
        },
        {
          "slot": "R",
          "name": "Dragon's Rage",
          "description": "Launches a powerful roundhouse kick at an enemy champion, dealing 150 / 375 / 600 ( +190% bonus AD + 12% / 15% / 18% of the target's maximum health ) physical damage and knocking them back. Enemies the target collides with along the way are knocked Airborne for 1 second and take 100 / 300 / 500 ( +200% bonus AD + 10% / 13% / 16% of the target's maximum Health ). Damage dealt to monsters is caped at 800 .",
          "cooldown": "Cooldown: 70 / 60 / 50",
          "cost": "",
          "icon": "abilities/lee-sin/dragon-s-rage.webp",
          "icon_sha256": "984bdb6ef39dae702847027dd86ef5b0429f2068dfd94fa00d19c75ec6f06456"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWQRQQWRWWEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            2,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10059.js",
          "snapshot": "sources/14e95101ecf98723694e0d6ca96f5ea8e952f3c4f5509a3ecbbea86593f06ad5",
          "sha256": "14e95101ecf98723694e0d6ca96f5ea8e952f3c4f5509a3ecbbea86593f06ad5",
          "retrieved_at": "2026-11-01T15:46:30.006083+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:26",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "疾风骤雨",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "天音波",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "金钟罩",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "天雷破",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "猛龙摆尾",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Leona": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/leona",
        "snapshot": "sources/18ac48613cd95db044011a70b6519d8aeec61251cc7029c72bd3bd4ea0337e91",
        "sha256": "18ac48613cd95db044011a70b6519d8aeec61251cc7029c72bd3bd4ea0337e91",
        "retrieved_at": "2026-11-01T15:46:02.311877+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Sunlight",
          "description": "Abilities apply Sunlight for 1.5 seconds. Other allied champions consume Sunlight when damaging enemies, dealing 34 bonus magic damage .",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/leona/sunlight.webp",
          "icon_sha256": "473a5cce966740059855f9d0d33fd3be5a186cfa3a212d71f60cd5a648b08fdd"
        },
        {
          "slot": "Q",
          "name": "Shield of Daybreak",
          "description": "Empowers the next attack to stun for 1 second and deal 15 / 50 / 85 /120 ( +30% AP ) magic damage .",
          "cooldown": "Cooldown: 5 / 5 / 5 / 5",
          "cost": "Cost: 45 / 50 / 55 / 60",
          "icon": "abilities/leona/shield-of-daybreak.webp",
          "icon_sha256": "5be57b7e2756ed119562a4a22fc663fd9f35565f4257599b88f4d1ca200b58c6"
        },
        {
          "slot": "W",
          "name": "Eclipse",
          "description": "For 3 seconds gain 30 / 50 / 70 / 90 ( +20% bonus Armor ) Armor and 30 / 50 / 70 / 90 ( +20% bonus MR ) Magic Resist . After the effect ends nearby enemies take 80 / 115 / 150 / 185 ( +40% AP ) magic damage . If an enemy is hit, Leona retains her defensive bonuses for 3 seconds.",
          "cooldown": "Cooldown: 13 / 12 / 11 / 10",
          "cost": "Cost: 60 / 60 / 60 / 60",
          "icon": "abilities/leona/eclipse.webp",
          "icon_sha256": "f5ab84666a3c2ed64e782e0276981ade857739b7216e1a8a43061fad22211f39"
        },
        {
          "slot": "E",
          "name": "Zenith Blade",
          "description": "Deals 60 / 115 / 170 / 225 ( +40% AP ) magic damage to enemies in a line. Leona roots the last champion hit for 0.5 seconds and dashes to them.",
          "cooldown": "Cooldown: 12 / 10 / 8 / 6",
          "cost": "Cost: 60 / 60 / 60 / 60",
          "icon": "abilities/leona/zenith-blade.webp",
          "icon_sha256": "8d7dd1199ab6012865e5d75f9c7edff215bca79e02f8287369fd5f040cb24a42"
        },
        {
          "slot": "R",
          "name": "Solar Flare",
          "description": "Calls down a beam of light, dealing 150 / 225 / 300 ( +80% AP ) magic damage and slowing by 80% for 1.75 seconds. Enemies in the center are stunned instead of slowed.",
          "cooldown": "Cooldown: 55 / 45 / 35",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/leona/solar-flare.webp",
          "icon_sha256": "0cbba5e555ea93022affe25327c383796d737363d7580e3c8ceaa8d8e615a476"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "EQWWRWWEREEQRQQ"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            2,
            12,
            14,
            15
          ]
        ],
        "W": [
          [
            3,
            4,
            6,
            7
          ]
        ],
        "E": [
          [
            1,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10044.js",
          "snapshot": "sources/571bd3be0294ee742502ecfd19f905406d4e09d3ed985b7cca378516305ea6aa",
          "sha256": "571bd3be0294ee742502ecfd19f905406d4e09d3ed985b7cca378516305ea6aa",
          "retrieved_at": "2026-11-01T15:46:30.010202+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:25",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "日光",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "破晓之盾",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "日蚀",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "天顶之刃",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "日炎耀斑",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Lillia": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/lillia",
        "snapshot": "sources/ee38656d8799131c80ab513ca09cc6146d6614c2ec2c1e72ac5c4390c3c8b2c3",
        "sha256": "ee38656d8799131c80ab513ca09cc6146d6614c2ec2c1e72ac5c4390c3c8b2c3",
        "retrieved_at": "2026-11-01T15:46:02.354988+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Dream-Laden Bough",
          "description": "Lillia's abilities apply Dream Dust, dealing 6% ( +0.012% AP ) max Health magic damage over 3 seconds. Lillia restores 24 ( +6% AP ) Health over the duration against large jungle monsters, and restores 17 ( +15% AP ) Health against champions. Dream Dust's damage is capped at 66 damage over the duration against jungle monsters. Dream Dust heal is 33% effective for each source beyond the first. Dream Dust can only heal from one monster at a time.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/lillia/dream-laden-bough.webp",
          "icon_sha256": "866e13689fd2620c5d1966706052e69554001b47ad5a041380d94e5012692157"
        },
        {
          "slot": "Q",
          "name": "Blooming Blows",
          "description": "Passive : Lillia's Ability hits grant 4.5% / 5.5% / 6.5% / 7.5% ( +0.02% AP ) Move Speed for 6 seconds, stacking up to 4 times. Active : Lillia whirls her censer, dealing 35 / 55 / 75 / 95 ( +40% AP ) magic damage , plus an additional 55 / 55 / 75 / 95 ( +40% AP ) true damage at the outer edge. Blooming Blows deals 110% damage to monsters.",
          "cooldown": "Cooldown: 6 / 5 / 5 / 4",
          "cost": "Cost: 65 / 65 / 65 / 65",
          "icon": "abilities/lillia/blooming-blows.webp",
          "icon_sha256": "f3844507284fdea816921d80c4ebb32cb3b7f1c2204d1624035ef992b2a91735"
        },
        {
          "slot": "W",
          "name": "Watch Out! Eep!",
          "description": "Lillia winds up a huge strike, dealing 70 / 110 / 150 / 190 ( +35% AP ) magic damage . Enemies in the center take 140 / 220 / 300 / 380 ( +70% AP ) magic damage instead. Deals 50% damage to minions.",
          "cooldown": "Cooldown: 14 / 13 / 12 / 11",
          "cost": "Cost: 65 / 65 / 65 / 65",
          "icon": "abilities/lillia/watch-out-eep.webp",
          "icon_sha256": "f0054249e69d086f3678eceae7cb0267860451703b16054c9b13230a79108a82"
        },
        {
          "slot": "E",
          "name": "Swirlseed",
          "description": "Lillia lobs a swirlseed overhead, dealing 70 / 105 / 140 / 175 ( +45% AP ) magic damage where it lands and revealing Slowing them by 40% for 3 seconds. If no enemies are hit the seed rolls until it hits an enemy or collides with terrain.",
          "cooldown": "Cooldown: 15 / 15 / 15 / 15",
          "cost": "Cost: 70 / 70 / 70 / 70",
          "icon": "abilities/lillia/swirlseed.webp",
          "icon_sha256": "2412a8b4dc1729af2aa9480eec0d4ac2413320c71ae11b146e9c00bee8499af2"
        },
        {
          "slot": "R",
          "name": "Lilting Lullaby",
          "description": "Lillia causes all enemy champions with Dream Dust to become Drowsy for 1.5 seconds. Afterward they fall Asleep for 2 / 2.3 / 2.5 seconds. When awakened by damage, they take an additional 100 / 150 / 200 ( +40% AP ) magic damage . Drowsy units are slowed over the duration, and fall Asleep afterwards. Asleep units can't move or act until damage by an enemy with non-periodic damage.",
          "cooldown": "Cooldown: 100 / 85 / 70",
          "cost": "Cost: 50 / 50 / 50",
          "icon": "abilities/lillia/lilting-lullaby.webp",
          "icon_sha256": "cc37cd237877dabb794b972c082ad20aada22893beb2884b22e584848e7b0083"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWEQRQQWRWWEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10135.js",
          "snapshot": "sources/97b76c1ec194650a858c5bb23ddd4b8149769dafeb3fa88277f35ee22b879c33",
          "sha256": "97b76c1ec194650a858c5bb23ddd4b8149769dafeb3fa88277f35ee22b879c33",
          "retrieved_at": "2026-11-01T15:46:30.006341+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:30",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "梦满枝",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "飞花挞",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "惊惶木",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "流涡种",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "夜阑谣",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Lissandra": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/lissandra",
        "snapshot": "sources/61551b1be251351c878997d33d7c6ad97835300d197b5b3791be094a24c60387",
        "sha256": "61551b1be251351c878997d33d7c6ad97835300d197b5b3791be094a24c60387",
        "retrieved_at": "2026-11-01T15:46:03.998778+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Iceborn Subjugation",
          "description": "When an enemy champion dies near Lissandra, they become a Frozen Thrall that seeks out living enemies. Frozen Thralls slow nearby enemies by 25% and shatter after 4 seconds, dealing 110 ( +40% AP ) magic damage .",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/lissandra/iceborn-subjugation.webp",
          "icon_sha256": "0485200e7a5d98bc0a5111c7bdb6f60e33554951d31b137c55f0a2decc60c0b0"
        },
        {
          "slot": "Q",
          "name": "Ice Shard",
          "description": "Throws a spear of ice that shatters when it hits an enemy, dealing 70 / 110 / 150 / 190 ( +70% AP ) magic damage and slowing the target by 20% / 25% / 30% / 35% for 1.5 seconds. Enemies behind the target take the same damage and are also slowed.",
          "cooldown": "Cooldown: 7 / 6 / 5 / 4",
          "cost": "Cost: 55 / 55 / 55 / 55",
          "icon": "abilities/lissandra/ice-shard.webp",
          "icon_sha256": "bcc493ca124b50a06b173f40329b298fbae2fe29d21138b17b33eaf9d171abe1"
        },
        {
          "slot": "W",
          "name": "Ring of Frost",
          "description": "Creates an ice field, rooting enemies within for 1.25 / 1.35 / 1.45 / 1.55 seconds and dealing 55 / 100 / 145 / 190 ( +55% AP ) magic damage .",
          "cooldown": "Cooldown: 10 / 9 / 8 / 7",
          "cost": "Cost: 40 / 40 / 40 / 40",
          "icon": "abilities/lissandra/ring-of-frost.webp",
          "icon_sha256": "5dcb9705268163e10915fd528919c73278904ab7536a670b2503e259e65ca34a"
        },
        {
          "slot": "E",
          "name": "Glacial Path",
          "description": "First Cast : Casts forth an ice claw that deals 50 / 95 / 140 / 185 ( +40% AP ) magic damage when it hits enemies in its path. Can be recast while the ice claw is moving. Recast : Lissandra teleports to the ice claw, which then disappears.",
          "cooldown": "Cooldown: 19 / 16 / 13 / 10",
          "cost": "Cost: 85 / 85 / 85 / 85",
          "icon": "abilities/lissandra/glacial-path.webp",
          "icon_sha256": "269c9a83d76db78691bebe21e74b85fa6b1c6894ef024b59695987f54e631f80"
        },
        {
          "slot": "R",
          "name": "Frozen Tomb",
          "description": "Summons dark ice on an enemy champion or herself. Dark ice emanates from the target for 3 seconds, dealing 150 / 250 / 350 ( +75% AP ) magic damage and slowing enemies it touches by 30% / 45% / 60%. Cast on enemies : Encases an enemy champion in dark ice, stunning them for 1.5 seconds. Self-Cast : Encases herself in dark ice, entering stasis for 2.5 seconds and restoring 100 / 150 / 200 ( +40% AP ) Health , increased by 0% - 100% based on her missing Health . Maximum healing is granted when her Health drops to 30% or lower. When auto-aiming, self-casts Frozen Tomb automatically.",
          "cooldown": "Cooldown: 75 / 66 / 57",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/lissandra/frozen-tomb.webp",
          "icon_sha256": "dff66ec1bce5473bc6cccf5283b090d3984e6abcbec2a4d523824db6ca2ff4e8"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWEQRQQWRWWEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10109.js",
          "snapshot": "sources/7f5a58a1c23d1a1b189e3b129e6acab2159ee9a6ed0dbbe22880ed0676fbc117",
          "sha256": "7f5a58a1c23d1a1b189e3b129e6acab2159ee9a6ed0dbbe22880ed0676fbc117",
          "retrieved_at": "2026-11-01T15:46:30.009945+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:29",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "冰脉驱役",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "寒冰碎片",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "冰霜之环",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "冰川之径",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "冰封陵墓",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Lucian": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/lucian",
        "snapshot": "sources/9b6bae77da6f6c70f9d8b83504cd53390c2c439bd1a04350aa9a7927408efda6",
        "sha256": "9b6bae77da6f6c70f9d8b83504cd53390c2c439bd1a04350aa9a7927408efda6",
        "retrieved_at": "2026-11-01T15:46:04.163957+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Lightslinger",
          "description": "After using an Ability, Lucian's next Attack within 3.5 seconds will fire two shots. The second shot deals 40% / 50% / 60% physical damage , increased to 100% against minions. The second shot is a separate Attack that applies on-hit effects and can critical strike. Vigilance : When healed or shielded by allied champions, or when a nearby enemy champion is immobilized, Lucian's next two attacks deal an additional 20 ( +10% AD ) magic damage (stores up to four empowered attacks).",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/lucian/lightslinger.webp",
          "icon_sha256": "2d3e173dda5bc18053ed09d0e918362e46e400e1050eeece7d8c018c7493023c"
        },
        {
          "slot": "Q",
          "name": "Piercing Light",
          "description": "Shoots a bolt of piercing light through an enemy unit, damaging enemies in a line for 75 / 125 / 175 / 225 ( +100% bonus AD ) physical damage .",
          "cooldown": "Cooldown: 9 / 8 / 6 / 5",
          "cost": "Cost: 50 / 60 / 70 / 80",
          "icon": "abilities/lucian/piercing-light.webp",
          "icon_sha256": "c4d2348f2553dadc3499154313b8a1706e317701c122a125a954e9692bbb4643"
        },
        {
          "slot": "W",
          "name": "Ardent Blaze",
          "description": "Fires a shot that explodes at the end of its range or on the first enemy hit, dealing 75 / 125 / 175 / 225 ( +90% AP ) magic damage , briefly revealing enemies and marking them for 6 seconds. When Lucian or an ally damages a marked enemy, Lucian gains 65 / 70 / 75 / 80 Movement Speed for 1 second. When allied champions trigger the mark, it grants Lucian Vigilance.",
          "cooldown": "Cooldown: 13 / 11 / 10 / 8",
          "cost": "Cost: 70 / 70 / 70 / 70",
          "icon": "abilities/lucian/ardent-blaze.webp",
          "icon_sha256": "f9b167653c18e762d3e0fb87336e4131ba3dd3a7f416ce568f6cb8afaec878df"
        },
        {
          "slot": "E",
          "name": "Relentless Pursuit",
          "description": "Quickly dashes a short distance. Cooldown is reduced by 1 second whenever Lucian hits an enemy with Lightslinger ( 2 seconds for champions).",
          "cooldown": "Cooldown: 21 / 18 / 16 / 13",
          "cost": "Cost: 45 / 30 / 15",
          "icon": "abilities/lucian/relentless-pursuit.webp",
          "icon_sha256": "0312a00a066f1770d28735b5b5aaabfa123854717251ca57177af0ca6e53344b"
        },
        {
          "slot": "R",
          "name": "The Culling",
          "description": "Fires rapidly in a direction for 3 seconds. Each shot deals 20 / 25 / 30 ( +25% AD +15% AP ) physical damage to the first enemy hit. Fires a total of 20 ( +20 x Critical Rate ) bullets. Lucian may use Relentless Pursuit during The Culling. Recast to cancel early. Minions take 200% damage from The Culling.",
          "cooldown": "Cooldown: 70 / 65 / 60",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/lucian/the-culling.webp",
          "icon_sha256": "6b52c448418d8ae5effa9837b0d702a735ab016f0bab6dcc7230353592234553"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWQRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10042.js",
          "snapshot": "sources/d019114e09a6184694c9280a7402388051952e4ff8b6c6424a6f88a973918b3d",
          "sha256": "d019114e09a6184694c9280a7402388051952e4ff8b6c6424a6f88a973918b3d",
          "retrieved_at": "2026-11-01T15:46:30.015643+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:25",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "圣光银弹",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "透体圣光",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "热诚烈弹",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "冷酷追击",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "圣枪洗礼",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Lulu": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/lulu",
        "snapshot": "sources/2b3d6cea1a340420d462ac54aaea2a3408fde3478d22ae54c73e604742c299b4",
        "sha256": "2b3d6cea1a340420d462ac54aaea2a3408fde3478d22ae54c73e604742c299b4",
        "retrieved_at": "2026-11-01T15:46:04.383750+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Pix, Faerie Companion",
          "description": "Pix fires 3 bolts that deal a total of 6 ( +6 per level +15% AP ) magic damage when Lulu attacks an enemy unit. These bolts can be blocked by other units. Pix can attach to other champions by casting some of Lulu's abilities, revealing them if they are an enemy or aiding their attacks instead of Lulu's if they are an ally.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/lulu/pix-faerie-companion.webp",
          "icon_sha256": "4f07a017f9bbf224ca96d599d18b45506a29529dfcc74c62f80473d9bc42c3ba"
        },
        {
          "slot": "Q",
          "name": "Glitterlance",
          "description": "Lulu and Pix each fire a piercing bolt that deals 50 / 85 / 120 / 155 ( +30% AP ) magic damage tot the first enemy hit and 70% damage to additional enemies. Enemies hit are slowed by 80% , decaying over the next 2 seconds.",
          "cooldown": "Cooldown: 7 / 7 / 7 / 7",
          "cost": "Cost: 50 / 55 / 60 / 65",
          "icon": "abilities/lulu/glitterlance.webp",
          "icon_sha256": "934518e35bb5f3ba9f27c4a0a00aa454b95c5ed77cd1607ca26cf59f5fa75550"
        },
        {
          "slot": "W",
          "name": "Whimsy",
          "description": "Pix creates a faerie ring, attaching to the first champion that enters for 5 seconds and casting an additional effect on them. On Allies : Grants 20% ( +5% AP ) Movement Speed and 25% / 30% / 35% / 40% Attack Speed for 3.5 / 4 / 4.5 / 5 seconds. On Enemies : Polymorphs the enemy for 1 / 1.25 / 1.5 / 1.75 seconds, disabling them from attacking or casting abilities and reducing their Movement Speed by 60. Reveals them while attached. Pix's ring will prioritize polymorphing enemies over speeding up allies.",
          "cooldown": "Cooldown: 17 / 16 / 15 / 14",
          "cost": "Cost: 65 / 65 / 65 / 65",
          "icon": "abilities/lulu/whimsy.webp",
          "icon_sha256": "ec215495fedec70f58e895f2f2c8842e8525e8a39a41999dcd41e0895ea7ee12"
        },
        {
          "slot": "E",
          "name": "Help, Pix!",
          "description": "Attaches Pix to target enemy or ally champion for 5 seconds. On Allies: Grants a shield that absorbs 60 / 100 / 140 / 180 ( +60% AP ) damage for 2.5 seconds. On Enemies : Deals 80 / 120 / 160 / 200 ( +40% AP ) magic damage and grants True Sight of them.",
          "cooldown": "Cooldown: 10 / 10 / 10 / 10",
          "cost": "Cost: 60 / 70 / 80 / 90",
          "icon": "abilities/lulu/help-pix.webp",
          "icon_sha256": "91382a317122e22613e6c5aabe9e127305d852ae8d81577b67bad79ccacfce3b"
        },
        {
          "slot": "R",
          "name": "Wild Growth",
          "description": "Enlarges an ally champion, knocking nearby enemies into the air for 0.75 seconds. For the next 7 seconds, the ally champion gains 250 / 400 / 55 0 ( +50% AP ) bonus Health and slows nearby enemies by 30% .",
          "cooldown": "Cooldown: 80 / 70 / 60",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/lulu/wild-growth.webp",
          "icon_sha256": "b6ff9ecac09964da5afa89989b3b08cac63e6f63eccd4e164957538bbf3db75c"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "EQWEREEWRWWQRQQ"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            2,
            12,
            14,
            15
          ]
        ],
        "W": [
          [
            3,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10048.js",
          "snapshot": "sources/e3b1024ff329123a9ee0835553108bf2c182539f5329da3666f98db0404dc9cc",
          "sha256": "e3b1024ff329123a9ee0835553108bf2c182539f5329da3666f98db0404dc9cc",
          "retrieved_at": "2026-11-01T15:46:30.254377+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:25",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "皮克斯，仙灵伙伴",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "闪耀长枪",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "奇思妙想",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "帮忙，皮克斯！",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "狂野生长",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Lux": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/lux",
        "snapshot": "sources/5477fbbfd4b96f02123085d04fdb51e69406911d6a872b1ccb679edad5e4de0e",
        "sha256": "5477fbbfd4b96f02123085d04fdb51e69406911d6a872b1ccb679edad5e4de0e",
        "retrieved_at": "2026-11-01T15:46:03.210951+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Illumination",
          "description": "Damaging abilities afflict enemies with Illumination for 5 seconds. Illumination empowers Lux's next attack against that target, dealing 18 + Level x 7.5 ( +25% AP ) magic damage .",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/lux/illumination.webp",
          "icon_sha256": "cb5e1a72578cacf643673127e5ee5104f01c4420e12d4a433a1632a83f4d2a04"
        },
        {
          "slot": "Q",
          "name": "Light Binding",
          "description": "Casts out a ball of light that roots enemy champions and large monsters for 2 seconds and deals 60 / 120 / 180 / 240 ( +70% AP ) magic damage to them. Roots up to 2 enemies. Minions and small monsters hit by the ball of light will be dealt 90% damage, but they will not be marked by Illumination or become rooted.",
          "cooldown": "Cooldown: 9 / 9 / 9 / 9",
          "cost": "Cost: 45 / 50 / 55 / 60",
          "icon": "abilities/lux/light-binding.webp",
          "icon_sha256": "2bd6891baffca0dba55ab430aebcd587876049619ff8f340b60570af4b93bb8e"
        },
        {
          "slot": "W",
          "name": "Prismatic Barrier",
          "description": "Throws Lux's wand in a direction, shielding allied champions it passes through from 25 / 50 / 75 / 100 ( +18% AP ) damage for 3 seconds. After reaching its apex it returns to Lux, shielding allied champions for an additional 40 / 70 / 100 / 130 ( +28% AP ) damage .",
          "cooldown": "Cooldown: 12 / 11 / 10 / 9",
          "cost": "Cost: 60 / 60 / 60 / 60",
          "icon": "abilities/lux/prismatic-barrier.webp",
          "icon_sha256": "c3bb93c4c8a1b1481a95adfdd74c89196ee7010aa2748b5e4968510a160a1203"
        },
        {
          "slot": "E",
          "name": "Lucent Singularity",
          "description": "Creates a zone of light that slows nearby enemies by 30% / 35% / 40% / 45% . After 5 seconds the zone detonates, dealing 65 / 130 / 195 / 260 ( +55% AP ) magic damage . Re-cast : Detonate the zone.",
          "cooldown": "Cooldown: 10 / 9 / 9 / 8",
          "cost": "Cost: 70 / 80 / 90 / 100",
          "icon": "abilities/lux/lucent-singularity.webp",
          "icon_sha256": "501faac537da40ef3662ab79a83db657b2ea73e86ea578665a3e3f882e039772"
        },
        {
          "slot": "R",
          "name": "Final Spark",
          "description": "Fires a beam of light dealing 300 / 400 / 500 ( +75% AP ) magic damage to all enemies in a line. Final Spark ignites and refreshes Illumination .",
          "cooldown": "Cooldown: 55 / 45 / 40",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/lux/final-spark.webp",
          "icon_sha256": "0dfe2e6e21e699e86d606f945852ed88a272802aa1b2558f533fa7ae4ea894e1"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "EQWEREEQRQQWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10003.js",
          "snapshot": "sources/0a0a092989a2d6d05935f2645163dd5d7fbeda7cbe241f3dc4546f0242327940",
          "sha256": "0a0a092989a2d6d05935f2645163dd5d7fbeda7cbe241f3dc4546f0242327940",
          "retrieved_at": "2026-11-01T15:46:30.258809+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:23",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "光芒四射",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "光之束缚",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "曲光屏障",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "透光奇点",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "终极闪光",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Malphite": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/malphite",
        "snapshot": "sources/19156070e096b71a3472d963e07da24758d847cc83ce7cb99242e57c2b12d88d",
        "sha256": "19156070e096b71a3472d963e07da24758d847cc83ce7cb99242e57c2b12d88d",
        "retrieved_at": "2026-11-01T15:46:04.315610+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Granite Shield",
          "description": "Shield 72 ( 10% maximum HP ) damage after not taking damage for 8 seconds.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/malphite/granite-shield.webp",
          "icon_sha256": "114bb864e344d1640015d45b1f1d546559a8ad4a679fa591cdeefb123a7967f0"
        },
        {
          "slot": "Q",
          "name": "Seismic Shard",
          "description": "Launches a shard that deals 70 / 130 / 190 / 250 ( +45% AP ) magic damage , slowing the target by 20% / 25% / 30% / 35% , and hasting Malphite by 15% for 3 seconds.",
          "cooldown": "Cooldown: 8 / 8 / 8 / 8",
          "cost": "Cost: 75 / 80 / 85 / 90",
          "icon": "abilities/malphite/seismic-shard.webp",
          "icon_sha256": "e9b931027838ae07e24e41665953d551998cea1f9ff64f11acfbfda9f91903f4"
        },
        {
          "slot": "W",
          "name": "Thunderclap",
          "description": "Passive: Gains 8 Armor ( 25% / 30% / 35% / 40% Armor ). Active: For the next 6 seconds, attacks deal 20 / 30 / 40 / 50 ( +20% AP +15% Armor ) physical damage in a cone. The first attack is empowered to deal 30 / 45 / 60 / 75 ( +40% AP +20% Armor ) bonus physical damage to the target.",
          "cooldown": "Cooldown: 10 / 9 / 8 / 7",
          "cost": "Cost: 25 / 25 / 25 / 25",
          "icon": "abilities/malphite/thunderclap.webp",
          "icon_sha256": "4e9d5ec5857fc76ecf91955de7c612d7283e7117be66397f397dcdf708da5b3f"
        },
        {
          "slot": "E",
          "name": "Ground Slam",
          "description": "Slams the ground, dealing 60 / 110 / 160 / 210 ( +45% AP +40% Armor ) magic damage to nearby enemies and reducing their attack speed by 35% / 40% / 45% / 50% for 3 seconds.",
          "cooldown": "Cooldown: 7 / 7 / 7 / 7",
          "cost": "Cost: 55 / 60 / 65 / 70",
          "icon": "abilities/malphite/ground-slam.webp",
          "icon_sha256": "f18a1c8f9246be1b3f521ef8bc02bdec8623728a1905d9600a95ae5e0a4bcc4d"
        },
        {
          "slot": "R",
          "name": "Unstoppable Force",
          "description": "Charges to the target area, dealing 200 / 300 / 400 ( +90% AP ) magic damage and knocking up nearby enemies for 1.5 seconds.",
          "cooldown": "Cooldown: 85 / 80 / 75",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/malphite/unstoppable-force.webp",
          "icon_sha256": "0075406431689990e0ca801581abab5d9a6382816b46dd812639bde9658bdaaa"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "WEQWRWWEREEQRQQ"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "W": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10083.js",
          "snapshot": "sources/bbeccfa33d257a91a260d29d42ed73ac0adcf50af26e78986e20f1bc8a6bbc07",
          "sha256": "bbeccfa33d257a91a260d29d42ed73ac0adcf50af26e78986e20f1bc8a6bbc07",
          "retrieved_at": "2026-11-01T15:46:30.269897+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:27",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "花岗岩护盾",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "地震碎片",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "雷霆拍击",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "大地震颤",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "势不可挡",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Maokai": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/maokai",
        "snapshot": "sources/637bd3b52d76ab7f2a17d0a21fb36b4f14ee7d657b95fa7c0bb51e2f81e50894",
        "sha256": "637bd3b52d76ab7f2a17d0a21fb36b4f14ee7d657b95fa7c0bb51e2f81e50894",
        "retrieved_at": "2026-11-01T15:46:03.460084+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Sap Magic",
          "description": "Every 24 seconds, Maokai's next attack restores 2 x 30 (+4 x 10%) Health . Using an ability or being hit by an enemy champion's ability reduces this ability's cooldown by 3 seconds.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/maokai/sap-magic.webp",
          "icon_sha256": "a5878a0d2101b49add9150b753cd4845fc7b151d1c72b0d5a09a8523312cc59a"
        },
        {
          "slot": "Q",
          "name": "Bramble Smash",
          "description": "Smashes his fist into the ground, unleashing a shockwave that deals 60 / 115 / 170 / 225 ( +50% AP ) magic damage plus 2.5% / 3% / 3.5% / 4% of the target's max Health and slows them briefly for 0.25 seconds. Nearby enemies are also knocked back. Deals 120 bonus damage to monsters.",
          "cooldown": "Cooldown: 8 / 7 / 6 / 5",
          "cost": "Cost: 60 / 60 / 60 / 60",
          "icon": "abilities/maokai/bramble-smash.webp",
          "icon_sha256": "12470f1cfa04c50d1bacf0b12f35aa1efce4fda8a8d1f205a4474ef285c3a1e9"
        },
        {
          "slot": "W",
          "name": "Twisted Advance",
          "description": "Transforms into a moving mass of roots, becoming untargetable and dashing to an enemy champion target. Upon arrival, he roots them for 0.8 / 0.95 / 1.1 / 1.25 seconds and deals 60 / 95 / 130 / 165 ( +50% AP ) magic damage . Deals 180% damage to monsters.",
          "cooldown": "Cooldown: 14 / 13 / 12 / 11",
          "cost": "Cost: 60 / 60 / 60 / 60",
          "icon": "abilities/maokai/twisted-advance.webp",
          "icon_sha256": "b5e677fa791e588def1a17065f3d8fdbfcbc578a90c82591efac17dcb3cdc5b8"
        },
        {
          "slot": "E",
          "name": "Sapling Toss",
          "description": "Flings a sapling, which stands watch at where it lands for 20 seconds. Saplings chase nearby enemies, detonating on arrival to deal 60 / 90 / 120 / 150 ( +25% AP +6% bonus Health ) magic damage and slow nearby enemies by 30% for 2 seconds. If placed in brush, saplings stand watch for 30 seconds and cause a larger explosion upon catching up to targets, dealing 200% magic damage and slowing enemies hit by 30% ( +1.5% per 100 bonus Health and +1% per 100 bonus AP ) for 3 seconds. Saplings deal 130% damage to minions regardless of whether they are placed in brush or not. Saplings deal a maximum of 300 damage to monsters.",
          "cooldown": "Cooldown: 14 / 14 / 14 / 14",
          "cost": "Cost: 45 / 45 / 45 / 45",
          "icon": "abilities/maokai/sapling-toss.webp",
          "icon_sha256": "a2b8c68cc938c62bee0103ca3d2d515594138adb7f77823a6d36e21b1e9f7066"
        },
        {
          "slot": "R",
          "name": "Nature's Grasp",
          "description": "Summons a slow-moving colossal wave of brambles, dealing 175 / 250 / 325 ( +65% AP ) magic damage and rooting enemies hit for 0.8 seconds. Root duration increases with distance traveled by the brambles. Hitting an enemy champion with this ability grants Maokai 40% / 50% / 60% Movement Speed , which decays over 2 seconds. Hitting a new target refreshes this duration.",
          "cooldown": "Cooldown: 80 / 75 / 70",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/maokai/nature-s-grasp.webp",
          "icon_sha256": "d1c207d33fcba38dc92c4f190333e7e34e8445cd63466d11675e1c3d5153031d"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "WQEQRQQWRWWEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            2,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            1,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10074.js",
          "snapshot": "sources/c24e3d2f40ad73989a9664d670ad29ace04d5e17393adab87381f8bc795f42b6",
          "sha256": "c24e3d2f40ad73989a9664d670ad29ace04d5e17393adab87381f8bc795f42b6",
          "retrieved_at": "2026-11-01T15:46:30.261044+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:27",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "吸元秘术",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "荆棘重击",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "扭曲突刺",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "树苗投掷",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "自然之握",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Master Yi": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/master-yi",
        "snapshot": "sources/f0daa350eabc5f0b6cf88af3dd79aacaa87f7053c7c4864b0cecb0d00d87b4af",
        "sha256": "f0daa350eabc5f0b6cf88af3dd79aacaa87f7053c7c4864b0cecb0d00d87b4af",
        "retrieved_at": "2026-11-01T15:46:04.055244+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Double Strike",
          "description": "Every 4th consecutive attack strikes twice for 78 ( 150% AD ) physical damage .",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/master-yi/double-strike.webp",
          "icon_sha256": "67f9eb497af825006b81f9e7a48ddaeef00c6d4c8c4995a1737e69b4c37758bf"
        },
        {
          "slot": "Q",
          "name": "Alpha Strike",
          "description": "Becomes untargetable and strikes up to 4 enemies for 20 / 60 / 100 / 140 ( +60% AD ) physical damage . If there are no other targets Master Yi will strike a previous target for 25% damage. Attacks reduce the cooldown of Alpha Strike by 1 seconds. Deals 105 / 135 / 165 / 195 bonus damage to monsters and minions. Can critically strike , dealing 60% bonus damage.",
          "cooldown": "Cooldown: 17 / 16 / 15 / 14",
          "cost": "Cost: 55 / 60 / 65 / 70",
          "icon": "abilities/master-yi/alpha-strike.webp",
          "icon_sha256": "25c3954684ffd4a6b8c1e0bf046d41d224293850c57849b21569a4ab0fd875cb"
        },
        {
          "slot": "W",
          "name": "Meditate",
          "description": "Channels for up to 4 seconds, gaining 55% / 60% / 65% / 70% damage reduction and healing for 40 / 60 / 80 / 100 ( +25% AP ) each second. Damage reduction increases to 90% during the first 0.5 seconds. Damage reduction effect during the first 0.5 seconds of channeling will continue after the channeling is interrupted. Heal is increased the lower Master Yi's Health is, up to 100% .",
          "cooldown": "Cooldown: 25 / 25 / 25 / 25",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/master-yi/meditate.webp",
          "icon_sha256": "c81ca504e7513414b028b68758f73b298e3d922311e935e4b4e27cba1e22dd66"
        },
        {
          "slot": "E",
          "name": "Wuju Style",
          "description": "Passive : Gains 8% AD while Wuju style is off cooldown. Active : Attacks deal 30 / 35 / 40 / 45 ( +25% bonus AD ) true damage for 5 seconds. The ability resets attacks.",
          "cooldown": "Cooldown: 17 / 16 / 15 / 14",
          "cost": "",
          "icon": "abilities/master-yi/wuju-style.webp",
          "icon_sha256": "fb8f56e387eb3c315d97b15917c47c61c3670e5f6a880f7b7288435698178640"
        },
        {
          "slot": "R",
          "name": "Highlander",
          "description": "Passive : Reduces Meditate's Cooldown by 90% and other basic abilities Cooldown by 70% on takedown. Active : Becomes immune to slows, gains 35% / 45% / 55% Movement Speed and 30% / 60% / 90% Attack Speed for 7 seconds. Takedowns extend the duration by 7 seconds.",
          "cooldown": "Cooldown: 70 / 65 / 60",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/master-yi/highlander.webp",
          "icon_sha256": "97734765b8f7a19d0f43a0255d941b79416550be4564d3aa0f3624c5a087ced2"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEQWRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            3,
            6,
            7
          ]
        ],
        "W": [
          [
            4,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10070.js",
          "snapshot": "sources/e04fc8038f321354426eec870bb6c70c92f07c1c9564cc81b2109054bb250b9a",
          "sha256": "e04fc8038f321354426eec870bb6c70c92f07c1c9564cc81b2109054bb250b9a",
          "retrieved_at": "2026-11-01T15:46:30.269463+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:27",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "双重打击",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "阿尔法突袭",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "冥想",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "无极剑道",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "高原血统",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Mel": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/mel",
        "snapshot": "sources/d4873bd0a0171bb578e83716082a0354ecf9bcfebc17bd3f39ab92c0df787b2f",
        "sha256": "d4873bd0a0171bb578e83716082a0354ecf9bcfebc17bd3f39ab92c0df787b2f",
        "retrieved_at": "2026-11-01T15:46:03.841628+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Searing Brilliance",
          "description": "Mel's attacks and abilities apply and refresh stacks of Overwhelm for 5 seconds each time they deal damage. Overwhelm - Stores 50 ( +8% AP ) + 2 ( +0.5 AP ) damage per stack of magic damage . When applied, if the stored amount exceeds the target's combined shields and current Health , they are executed. Projectile Burst - Fires 3 extra projectiles on her next attack after using an ability. Each projectile deals 3 - 33 ( +3%AP ) magic damage . This effect can stack up to 9 extra projectiles. Overwhelm deals only 60% damage with the first stack when used against minions.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/mel/searing-brilliance.webp",
          "icon_sha256": "6ab18ec9ffb17a80048739b43ac57ef20a58dfcb3b20bc0d034d454493b38f53"
        },
        {
          "slot": "Q",
          "name": "Radiant Volley",
          "description": "Unleashes a barrage of 7 / 8 / 9 / 10 projectiles that explode in the area around a target location. Each explosion deals 11 / 14 / 17 / 20 ( +6% AP ) magic damage , adding up to a maximum of 91 / 128 / 171 / 220 ( +49% AP ) magic damage in total. Deals 90% damage when used against minions.",
          "cooldown": "Cooldown: 9 / 8 / 7 / 6",
          "cost": "Cost: 70 / 80 / 90 / 100",
          "icon": "abilities/mel/radiant-volley.webp",
          "icon_sha256": "6309dd1261f6827566d2ad7d308e3ac36090f8b1aa9e1fd58b610c460bcf7b19"
        },
        {
          "slot": "W",
          "name": "Rebuttal",
          "description": "Forms a barrier around herself that reflects projectiles from enemy champions, makes her invulnerable for 1 second, and gives her 30% decaying Movement Speed for 1 second. Reflected projectiles deal 40% / 45% / 50% / 55% of the original damage as magic damage . Structure damage is not prevented.",
          "cooldown": "Cooldown: 38 / 36 / 34 / 32",
          "cost": "Cost: 60 / 40 / 20",
          "icon": "abilities/mel/rebuttal.webp",
          "icon_sha256": "08dc7993a0598098d80e86e61fa272010a83e363cd6831c54168d7dbf7e2671f"
        },
        {
          "slot": "E",
          "name": "Solar Snare",
          "description": "Fires a radiating orb, rooting enemies at its center for 1.2 / 1.3 / 1.4 / 1.5 seconds and dealing 55 / 110 / 165 / 220 ( +50% AP ) magic damage . The orb builds up a hostile area around it that slows enemies by 30% and deals 20 / 40 / 60 / 80 ( +6% AP ) magic damage per 1 second. The slow and damage-over-time effects linger on enemies for 0.75 seconds after they've left the area created by the orb. Deals 75% damage when used against minions.",
          "cooldown": "Cooldown: 12 / 11 / 11 / 10",
          "cost": "Cost: 50 / 55 / 60 / 65",
          "icon": "abilities/mel/solar-snare.webp",
          "icon_sha256": "ca0e7be0625ee0cc10e08abef2333b6a9e951b64c19f2b8d9cfb708b775fdd9b"
        },
        {
          "slot": "R",
          "name": "Golden Eclipse",
          "description": "Passive - Overwhelm damage is increased. Base damage - 50 ( +8% AP ) magic damage ; Additional damage - 2 ( +0.6 AP ) magic damage per stack. Active - Unleashes her power on all enemies affected by Overwhelm , dealing 100 / 150 / 200 ( +25% AP ) base magic damage and 4 / 7 / 10 ( +2.5% AP ) additional magic damage per stack. Can only be cast when an enemy champion is affected by Overwhelm .",
          "cooldown": "Cooldown: 95 / 80 / 65",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/mel/golden-eclipse.webp",
          "icon_sha256": "9f9332d35c1253935ccea38d551b91a0f72cddcf405d12c27287abc2f5799263"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWQRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [
          {
            "control_key": "golden_eclipse_rank",
            "slot": "R",
            "rank_basis": "paid",
            "ability": "Golden Eclipse",
            "engine_semantics": "mel_overwhelm_execute rank-zero-inclusive ultimate arrays",
            "initial_rank": 0,
            "source": "champion.source (exact slot/name); canonical champion_mechanics.json rule identity",
            "engine_evidence": "game_rules.py rank consumers and champion_mechanics.json explicit rule parameters"
          }
        ],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10139.js",
          "snapshot": "sources/62a0c8e3c326a5ed741e2b1a297fdedad69651f37db6f92334b77e3b78898e3d",
          "sha256": "62a0c8e3c326a5ed741e2b1a297fdedad69651f37db6f92334b77e3b78898e3d",
          "retrieved_at": "2026-11-01T15:46:30.269154+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:30",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "灼灼之光",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "耀光齐射",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "灵魂折镜",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "阳炎涡旋",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "鎏金蚀日",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Milio": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/milio",
        "snapshot": "sources/bdcfdc91dd73e4eff670d52d9847c7b29e07653c0333a07541bd30ffe1b6bffc",
        "sha256": "bdcfdc91dd73e4eff670d52d9847c7b29e07653c0333a07541bd30ffe1b6bffc",
        "retrieved_at": "2026-11-01T15:46:04.749994+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Fired Up!",
          "description": "When Milio's abilities touch allied champions, their next attack deals additional magic damage equal to 10% of their Attack Damage, plus 13 + 2 ( +20% AP ) magic damage over 1.5 seconds. Burn damage does not stack with repeated hits.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/milio/fired-up.webp",
          "icon_sha256": "6d1b5755d266f5d4454b3de347bbeb9d6a2c12349ab8feb661b186225fd6ccf1"
        },
        {
          "slot": "Q",
          "name": "Ultra Mega Fire Kick",
          "description": "Kicks a fireball, knocking back the first enemy hit. The fireball then bounces past the target and explodes, dealing 80 / 160 / 240 / 320 ( +80% AP ) magic damage to nearby enemies and slowing them by 40% / 45% / 50% / 55% ( +5% AP ) for 1.5 seconds. The fireball knocks minions and monsters farther back. Explosions caused by minions and monsters also detonate in a larger area.",
          "cooldown": "Cooldown: 10 / 10 / 10 / 10",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/milio/ultra-mega-fire-kick.webp",
          "icon_sha256": "444866cb3ae10d58b6dd1893acd48678488bc4e67e96f592885bde00677beee1"
        },
        {
          "slot": "W",
          "name": "Cozy Campfire",
          "description": "Ignites a buffing Soothing Fire for himself or an allied champion for 6 seconds. While Soothing Fire is burning, Milio casts Fired Up! every 3 seconds. Self-cast : Grants 9% / 11% / 13% / 15% attack range and restores 80 / 100 / 120 / 140 ( +15% AP ) Health over time to himself and nearby allied champions. Cast on allied champions : Forms a tether between himself and the target, granting 9.5% / 13% / 16.5% / 20% attack range and restoring 80 / 100 / 120 / 140 ( +15% AP ) Health over time to both champions. When Warm Hugs or Breath of Life is cast, Milio shares all ability effects with the target. Recast : Selects a new ally (inherits the remaining duration of the first cast). The tether between Milio and the allied champion has no range limit.",
          "cooldown": "Cooldown: 22 / 20 / 19 / 17",
          "cost": "Cost: 90 / 90 / 90 / 90",
          "icon": "abilities/milio/cozy-campfire.webp",
          "icon_sha256": "d797e40f911bb5603755ee5904226feb8ec8c1203fbfb0f05afa83a45ae33205"
        },
        {
          "slot": "E",
          "name": "Warm Hugs",
          "description": "Wraps himself or an allied champion in protective flames, absorbing 60 / 100 / 140 / 180 ( +30% AP ) damage and granting 10% / 13% / 16% / 19% bonus Movement Speed for 2.5 seconds. The shield and bonus Movement Speed are stackable. Gains a charge every 16 / 15 / 14 / 13 seconds, storing up to 2 charges.",
          "cooldown": "Cooldown: 1 / 1 / 1 / 1",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/milio/warm-hugs.webp",
          "icon_sha256": "846137bda351132590ab87abec714bf5ffeddac963b38dc2de8e5a75eccfc7a9"
        },
        {
          "slot": "R",
          "name": "Breath of Life",
          "description": "Unleashes a wave of Soothing Fire around himself, removing disables and immobilizing effects from allied champions nearby, healing them for 150 / 250 / 350 ( +50% AP ) Health , and granting them 65% Tenacity for 3 seconds. Breath of Life does not remove knockback, knockup, and Airborne effects. Disables on Milio will also be removed.",
          "cooldown": "Cooldown: 100 / 90 / 80",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/milio/breath-of-life.webp",
          "icon_sha256": "8d3192271dd669e18e10be29af3e120d50b150526da600ad9dd2cd6c0a08376c"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "EWQEREEWRWWQRQQ"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "W": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10108.js",
          "snapshot": "sources/127a862eb2ec038a1d6b5f6aed3752fc6b42b620fb9852ee27ff46988876f0f3",
          "sha256": "127a862eb2ec038a1d6b5f6aed3752fc6b42b620fb9852ee27ff46988876f0f3",
          "retrieved_at": "2026-11-01T15:46:30.502366+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:29",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "热情洋溢",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "火爆飞踢",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "依依不舍",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "融融情谊",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "生生不息",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Miss Fortune": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/miss-fortune",
        "snapshot": "sources/7c26d4f50c72c88f3205d4e8c146f90dac1b007eaaeb513e7e7e258b86e9774c",
        "sha256": "7c26d4f50c72c88f3205d4e8c146f90dac1b007eaaeb513e7e7e258b86e9774c",
        "retrieved_at": "2026-11-01T15:46:04.283266+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Love Tap",
          "description": "Applies Love Tap when attack enemy champions or epic monsters. At 3 stacks, increases Miss Fortune's damage to the target by 6% - 9.5% ( + 0.4x per level ). At 3 stacks deal 15 ( +50% bonus AD ) X ( 0.6 + 100% Critical Rate x 0.4) physical damage to the target. Deals 50% damage to minions and monsters.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/miss-fortune/love-tap.webp",
          "icon_sha256": "0bcf7f6b4e7840e1fed7b3c48611bad594b8c4f7fec94f8429ec0be53287a512"
        },
        {
          "slot": "Q",
          "name": "Double Up",
          "description": "Fires a shot that ricochets behind the first enemy hit, dealing 60 / 90 / 120 / 150 ( + 110% AD +35% AP ) physical damage . The second hit will Critically Strike for 130% / 140% / 150% / 160% damage and apply Love Tap. On-hits are applied to both targets.",
          "cooldown": "Cooldown: 6 / 5 / 4 / 3",
          "cost": "Cost: 35 / 35 / 35 / 35",
          "icon": "abilities/miss-fortune/double-up.webp",
          "icon_sha256": "66382ee98dcfa63f8dd5a3688bf9d02c6ed7aadc43f2474b482ad9d828fa4409"
        },
        {
          "slot": "W",
          "name": "Strut",
          "description": "Passive : After 4 seconds of not taking damage, gain 35 / 40 / 45 / 50 Movement Speed . After another 3 seconds, this bonus increases to 70 / 80 / 90 / 100 . Active : Fully activates Strut's Movement Speed and grants 45% / 60% / 75% / 90% Attack Speed for 4 seconds. Attacking targets with full stacks of Love Tap reduces the remaining cooldown of Strut by 2 seconds.",
          "cooldown": "Cooldown: 12 / 12 / 12 / 12",
          "cost": "Cost: 30 / 303 / 30 / 30",
          "icon": "abilities/miss-fortune/strut.webp",
          "icon_sha256": "42f5e613abad6264f78712817ed564d42d1b51aa9f6ef802db2c6fbd62e7f5b0"
        },
        {
          "slot": "E",
          "name": "Make it Rain",
          "description": "Rains down bullets on an area for 2 seconds, dealing 15 / 20 / 25 / 30 ( +10% AP ) magic damage every quarter second and slowing enemies by 40% ( +6% AP ) .",
          "cooldown": "Cooldown: 15 / 13 / 11 / 10",
          "cost": "Cost: 65 / 70 / 75 / 80",
          "icon": "abilities/miss-fortune/make-it-rain.webp",
          "icon_sha256": "73e1dd74c6d5e3d42fff1cd779b8d16e06a9ce69cafa344f6c0e745daa8474c4"
        },
        {
          "slot": "R",
          "name": "Bullet Time",
          "description": "Channels a 3 seconds barrage of bullets, with 12 / 14 / 16 waves that each deal 20 / 30 / 40 ( +60% AD +20% AP ) physical damage . Each wave can Crit for 135% - 145.5% damage. Re-activate : Cancel the barrage.",
          "cooldown": "Cooldown: 70 / 65 / 60",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/miss-fortune/bullet-time.webp",
          "icon_sha256": "5204a66e80e812d185ac0aa9f33e5cdf7cdc7c2d69a9ff289c3deb6156c459d0"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWEQRQQWRWWEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10066.js",
          "snapshot": "sources/27d300972ceae3c4e671e85f0d700692ddd65170da3c4964be947ee4190cdf13",
          "sha256": "27d300972ceae3c4e671e85f0d700692ddd65170da3c4964be947ee4190cdf13",
          "retrieved_at": "2026-11-01T15:46:30.536722+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:26",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "厄运的眷顾",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "一箭双雕",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "大步流星",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "枪林弹雨",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "弹幕时间",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Mordekaiser": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/mordekaiser",
        "snapshot": "sources/801c01daad66327df96b11ea075726ba78a015b251fce2809ec3cd91ca011bd6",
        "sha256": "801c01daad66327df96b11ea075726ba78a015b251fce2809ec3cd91ca011bd6",
        "retrieved_at": "2026-11-01T15:46:04.343412+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Darkness Rise",
          "description": "Gains 3% / 6% / 9% / 12% Magic Pen . Attacks deal 30% bonus magic damage . When Mordekaiser gets a takedown, or his basic abilities or attacks hit an enemy champion or large monster, he gains 1 stack of Darkness Rise for 5 seconds. At 3 stacks, he cloaks himself in a negative energy field. The negative energy field deals magic damage equal to 4.75 ( + 0.25 per level + 25% AP ) plus 1% of the target's max Health per second and grants him 3% Movement Speed for 5 seconds. Takedowns and basic ability or attack hits against enemy champions or large monsters refresh the negative energy field's duration. Darkness Rise deals a maximum of 24 damage to monsters per second.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/mordekaiser/darkness-rise.webp",
          "icon_sha256": "c8cde29db8dbea0c0ccb0e16ead7614805087d769941e72b1900ff1a83924c5e"
        },
        {
          "slot": "Q",
          "name": "Obliterate",
          "description": "Smashes the ground with Nightfall to deal 80 / 110 / 140 / 170 ( +70% AP +120% bonus AD ) magic damage . Damage is increased by 45% / 50% / 55% / 60% bonus AD when the ability hits only one enemy.",
          "cooldown": "Cooldown: 7 / 6 / 5 / 4",
          "cost": "",
          "icon": "abilities/mordekaiser/obliterate.webp",
          "icon_sha256": "60325d02dffb5b9a639a3c6c418ba30c378ab4c16e9aa5bf3c294bbb206468cb"
        },
        {
          "slot": "W",
          "name": "Indestructible",
          "description": "Passive : Stores 35% of the damage he deals and 7% of the damage he takes. Active : Gains the stored damage as a shield for 4 seconds. Recasting Indestructible restores 35% / 38% / 40% / 42% of the remaining shield as Health. Minimum Shield: 5% Maximum Shield: 30%",
          "cooldown": "Cooldown: 12 / 11 / 10 / 9",
          "cost": "",
          "icon": "abilities/mordekaiser/indestructible.webp",
          "icon_sha256": "9b4eddeb378cacb20e6a4b2cbfea918c813faa5aa124fbe6fcef870e87fbb981"
        },
        {
          "slot": "E",
          "name": "Death's Grasp",
          "description": "Pulls the enemy toward him, dealing 60 / 80 / 100 / 120 ( +55% AP ) magic damage and slowing them by 30% for 1 second.",
          "cooldown": "Cooldown: 15 / 13 / 11 / 9",
          "cost": "",
          "icon": "abilities/mordekaiser/death-s-grasp.webp",
          "icon_sha256": "5527d84fc2a7a19935ad02cfd71db1fcc666955d16ec39796b07ea7a16a29a94"
        },
        {
          "slot": "R",
          "name": "Realm of Death",
          "description": "Banishes an enemy champion into the Death Realm with him for 7 seconds. During this period: - Steals 8% of the target's core stats ( AP , AD , AS , Armor , Magic Resist and Max HP ). - If Mordekaiser takes down the target, he keeps the stolen stats until the target respawns. -If he doesn't, the stolen stats are returned once the ability ends.",
          "cooldown": "Cooldown: 105 / 90 / 75",
          "cost": "",
          "icon": "abilities/mordekaiser/realm-of-death.webp",
          "icon_sha256": "41df7cc25f7376c98a2fe882e26f3ae7aceb288084991fdb45786aec7053af6a"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWQRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10035.js",
          "snapshot": "sources/73aac50bdd10f26b1a8e1cd26258b03893538f0b63cabc584cb8ce2ef6a736f9",
          "sha256": "73aac50bdd10f26b1a8e1cd26258b03893538f0b63cabc584cb8ce2ef6a736f9",
          "retrieved_at": "2026-11-01T15:46:30.506700+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:25",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "黑暗起兮",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "破灭之锤",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "不坏之身",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "断魂一扼",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "轮回绝境",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Morgana": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/morgana",
        "snapshot": "sources/612f38129a3a1a5c59355c01d5307df0eeba9add531b38d952cd89cb6a86ad29",
        "sha256": "612f38129a3a1a5c59355c01d5307df0eeba9add531b38d952cd89cb6a86ad29",
        "retrieved_at": "2026-11-01T15:46:04.473765+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Soul Siphon",
          "description": "Morgana heals for 20% of the damage dealt with abilities agains champions, large minions and large monsters.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/morgana/soul-siphon.webp",
          "icon_sha256": "23f6ea07d82f4176fac862abd35d8f8f3828c1bc96bff1fd9746a2087c9fc287"
        },
        {
          "slot": "Q",
          "name": "Dark Binding",
          "description": "Fires a bolt of dark energy, rooting the first enemy hit for 2 / 2.25 / 2.5 / 2.75 seconds and dealing 80 / 160 / 240 / 320 ( +90% AP ) magic damage .",
          "cooldown": "Cooldown: 9 / 9 / 9 / 9",
          "cost": "Cost: 55 / 60 / 65 / 70",
          "icon": "abilities/morgana/dark-binding.webp",
          "icon_sha256": "faae388ca0d17a22f0d000b5749540e6c9bb4b0c485d26294688e3ad6ffbda4f"
        },
        {
          "slot": "W",
          "name": "Tormented Shadow",
          "description": "Curses an area for 5 seconds, dealing 7 / 12 / 17 / 22 ( +7% AP ) magic damage every 0.5 seconds to enemies within, increased by up to 170% based on their missing health. Tormented Soil deals 195% damage against monsters. Tormented Shadow's current Cooldowns is reduced by 3 . 5% of its maximum whenever Soul Siphon triggers.",
          "cooldown": "Cooldown: 12 / 12 / 12 / 12",
          "cost": "Cost: 70 / 90 / 110 / 130",
          "icon": "abilities/morgana/tormented-shadow.webp",
          "icon_sha256": "01f51b3e69949473706cc9c39b333be8f27cc056aa3534dc02d3e4f4b29c1261"
        },
        {
          "slot": "E",
          "name": "Black Shield",
          "description": "Places a barrier around an allied champion for 5 seconds, absorbing 70 / 150 / 230 / 310 ( +50% AP ) magic damage and blocking disables while the shield holds.",
          "cooldown": "Cooldown: 13 / 12 / 11 / 10",
          "cost": "Cost: 60 / 60 / 60 / 60",
          "icon": "abilities/morgana/black-shield.webp",
          "icon_sha256": "1672bac3b9118b056ea8570bf4242c9336349940d0ce26988a3c662536b1e4bc"
        },
        {
          "slot": "R",
          "name": "Soul Shackles",
          "description": "Chains nearby enemy champions, dealing 150 / 225 / 300 ( +70% AP ) magic damage of their maximum health. The chains persist for 3 seconds, revealing and slowing by 15% Movement Speed . When the duration ends, chained targets are stunned for 1.5 seconds and dealt 150 / 225 / 300 ( +70% AP ) magic damage of their maximum health. Morgana gains 10% / 25% / 40% Movement speed as long as the chains last.",
          "cooldown": "Cooldown: 75 / 65 / 55",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/morgana/soul-shackles.webp",
          "icon_sha256": "db6d80af115755f32352296f14f14740d33c28039a386d7ffdb6dee43a94f0b3"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWEQRQQWRWWEREE"
        },
        {
          "label": "Source plan 2",
          "choices": "WQEWRWWQRQQEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ],
          [
            2,
            8,
            10,
            11
          ]
        ],
        "W": [
          [
            2,
            8,
            10,
            11
          ],
          [
            1,
            4,
            6,
            7
          ]
        ],
        "E": [
          [
            3,
            12,
            14,
            15
          ],
          [
            3,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ],
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10028.js",
          "snapshot": "sources/3f19214b4780b1df6226cbcd8c249986ab7a974fc8f9019c70280a315cd012d3",
          "sha256": "3f19214b4780b1df6226cbcd8c249986ab7a974fc8f9019c70280a315cd012d3",
          "retrieved_at": "2026-11-01T15:46:30.519331+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:24",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "灵魂吸取",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "暗之禁锢",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "折磨之影",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "黑暗之盾",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "灵魂镣铐",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Nami": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/nami",
        "snapshot": "sources/0672f751ddcad001733be37453b4222c5f275b5baf9eca97fbadd254b5981373",
        "sha256": "0672f751ddcad001733be37453b4222c5f275b5baf9eca97fbadd254b5981373",
        "retrieved_at": "2026-11-01T15:46:05.315289+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Surging Tides",
          "description": "Allied champions touched by Nami's abilities gain 65 ( +20% AP ) Movement Speed for 1.5 seconds.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/nami/surging-tides.webp",
          "icon_sha256": "fb2a91babd6d215763692139efc3bf32bb86c972e2b141b6c54937195a31aa8c"
        },
        {
          "slot": "Q",
          "name": "Aqua Prison",
          "description": "Fires a bubble, dealing 75 / 145 / 215 / 285 ( +50% AP ) magic damage and knocking up for 1.5 seconds.",
          "cooldown": "Cooldown: 12 / 11 / 10 / 9",
          "cost": "Cost: 60 / 60 / 60 / 60",
          "icon": "abilities/nami/aqua-prison.webp",
          "icon_sha256": "483d85375903ac1ba7f0c221a5e51a7b8e2f09be8e5ac729815c724873d50d6e"
        },
        {
          "slot": "W",
          "name": "Ebb and Flow",
          "description": "Launches a stream that bounces 3 times between allied and enemy champions, healing allies for 55 / 85 / 115 / 145 ( +30% AP ) and dealing 65 / 120 / 175 / 230 ( +50% AP ) magic damage to enemies. Can hit each target once. Healing and damage values are modified by -15% ( +7.5% AP ) each bounce.",
          "cooldown": "Cooldown: 10 / 10 / 10 / 10",
          "cost": "Cost: 70 / 85 / 100 / 115",
          "icon": "abilities/nami/ebb-and-flow.webp",
          "icon_sha256": "87e6cb6c9002e01897a5f8964140595a60fe68de3f6063fab8812a22e1df7bbb"
        },
        {
          "slot": "E",
          "name": "Tidecaller's Blessing",
          "description": "Empowers an allied champion's next 3 attacks for 6 seconds to deal an additional 25 / 45 / 65 / 85 ( +20% AP ) magic damage and slow by 15% / 20% / 25% / 30% ( +0.05% AP ) for 1 second.",
          "cooldown": "Cooldown: 11 / 11 / 11 / 11",
          "cost": "Cost: 55 / 60 / 65 / 70",
          "icon": "abilities/nami/tidecaller-s-blessing.webp",
          "icon_sha256": "ce87862e92e1c9b99cc3e1af3e919bad20a3974764f43aba43130c16332b5a20"
        },
        {
          "slot": "R",
          "name": "Tidal Wave",
          "description": "Sends a wave, dealing 150 / 250 / 350 ( +60% AP ) magic damage , knocking up for 0.5 seconds and slowing by 50% / 60% / 70% . Slow lasts for 2 - 4 seconds, increasing with how far the wave travels. Allies touched gain double the effect from Surging Tides .",
          "cooldown": "Cooldown: 75 / 70 / 65",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/nami/tidal-wave.webp",
          "icon_sha256": "d672800857e669203e85c8a03c92364c2d137bd125675651e1eaea455c6258b5"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "WEQWRWWEREEQRQQ"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "W": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10091.js",
          "snapshot": "sources/a055045d60f3c227e85c7b747f0234586988280c32dfa347723a83aa00df4899",
          "sha256": "a055045d60f3c227e85c7b747f0234586988280c32dfa347723a83aa00df4899",
          "retrieved_at": "2026-11-01T15:46:30.527130+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:28",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "踏浪之行",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "碧波之牢",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "冲击之潮",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "唤潮之佑",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "怒涛之啸",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Nasus": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/nasus",
        "snapshot": "sources/0dbba8146d36497f74143e20807001ad5607e46bf5be7edcba1a2543694010d1",
        "sha256": "0dbba8146d36497f74143e20807001ad5607e46bf5be7edcba1a2543694010d1",
        "retrieved_at": "2026-11-01T15:46:04.573727+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Soul Eater",
          "description": "Gains 6% / 12% / 18% / 24% Physical Vamp .",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/nasus/soul-eater.webp",
          "icon_sha256": "f6782c04cdb6ddb5ea56ffa04735b3417779878f8192b3a0410e7998791bf76d"
        },
        {
          "slot": "Q",
          "name": "Siphoning Strike",
          "description": "Empowers next attack within 10 seconds to deal an additional 20 / 50 / 80 / 110 physical damage . If Siphoning Strike kills the target, its damage is permanently increased by 5 . Killing champions, large minions and large monsters increases Siphoning Strike's damage by 14 instead.",
          "cooldown": "Cooldown: 7 / 6 / 5 / 4",
          "cost": "Cost: 15 / 15 / 15 / 15",
          "icon": "abilities/nasus/siphoning-strike.webp",
          "icon_sha256": "2fc5ab9fcbeaafcd6b5b3ba480455f96ba74a1a43ffffd7fd7b81537fce11cd6"
        },
        {
          "slot": "W",
          "name": "Wither",
          "description": "Slows enemy Movement Speed by 35% and Attack Speed by 22.49% / 29.98% / 37.48% / 44.96% for 5 seconds. The Movement Speed slow increases to 45% / 60% / 75% / 90% over the duration.",
          "cooldown": "Cooldown: 14 / 13 / 12 / 11",
          "cost": "Cost: 80 / 80 / 80 / 80",
          "icon": "abilities/nasus/wither.webp",
          "icon_sha256": "aec9992321e3d7a70c4ab9589502496f6f1ee37289346966fa9f40b2e86acd1d"
        },
        {
          "slot": "E",
          "name": "Spirit Fire",
          "description": "Creates a flaming zone, dealing 50 / 90 / 130 / 170 ( +40% AP ) magic damage . The zone persists for 5 seconds, dealing 11 / 22 / 33 / 44 ( +12% AP ) magic damage over time and reducing Armor by 20% / 25% / 30% / 35% .",
          "cooldown": "Cooldown: 12 / 12 / 12 / 12",
          "cost": "Cost: 110 / 120 / 130 / 140",
          "icon": "abilities/nasus/spirit-fire.webp",
          "icon_sha256": "04ae22a5a4a8caafd07d4abc3065256ab4606017633b0d93b2e87b57619bbdcd"
        },
        {
          "slot": "R",
          "name": "Fury of the Sands",
          "description": "Enhances himself to gain 300 / 450 / 600 Health , 40 / 55 / 70 Armor and Magic Resist for 12 seconds. Deals 3% / 4% / 5% ( +0.01% AP ) magic damage",
          "cooldown": "Cooldown: 90 / 80 / 70",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/nasus/fury-of-the-sands.webp",
          "icon_sha256": "04ea5af6d465a98c92c45ffd469d1d820f44202ed0d95c49f7d84303779ce34b"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWEQRQQWRWWEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10065.js",
          "snapshot": "sources/addec28f7095a40a4a5f9577b7e7cb8d4fb676cd51ec4d0b8c69641d55057fc7",
          "sha256": "addec28f7095a40a4a5f9577b7e7cb8d4fb676cd51ec4d0b8c69641d55057fc7",
          "retrieved_at": "2026-11-01T15:46:30.518488+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:26",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "吞噬灵魂",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "汲魂痛击",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "枯萎",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "灵魂烈焰",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "死神降临",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Nautilus": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/nautilus",
        "snapshot": "sources/146f3f6d99539dadc704059ec6d682447f20d4d9131b5aaaacb8726fdc70470b",
        "sha256": "146f3f6d99539dadc704059ec6d682447f20d4d9131b5aaaacb8726fdc70470b",
        "retrieved_at": "2026-11-01T15:46:04.626800+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Staggering Blow",
          "description": "Attacks deal an additional 13 physical damage and root the target for 1 second. 6 seconds cooldown on the same target.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/nautilus/staggering-blow.webp",
          "icon_sha256": "252c56cf6fcebc54d2f27b469ff447274e65340e79ec5eb4df96afd5a759e0cf"
        },
        {
          "slot": "Q",
          "name": "Dredge Line",
          "description": "Hurls his anchor forward, dealing 90 / 150 / 210 / 270 ( +75% AP ) magic damage to the first target hit and pulling them and Nautilus together. If the anchor hits terrain, Nautilus pulls himself to the terrain and 50% of Dredge Line's cooldown and mana cost are refunded.",
          "cooldown": "Cooldown: 12 / 11 / 10 / 9",
          "cost": "Cost: 60 / 60 / 60 / 60",
          "icon": "abilities/nautilus/dredge-line.webp",
          "icon_sha256": "0ba717f3176243b6ccbd5ebc46cf11d99421c9f5fb921c42b29e12958108a80c"
        },
        {
          "slot": "W",
          "name": "Titan's Wrath",
          "description": "Gains a shield that absorbs 70 / 80 / 90 / 100 ( +11% / 12% / 13% / 14% max HP ) damage for 6 seconds. While the shield holds, Nautilus' attacks are empowered to deal an additional 50 / 60 / 70 / 80 ( +40% AP ) magic damage around the target. Deals 125% damage against monsters.",
          "cooldown": "Cooldown: 11 / 11 / 11 / 11",
          "cost": "Cost: 80 / 80 / 80 / 80",
          "icon": "abilities/nautilus/titan-s-wrath.webp",
          "icon_sha256": "1cd2f2bc8f724c7c1376fa119c5ca8b34d3c555c644b8dc95568ef30c84a3085"
        },
        {
          "slot": "E",
          "name": "Riptide",
          "description": "Sends waves emanating outward that deal 70 / 110 / 150 / 190 ( +50% AP ) magic damage and slow by 35% / 40% / 45% / 50% decaying over 1.5 seconds. Enemies hit by subsequent waves take 50% damage. Deals 125% damage against monsters.",
          "cooldown": "Cooldown: 7 / 6 / 6 / 5",
          "cost": "Cost: 60 / 70 / 80 / 90",
          "icon": "abilities/nautilus/riptide.webp",
          "icon_sha256": "5f8d01bf7bfe83287172b1f435608ae27c0c2749ac76869ba6bab473ca7ad3b5"
        },
        {
          "slot": "R",
          "name": "Depth Charge",
          "description": "Nautilus fires a depth charge towards an enemy champion, dealing 150 / 275 / 400 ( +70% AP ) magic damage , Knocking them Up and Stunning them for 1 / 1.5 / 2 seconds. Other enemies hit by the depth charge are also Knocked Up and Stunned and take 125 / 175 / 225 ( +40% AP ) magic damage .",
          "cooldown": "Cooldown: 70 / 60 / 50",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/nautilus/depth-charge.webp",
          "icon_sha256": "f55c46e02d800847f15025746e5e6585ca3693366a2aa6ceacd4e3b526d05a0a"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWEQRQQWRWWEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10132.js",
          "snapshot": "sources/1dbffda84c2b99de8ef2046f466062564347106d8930fd13bf38e8ae4353526d",
          "sha256": "1dbffda84c2b99de8ef2046f466062564347106d8930fd13bf38e8ae4353526d",
          "retrieved_at": "2026-11-01T15:46:30.754003+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:30",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "排山倒海",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "疏通航道",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "泰坦之怒",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "暗流涌动",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "深海冲击",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Nidalee": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/nidalee",
        "snapshot": "sources/3ab0ef4398b518fb496bb9b464219116408a16bbb1dcb7e138fd385e2eb6fa73",
        "sha256": "3ab0ef4398b518fb496bb9b464219116408a16bbb1dcb7e138fd385e2eb6fa73",
        "retrieved_at": "2026-11-01T15:46:04.671671+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Prowl",
          "description": "Starts with a rank in Aspect of the Cougar . Queen of the Jungle : Gains 10% Movement Speed in brush, increased to 30% while moving toward enemy champions. This bonus persists for 2 seconds after leaving brush. Hunter's Mark : Hitting champions or monsters with Javelin Toss or Bushwhack marks them as Hunted for 4 seconds. While an enemy is Hunted, they are revealed and Nidalee gains 10% Movement Speed , increased to 30% while moving toward the Hunted enemy. The two Movement Speed bonuses stack, with a total cap of 30.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/nidalee/prowl.webp",
          "icon_sha256": "499084dea96132c460008d4ac0de1f865ff4284015ead4a1313e107ad4f3e327"
        },
        {
          "slot": "Q",
          "name": "Javelin Toss / Takedown",
          "description": "Javelin Toss : Throws her javelin, dealing 90 / 120 / 150 / 180 ( +50% AP ) magic damage , increased to 225 / 300 / 375 / 450 ( +125% AP ) magic damage based on distance flown. Takedown : Nidalee's next attack deals 10 / 45 / 80 / 115 ( +75% AD +40% AP ) magic damage , increased by 1.25% per 1% of the target's missing Health . If the enemy is Hunted , deals 30% increased damage.",
          "cooldown": "Cooldown: 5 / 5 / 5 / 5",
          "cost": "Cost: 50 / 55 / 60 / 65",
          "icon": "abilities/nidalee/javelin-toss-takedown.webp",
          "icon_sha256": "0c7135f0817fbd5f2e300b72fbbceb476bcfe7a2242c0778597ad7bd9e961f1e"
        },
        {
          "slot": "W",
          "name": "Bushwhack / Pounce",
          "description": "Bushwhack : Places an invisible trap for 10 seconds, When an enemy walks over it, they are revealed and dealt 10 / 20 / 30 / 40 ( +4% AP ) magic damage per second for 4 seconds. 4 traps may be active at once. Pounce : Pounces toward a target location, dealing 55 / 90 / 125 / 160 ( +40% bonus AD +25% AP ) magic damage to enemies in the area she lands. Killing an enemy in Cougar Form or using this ability on a Hunted target reduces its cooldown to 2.75 / 2.25 / 1.75 / 1.25 seconds.",
          "cooldown": "Cooldown: 12 / 11 / 10 / 9",
          "cost": "Cost: 30 / 35 / 40 / 45",
          "icon": "abilities/nidalee/bushwhack-pounce.webp",
          "icon_sha256": "0f0eca0cee3debe1b1dfb578aadf5729cd858bdcad27560e37d7e4d706ceaa8a"
        },
        {
          "slot": "E",
          "name": "Primal Surge / Swipe",
          "description": "Primal Surge : Restores 40 / 70 / 100 / 130 ( +30% AP ) Health to a target, increased up to 80 / 140 / 200 / 260 ( +60% AP ) Health based on their missing Health , and grants them 30% / 40% / 50% / 60% Attack Speed for 7 seconds. Swipe : Claws at enemies in front of her, dealing 140 ( +70% bonus AD +40% AP ) magic damage .",
          "cooldown": "Cooldown: 12 / 12 / 12 / 12",
          "cost": "Cost: 50 / 55 / 60 / 65",
          "icon": "abilities/nidalee/primal-surge-swipe.webp",
          "icon_sha256": "553252bf97b91923f31f56d8243420694b8c11d6e9ce37775992a5edcd70e0a3"
        },
        {
          "slot": "R",
          "name": "Aspect Of The Cougar",
          "description": "Passive : - While in Human Form , applying Hunted refreshes this ability's cooldown. - While in Cougar Form , Nidalee's basic ability damage scales with this ability's rank, and she gains 2 ( +2.5% AP ) bonus Armor and Magic Resist . Human Form (Active) : Transforms into Cougar Form, gaining melee attacks and replacing her active abilities. Cougar Form (Active) : Transforms into Human Form, gaining ranged attacks and replacing her active abilities.",
          "cooldown": "Cooldown: 3 / 3 / 3",
          "cost": "",
          "icon": "abilities/nidalee/aspect-of-the-cougar.webp",
          "icon_sha256": "3881554ae5b421f50eef66a092e5a0bf93633b609d93098ee46b70f8c64a0441"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWQRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 4,
          "initial_rank": 1,
          "rank_min_levels": null,
          "source_ids": [
            "nidalee",
            "champion_guide"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [
        "Aspect of the Cougar starts at rank 1 without spending a point, then has three paid upgrades. Human and cougar abilities share Q/W/E upgrade slots."
      ],
      "combat_sync": {
        "mapped_controls": [
          {
            "control_key": "aspect_rank",
            "slot": "R",
            "rank_basis": "learned",
            "ability": "Aspect Of The Cougar",
            "engine_semantics": "nidalee_takedown learned-R array: innate rank 1 plus paid upgrades",
            "initial_rank": 1,
            "source": "champion.source (exact slot/name); canonical champion_mechanics.json rule identity",
            "engine_evidence": "game_rules.py rank consumers and champion_mechanics.json explicit rule parameters"
          },
          {
            "control_key": "primal_surge_rank",
            "slot": "E",
            "rank_basis": "learned",
            "ability": "Primal Surge / Swipe",
            "engine_semantics": "nidalee_primal_surge human E; not cougar Swipe damage rank",
            "initial_rank": 0,
            "source": "champion.source (exact slot/name); canonical champion_mechanics.json rule identity",
            "engine_evidence": "game_rules.py rank consumers and champion_mechanics.json explicit rule parameters"
          }
        ],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10084.js",
          "snapshot": "skill_sources/3aef77236dec6675ffb043caf9b5aa6773896de653227e64dc4303b6924ed044",
          "sha256": "3aef77236dec6675ffb043caf9b5aa6773896de653227e64dc4303b6924ed044",
          "retrieved_at": "2026-11-05T13:53:43.422142+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-11-02 17:42:27",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "寻觅",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "标枪投掷",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "丛林伏击",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "野性奔腾",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "美洲狮形态",
            "rank_detail_count": 4
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips.",
        "innate_rank_evidence": {
          "field": "spells.0.description",
          "quote": "进入对局即拥有1级终极技能美洲狮形态。",
          "translation": "Starts the match with rank 1 of the ultimate Aspect of the Cougar."
        }
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources.",
          "The minimum levels of Nidalee’s three paid R upgrades are not evidenced by the generic ultimate rule; source recommendations alone do not establish them."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Nilah": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/nilah",
        "snapshot": "sources/067f930d72ab3909bd172a234cbfe2b330948e1e5ef0836784a027e9a8f06b45",
        "sha256": "067f930d72ab3909bd172a234cbfe2b330948e1e5ef0836784a027e9a8f06b45",
        "retrieved_at": "2026-11-01T15:46:05.396016+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Joy Unending",
          "description": "After an attack crits, Nilah heals herself for 20% of the damage dealt. Excess healing is converted into an equivalent amount of shield that lasts 6 seconds.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/nilah/joy-unending.webp",
          "icon_sha256": "84e700ff365f21fe8783e8cc5cbd80bb796ba0d6c6f6a2c043d980dd20a08eb3"
        },
        {
          "slot": "Q",
          "name": "Formless Blade",
          "description": "Passive : Gains 28% of current Critical Strike Chance as Armor Pen Rate . Nilah cracks her whip-blade in a straight line, dealing 10 / 15 / 20 / 25 ( +90% / 100% / 110% / 120% AD ) physical damage to enemies hit along the way. Every 1% Critical Rate increases damage by 1% . After Formless Blade hits an enemy, Nilah gains 14% Attack Speed and 125 bonus Attack Range. Her attacks also deal 100% physical damage to enemies in a cone for 4 seconds. Damage against non-champion units is reduced by 80%. When Formless Blade is cast during Slipstream , Nilah leaves behind a wave that is sent towards her, dealing an equivalent amount of damage to all enemies hit. Damage ratio of Formless Blade to monsters: 25% .",
          "cooldown": "Cooldown: 4 / 4 / 4 / 4",
          "cost": "Cost: 30 / 30 / 30 / 30",
          "icon": "abilities/nilah/formless-blade.webp",
          "icon_sha256": "7a82379295badb949b20764806b05b77a44b36a8a0ecb03a7f9137fdc917c8eb"
        },
        {
          "slot": "W",
          "name": "Jubilant Veil",
          "description": "Nilah evelops herself in mist for 1.75 seconds, during wich she gains 15% / 20% / 25% / 30% Movement Speed , reduces incoming magic damage taken by 25% and becomes immune to non-tower attacks. If there are allied champions nearby, the nearest allied champion gains the same effects, and the duration of the effects Nilah gained is extended by 1 second.",
          "cooldown": "Cooldown: 21 / 20 / 19 / 18",
          "cost": "Cost: 45 / 45 / 45 / 45",
          "icon": "abilities/nilah/jubilant-veil.webp",
          "icon_sha256": "13407ae4589016b56d9f98f512207fef620d8f41219f8a24aec98e4806a8fc19"
        },
        {
          "slot": "E",
          "name": "Slipstream",
          "description": "Nilah dashes forward for a fixed distance, dealing 70 / 100 / 130 / 160 ( +20% AD ) physical damage to any enemies that she passes through. Empowered attacks reduce the cooldown of this ability by 1 second. Cooldown is further reduced by 1 second after hitting a champion. Hitty any unit will also refresh this ability's cooldown. Cooldown cannot be refreshed again within 10 seconds. If no unit was hit, immediately enters cooldown.",
          "cooldown": "Cooldown: 18 / 16 / 14 / 12",
          "cost": "Cost: 40 / 40 / 40 / 40",
          "icon": "abilities/nilah/slipstream.webp",
          "icon_sha256": "4a0cbb8807eaead63c32bb76f83bf6ec4acac74c0fe89daafa884fdcb965fc2f"
        },
        {
          "slot": "R",
          "name": "Apotheosis",
          "description": "Nilah whirls her whip-blade, dealing 60 / 110 / 160 ( +50% AD ) physical damage continuously over 1 second and reducing the enemy's Movement Speed by 10% for 3 seconds. When keeping her whip-blade, Nilah also deals 125 / 225 / 325 ( +120% AD ) physical damage and pulls nearby enemies toward her. Nilah also heals herself and nearby allied champions by 20% ( +30% Crit ) of the damage that she dealt to enemy champions. Excess healing is converted into a shield that lasts 6 seconds. Non-champion units are healed by 10% instead.",
          "cooldown": "Cooldown: 80 / 70 / 60",
          "cost": "Cost: 80 / 80 / 80",
          "icon": "abilities/nilah/apotheosis.webp",
          "icon_sha256": "221420a5c9a13bca661cd9041ac09a4462b4e347310df2a69b7aa7ba02cc6614"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "EQQWRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            2,
            3,
            6,
            7
          ]
        ],
        "W": [
          [
            4,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            1,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [
          {
            "control_key": "formless_blade_rank",
            "slot": "Q",
            "rank_basis": "learned",
            "ability": "Formless Blade",
            "engine_semantics": "nilah_crit_armor_pen and nilah_formless_blade_active",
            "initial_rank": 0,
            "source": "champion.source (exact slot/name); canonical champion_mechanics.json rule identity",
            "engine_evidence": "game_rules.py rank consumers and champion_mechanics.json explicit rule parameters"
          }
        ],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10027.js",
          "snapshot": "sources/9f182ea73b475a6710633b1e18da56ee1225278616aa2ef1db3ab0cfaa2a82be",
          "sha256": "9f182ea73b475a6710633b1e18da56ee1225278616aa2ef1db3ab0cfaa2a82be",
          "retrieved_at": "2026-11-01T15:46:30.765711+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:24",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "喜色川流\n",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "游刃万变",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "轻纱飞漾",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "纵情逐流",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "神恩激荡",
            "rank_detail_count": 4
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Nocturne": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/nocturne",
        "snapshot": "sources/d0efd9dee43ec84f8e0051ea58b53a07700ab4ec7bd0568b82a7f54791eea1f9",
        "sha256": "d0efd9dee43ec84f8e0051ea58b53a07700ab4ec7bd0568b82a7f54791eea1f9",
        "retrieved_at": "2026-11-01T15:46:05.584466+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Umbra Blades",
          "description": "Umbra Blades : Every 12 seconds, Nocturne's next attack is empowered to strike the target and nearby enemies for 70 ( 120% AD ) physical damage and restore 16 ( +30% AP ) Health per enemy hit. Except for the main target, Umbra Blades deals only 50% damage against minions and heals 50% less from them. Umbra Blades can Critically Strike the main target. Attacks reduce Umbra Blades' cooldown by 1 second, increased to 3 seconds against champions and monsters.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/nocturne/umbra-blades.webp",
          "icon_sha256": "eb19778c89ca1623ad99eae07237f7ec6c7f60b0a7deffd91c1b8c82b1309ef0"
        },
        {
          "slot": "Q",
          "name": "Duskbringer",
          "description": "Throws a shadow claw in a target direction, dealing 60 / 115 / 170 / 225 ( +85% bonus AD ) physical damage and leaving a Dusk Trail in its wake for 5 seconds. Enemy champions and large monster hit by the claw also leave a Dusk Trail behind when they move Gains 10 / 25 / 40 / 55 Attack Damage and 20% / 25% / 30% / 35% Movement Speed on Dusk Trails .",
          "cooldown": "Cooldown: 7 / 7 / 7 / 7",
          "cost": "Cost: 60 / 65 / 70 / 75",
          "icon": "abilities/nocturne/duskbringer.webp",
          "icon_sha256": "cd1177452b3e18470f0503b8a2b325b93e3ce1e9b6943c5639cd4076d4598fff"
        },
        {
          "slot": "W",
          "name": "Shroud of Darkness",
          "description": "Passive : Gains 3 5% / 40% / 45% / 50% Attack Speed. Active : Creates a shadow barrier for 1.5 seconds that blocks the next enemy ability . If an ability is blocked, Shroud of Darkness' passive effect is increased to 70% / 80% / 90% / 100% Attack Speed for 5 seconds and slows nearby enemies by 20% / 25% / 30% / 35% for 2 seconds.",
          "cooldown": "Cooldown: 18 / 16 / 14 / 12",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/nocturne/shroud-of-darkness.webp",
          "icon_sha256": "97c3120c93ddbd301c0f335b728fc7ab71c9f3fcceb66d7afe6c21762cf80153"
        },
        {
          "slot": "E",
          "name": "Unspeakable Horror",
          "description": "Passive : Gains 90% Movement Speed toward feared enemies. Active : Plants a nightmare into his target's mind, dealing 80 / 140 / 200 / 260 ( +100% AP ) magic damage over 2 seconds. If the target does not get out of range by the end of the duration, they are feared and slowed by 90% for 1.2 / 1.5 / 1.8 / 2.1 seconds.",
          "cooldown": "Cooldown: 14 / 13 / 12 / 11",
          "cost": "Cost: 60 / 65 / 70 / 75",
          "icon": "abilities/nocturne/unspeakable-horror.webp",
          "icon_sha256": "17d908782da534bdb3ed968bcda05de1bb5c9369d367a416d54a2bb106ecff6d"
        },
        {
          "slot": "R",
          "name": "Paranoia",
          "description": "Darkens the map, reducing the field of vision of all enemy champions and removing their vision of allies for 6 seconds. Can be recast during the duration. Recast : Launches himself at an enemy champion, dealing 150 / 275 / 400 ( +120% bonus AD ) physical damage . Nocturne is unstoppable while launching.",
          "cooldown": "Cooldown: 120 / 100 / 80",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/nocturne/paranoia.webp",
          "icon_sha256": "7acaba9db4efeb9dc671bd5de38b84d618da3e9089b08697878fb7e13f49426f"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWQERQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            3,
            6,
            7
          ]
        ],
        "W": [
          [
            2,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            4,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10151.js",
          "snapshot": "sources/ff4b25b38aeae74a27df3bf3844fd4460a54125fbcfb9daf48c19da3297f6cd6",
          "sha256": "ff4b25b38aeae74a27df3bf3844fd4460a54125fbcfb9daf48c19da3297f6cd6",
          "retrieved_at": "2026-11-01T15:46:30.764097+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:31",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "暗影之刃",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "梦魇之径",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "黑暗庇护",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "无言恐惧",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "鬼影重重",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Norra": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/norra",
        "snapshot": "sources/8a1c82550cbc9acdb29e5f9a80de7cfc428a63f497c7e863170b2103ec948eb3",
        "sha256": "8a1c82550cbc9acdb29e5f9a80de7cfc428a63f497c7e863170b2103ec948eb3",
        "retrieved_at": "2026-11-01T15:46:05.762549+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Beloved Trinkets",
          "description": "Trinket: Every 21 seconds, her next ability cast leaves a Trinket on the battlefield for 4 seconds. When touched by an enemy champion, the Trinket activates and fires magical energy at the target, dealing 20 (+20% AP) magic damage. Hitting champions with basic abilities reduces this ability's cooldown by 20% of the maximum cooldown.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/norra/beloved-trinkets.webp",
          "icon_sha256": "c52bcaae132ef567f1b58b28c85e1e8c37fd6ca9e3ab226fb4d34eaace68f746"
        },
        {
          "slot": "Q",
          "name": "Memory Surge",
          "description": "Passive : Deals 1% - 2.5% of the target's max Health as bonus magic damage to enemies enlarged by Threads. Hold (Active) : Gathers memories, slowing herself by 20% . If she continues charging after reaching full charge, the slow increases to 30% and she teleports backward for a short distance after firing. Release (Active) : Unleashes the memories she gathered, charging and firing a magic bolt in the target direction. The magic bolt stops when it hits an enemy champion, dealing 55 / 110 / 165 / 220 ( +60% AP ) magic damage to them and enemies nearby. While Charging : Norra can choose a direction to fire the bolt in; The bolt's range increases with charge duration; The bolt's damage increases with charge duration, up to 140% bonus (deals max 84 damage); When fully charged, Norra activates all nearby Trinkets to fire at the first champion hit by the bolt.",
          "cooldown": "Cooldown: 7 / 6 / 5 / 4",
          "cost": "Cost: 50 / 55 / 60 / 65",
          "icon": "abilities/norra/memory-surge.webp",
          "icon_sha256": "c6c48c818186e8d003f0c05f7282ec9720762a6cb12e8de837c8e44baa6763d0"
        },
        {
          "slot": "W",
          "name": "Journey to Nowhere",
          "description": "Creates a circular magic portal in a target location, dealing 65 / 105 / 145 / 185 ( +40% AP ) magic damage to all enemies within and sending them to another dimension for 1.5 seconds. Enemies in the other dimension : Cannot attack or use abilities, but can move and are slowed by 80% for 0.75 seconds. Enemies are returned to their original location after 1.5 seconds.",
          "cooldown": "Cooldown: 23 / 22 / 21 / 20",
          "cost": "Cost: 75 / 80 / 85 / 90",
          "icon": "abilities/norra/journey-to-nowhere.webp",
          "icon_sha256": "10b7c36d496db1240494871aad11f0a1538b5e5c94a5611574d2f22cd099c7b4"
        },
        {
          "slot": "E",
          "name": "Threads of Homecoming",
          "description": "Passive : When a Trinket damages its target, it applies a Thread . Active : Conjures a portal on each end of a horizontal target area. After a delay, the portals fire interweaving Threads, dealing 70 / 120 / 170 / 220 ( +60% AP ) magic damage and applying Threads to all enemies caught in between. Targets marked with Threads : Have their hitbox size increased by 4 seconds and are slowed by 20% for 2 seconds. Deals 115% damage to monsters and minions.",
          "cooldown": "Cooldown: 12 / 10 / 9 / 7",
          "cost": "Cost: 65 / 65 / 65 / 65",
          "icon": "abilities/norra/threads-of-homecoming.webp",
          "icon_sha256": "f53585b85ae50be28e33564dd1d0429208b27fa311a564cccd527ab311e18362"
        },
        {
          "slot": "R",
          "name": "Portalpalooza!",
          "description": "Creates a large teleportation magic circle, encircling all units caught within. Swiping from one edge of the circle to another. Conjures a portal at both ends, firing a magic bolt from end to end. Norra can do this up to 4 times. The magic bolt slows the first enemy champion by 80% for 0.5 seconds and deals 100 / 140 / 180 ( +55% AP ) magic damage to all enemies along its path. The fourth magic bolt deals 40% bonus magic damage .",
          "cooldown": "Cooldown: 105 / 95 / 95",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/norra/portalpalooza.webp",
          "icon_sha256": "efaba7046b91afd73d7ad109ca3ef93256fc8f0f84d9cca9af1f35233d5dabad"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWQRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10166.js",
          "snapshot": "sources/d1936d9822308779cc77bb5b68e772315bb07e13bd69d9cac223b4f7ef05db8d",
          "sha256": "d1936d9822308779cc77bb5b68e772315bb07e13bd69d9cac223b4f7ef05db8d",
          "retrieved_at": "2026-11-01T15:46:30.775013+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:31",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "寄情琐物",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "回忆涌现",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "奇异旅程",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "思乡线缕",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "传送门欢腾！",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Nunu & Willump": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/nunu-amp-willump",
        "snapshot": "sources/a622e711f13a4eeb31181575b19eebb668ecd533ff437101bfcdcee6323987a9",
        "sha256": "a622e711f13a4eeb31181575b19eebb668ecd533ff437101bfcdcee6323987a9",
        "retrieved_at": "2026-11-01T15:46:05.959817+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Call of the Freljord",
          "description": "Gains 40% Attack Speed and 15% Movement Speed for 4 seconds upon damaging an enemy champion, large monster or structure. A nearby allied champion with the fastest Attack Speed gains half this bonus. Cannot trigger on the same target for 8 seconds.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/nunu-willump/call-of-the-freljord.webp",
          "icon_sha256": "cdead1fc250557c4cbc05c7ebd230bbe8401f7f281f61f3e408f22803ace6683"
        },
        {
          "slot": "Q",
          "name": "Consume",
          "description": "Takes a bite out of the enemy, dealing 55 / 110 / 165 / 220 ( +65% AP +5% HP ) magic damage and healing for 80 / 115 / 150 / 185 ( +70% AP +10% bonus HP ). The healing is increased by 50% when Nunu and Willump are below 50% Maximum Health. Deals 350 / 500 / 650 / 800 true damage agains minions and monsters instead.",
          "cooldown": "Cooldown: 10 / 9 / 8 / 7",
          "cost": "Cost: 60 / 60 / 60 / 60",
          "icon": "abilities/nunu-willump/consume.webp",
          "icon_sha256": "49dcdb9012cd8e00a7e8c1b9d31a5668632d1f7151c04eae272124fa76b12a21"
        },
        {
          "slot": "W",
          "name": "Biggest Snowball Ever!",
          "description": "Willump begins rolling a snowball that increases in size and speed over 12 seconds. The snowball explodes upon colliding with enemy champions, large monsters or terrain dealing 35 / 48 / 61 / 74 - 175 / 240 / 305 / 370 ( 30% AP - 150% AP ) magic damage to enemies and knocking them airborne for 0.5 - 1.25 seconds, increasing with the size of the snowball. Re-cast : Releases the snowball, causing it to explode on the first enemy hit. Removes slows on cast and is immune to slows during rolling. Deals 33.33% damage to minions and small monsters.",
          "cooldown": "Cooldown: 12 / 12 / 12 / 12",
          "cost": "Cost: 55 / 60 / 65 / 70",
          "icon": "abilities/nunu-willump/biggest-snowball-ever.webp",
          "icon_sha256": "d23b32ef6c8f2ba8fc89b2410a18c177a6e5db391eb73b63ad039e7ad47b3f21"
        },
        {
          "slot": "E",
          "name": "Snowball Barrage",
          "description": "Channels for up to 2.5 seconds, throwing snowballs that deal 8 / 12 / 16 / 20 ( +5% AP ) magic damage and slow by 20% for 0.5 seconds. When the channel ends, Willump deals magic damage equal to 3% - 15% ( +0.8 - 4% AP ) of the enemies' max Health and roots them for 0.5 - 1.5 seconds. Damage and root duration scale with number of snowball hits on the target. Final explosion deals up to 150 / 200 / 250 / 300 damage vs. monsters.",
          "cooldown": "Cooldown: 12 / 12 / 12 / 12",
          "cost": "Cost: 55 / 60 / 65 / 70",
          "icon": "abilities/nunu-willump/snowball-barrage.webp",
          "icon_sha256": "d790bec5341ad6527d385ad981fabe522ddf21a90dd21d912a362ffcc6fad3aa"
        },
        {
          "slot": "R",
          "name": "Absolute Zero",
          "description": "Gains a shield that absorbs 65 / 75 / 85 ( +180% AP +35% / 45% / 55% HP ) damage and begins channeling for up to 3 seconds. Nearby enemies are slowed by 50% , increasing to 95% over the duration. When the channel ends, nearby enemies take 180 - 915 ( +50% - 275% AP ) magic damage , increased with channel duration.",
          "cooldown": "Cooldown: 70 / 65 / 60",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/nunu-willump/absolute-zero.webp",
          "icon_sha256": "7fdcd4a4ef274db584687acc63e3d50f398a586846dec401560a4667199d38a9"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEQWRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            3,
            6,
            7
          ]
        ],
        "W": [
          [
            4,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10008.js",
          "snapshot": "sources/39ef1543689e7bf637c4bde23daac33f1a3625eb9565f6775191d2848ff81427",
          "sha256": "39ef1543689e7bf637c4bde23daac33f1a3625eb9565f6775191d2848ff81427",
          "retrieved_at": "2026-11-01T15:46:30.778734+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:23",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "弗雷尔卓德的召唤",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "吞噬",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "史上最大雪球！",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "雪球飞射",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "绝对零度",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Olaf": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/olaf",
        "snapshot": "sources/b4fcbaad136117fc9abcbfc87b327409875e63bd4e3d781a40d434ec7130e8ef",
        "sha256": "b4fcbaad136117fc9abcbfc87b327409875e63bd4e3d781a40d434ec7130e8ef",
        "retrieved_at": "2026-11-01T15:46:05.277238+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Berserker Rage",
          "description": "Gain up to 70% - 110% (based on level) attack speed and 15% - 30% (based on level) physical vamp based on missing health, maxing out at 70% missing health.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/olaf/berserker-rage.webp",
          "icon_sha256": "3f6e833120386ddfba5385b24dda957d77927506b159fa8b042dddeda07a68d8"
        },
        {
          "slot": "Q",
          "name": "Undertow",
          "description": "Throws an axe, dealing 50 / 115 / 180 / 245 (+105% AD ) physical damage and slowing by 20% / 27.55% / 35% / 42.5% for 2 seconds. Picking up the axe reduces Undertow's cooldown by 4.5 seconds. Inflict 20% armor reduction for 4 seconds on enemy champions. Deals 110% damage to monsters.",
          "cooldown": "Cooldown: 7 / 7 / 7 / 7",
          "cost": "Cost: 45 / 50 / 55 / 60",
          "icon": "abilities/olaf/undertow.webp",
          "icon_sha256": "166748420319180183871d212f75b0c8573a456a90d4f9943be3aa251fb8f52d"
        },
        {
          "slot": "W",
          "name": "Vicious Strikes",
          "description": "Olaf gains 35% / 50% / 65% / 80% Attack Speed for 4 seconds and grants himself a shield that absorbs 35 / 70 / 105 / 140 ( +15% missing health ) for 2.5 seconds with an amount that is capped at 70% of missing health.",
          "cooldown": "Cooldown: 15 / 14 / 13 / 12",
          "cost": "Cost: 30 / 30 / 30 / 30",
          "icon": "abilities/olaf/vicious-strikes.webp",
          "icon_sha256": "bdb8e2b0ff014042404abfc4e190b26f19b7c3f0343410eba3302e08a8529a3f"
        },
        {
          "slot": "E",
          "name": "Reckless Swing",
          "description": "Dash to an enemy and deal 45 / 95 / 145 / 195 ( +55% AD ) true damage . If the enemy does not die, Olaf takes 28 ( +15% AD ) true damage . Attacks lower the cooldown of Reckless Swing by 1 second. Deals 95% damage to monsters.",
          "cooldown": "Cooldown: 10 / 9 / 8 / 7",
          "cost": "",
          "icon": "abilities/olaf/reckless-swing.webp",
          "icon_sha256": "f59eb96f5e9c53ccb02752275c18c1100221068babcc20aca7a1395c907526cd"
        },
        {
          "slot": "R",
          "name": "Ragnarok",
          "description": "Passive : Gain 15 / 25 / 35 Armor and Magic Resist . Active : Becomes immune to crowd control and gains 5 / 15 / 25 ( +20% AD ) Attack Damage for 4 seconds. Also gains 20% Movement Speed when moving toward enemy champions for 1 second upon cast. Ragnarok's duration is increased by 2.5 seconds for each basic attack or cast of Reckless Swing against an enemy champion. Ragnarok can be cast while under the effects of crowd control.",
          "cooldown": "Cooldown: 60 / 55 / 50",
          "cost": "",
          "icon": "abilities/olaf/ragnarok.webp",
          "icon_sha256": "4b92e27dde26514da754623c90dd009adf22d453c38c386ea176dd26cdf99f73"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEQWRQQEREEWRWW"
        },
        {
          "label": "Source plan 2",
          "choices": "QEWQRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            3,
            6,
            7
          ],
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            4,
            12,
            14,
            15
          ],
          [
            3,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ],
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ],
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10106.js",
          "snapshot": "sources/0181920c2040a5fedb99c0af44454aa2a173480a0b4b902702d9a708a97cfcef",
          "sha256": "0181920c2040a5fedb99c0af44454aa2a173480a0b4b902702d9a708a97cfcef",
          "retrieved_at": "2026-11-01T15:46:31.008972+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:29",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "狂战之怒",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "逆流投掷",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "残暴打击",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "鲁莽挥击",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "诸神黄昏",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Orianna": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/orianna",
        "snapshot": "sources/1ad4ff97501b48d9fa720e6da0c70fabb24ed8d3acc849c0217324a1f4592d40",
        "sha256": "1ad4ff97501b48d9fa720e6da0c70fabb24ed8d3acc849c0217324a1f4592d40",
        "retrieved_at": "2026-11-01T15:46:05.736297+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Clockwork Windup",
          "description": "Orianna's Ball acts as a focal point for her abilities. It automatically returns to her if she is too far away from it. Attacks deal 10 + 3 per level ( +15% AP ) bonus magic damage . Subsequent attacks against the same target within 4 seconds deal an additional 3 ( +3% AP ) magic damage . Stacks up to 2 times.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/orianna/clockwork-windup.webp",
          "icon_sha256": "a03ab84acacb5b47499ad2580490646cd16559481544813192102e4891fe6755"
        },
        {
          "slot": "Q",
          "name": "Command: Attack",
          "description": "Commands the Ball to fire toward a target location, dealing 60 / 105 / 150 / 195 ( +45% AP ) magic damage to targets along the way. The damage decreases by 10% for each unit it hits ( Minimum 50% ). The Ball remains at the target location afterward.",
          "cooldown": "Cooldown: 7 / 6 / 4 / 3",
          "cost": "Cost: 30 / 35 / 40 / 45",
          "icon": "abilities/orianna/command-attack.webp",
          "icon_sha256": "3198263870e94b4e2dfacf5cb6be73f15ff288c1d0ab8e10fa05af2653f2db73"
        },
        {
          "slot": "W",
          "name": "Command: Dissonance",
          "description": "Commands the Ball to release an electric pulse, dealing 60 / 100 / 140 / 180 ( +70% AP ) magic damage to nearby enemies. The pulse leaves behind an energy field for 3 seconds, slowing enemies by 20% / 25% / 30% / 35% and speeding allies up by 20% / 25% / 30% / 35% for 2 seconds. The effect diminishes over time.",
          "cooldown": "Cooldown: 7 / 7 / 7 / 7",
          "cost": "Cost: 70 / 80 / 90 / 100",
          "icon": "abilities/orianna/command-dissonance.webp",
          "icon_sha256": "2b6f5f1d4fb7ca7fb70e8dd366d50003b9fbb650b5aed72ea172334ec37389e3"
        },
        {
          "slot": "E",
          "name": "Command: Protect",
          "description": "Passive : The Ball grants 10 / 15 / 20 / 25 Armor and Magic Resist to the champion it is attached to. Active : Commands the Ball to attach to an allied champion, granting a shield that absorbs 60 / 110 / 160 / 210 ( +40% AP ) damage for 4 seconds, dealing 50 / 90 / 130 / 170 ( +30% AP ) magic damage to enemies it passes through.",
          "cooldown": "Cooldown: 9 / 9 / 9 / 9",
          "cost": "Cost: 60 / 60 / 60 / 60",
          "icon": "abilities/orianna/command-protect.webp",
          "icon_sha256": "01ed0b1b02464021e553c5d448b26d39145b9231e8b3ea77b1975224b9a5b5d4"
        },
        {
          "slot": "R",
          "name": "Command: Shockwave",
          "description": "Commands the Ball to unleash a shockwave, dealing 250 / 350 / 450 ( +85% AP ) magic damage and launching nearby enemies toward the Ball after a brief delay.",
          "cooldown": "Cooldown: 75 / 65 / 55",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/orianna/command-shockwave.webp",
          "icon_sha256": "2d8392550db33c0a53ed82deff3754bf90b035713227edc374a0454c96e6775e"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWEQRQQWRWWEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10012.js",
          "snapshot": "sources/f3eb5cc9a283720078e3de598a846e6f76f3a347eae86256f4af8233c36182da",
          "sha256": "f3eb5cc9a283720078e3de598a846e6f76f3a347eae86256f4af8233c36182da",
          "retrieved_at": "2026-11-01T15:46:31.011380+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:23",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "发条协奏",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "指令：攻击",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "指令：杂音",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "指令：防卫",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "指令：冲击波",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Ornn": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/ornn",
        "snapshot": "sources/1769d8153bfc8187e126369e7c53914ab99ddc3e5c93de582b72ccb0f8d0da54",
        "sha256": "1769d8153bfc8187e126369e7c53914ab99ddc3e5c93de582b72ccb0f8d0da54",
        "retrieved_at": "2026-11-01T15:46:06.950784+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Living Forge",
          "description": "Ornn can spend gold to forge items anywhere on the map. Ornn gains an additional 7% / 12% / 17% / 22%",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/ornn/living-forge.webp",
          "icon_sha256": "458b6de6aa06ec83ff7808e09b11010b5b3ac5b2d66c6cde30040a7b7ad71d75"
        },
        {
          "slot": "Q",
          "name": "Volcanic Rupture",
          "description": "Ornn slams the ground, creating a fissure dealing 25 / 60 / 95 / 130 ( +110% AD ) physical damage and slowing by 55% for 2 seconds. A pillar of rock forms at the fissure's end for 4 seconds. The fissure stops shortly after hitting an enemy champion.",
          "cooldown": "Cooldown: 9 / 9 / 8 / 8",
          "cost": "Cost: 45 / 45 / 45 / 45",
          "icon": "abilities/ornn/volcanic-rupture.webp",
          "icon_sha256": "02c269cf83abc06fc55054b087e4d04203219221d4c31e5f4771a802cb0ef092"
        },
        {
          "slot": "W",
          "name": "Bellows Breath",
          "description": "Ornn stomps forward Unstoppably while breathing fire, dealing 10% / 11% / 12% / 13% max Health magic damage over 0.75 seconds. Enemies hit by the final bout of flame become Brittle for 3 seconds. Immobilizing effects on Brittle targets have their duration increased by 30% and deal an additional 8% max Health magic damage ( 7% - 22% ). Ornn's Attacks against Brittle targets Knock them Back, dealing additional damage. Dealing a minimum of 90 / 140 / 190 / 240 magic damage to minions, and a max of 155 / 190 / 225 / 260 magic damage to jungle monsters. Immobilizing deals a maximum of 250 damage to monsters.",
          "cooldown": "Cooldown: 12 / 11 / 11 / 10",
          "cost": "Cost: 45 / 45 / 45 / 45",
          "icon": "abilities/ornn/bellows-breath.webp",
          "icon_sha256": "ef03f8fdb9f2ee2c3a0088612bba2071156058f2ff743de6ac43cb2c56081f89"
        },
        {
          "slot": "E",
          "name": "Searing Charge",
          "description": "Ornn charges, dealing 80 / 140 / 200 / 260 ( +40% bonus Armor +40% bonus MR ) physical damage . If Ornn rams into terrain, he creates a shockwave that Knocks Up enemies for 1.25 seconds and applies the same damage to those in the area. Ornn's charge destroys magma pillars and terrain created by enemies and reduces the cooldown of this skill by 25% .",
          "cooldown": "Cooldown: 13 / 12 / 11 / 10",
          "cost": "Cost: 35 / 35 / 35 / 35",
          "icon": "abilities/ornn/searing-charge.webp",
          "icon_sha256": "1633886cb2e54cdd129e98d7d587cb104729357ed76b12bacfc1a0f1196cd7b7"
        },
        {
          "slot": "R",
          "name": "Call of the Forge God",
          "description": "Ornn summons a massive lava elemental, wich stampedes towards him, dealing 125 / 175 / 225 ( +20% AP ) magic damage , and applies Brittle for 3 seconds. The elemental also slows by up to 40% for 2 seconds, based on Ornn's level. Ornn can recast this to dash with a headbutt. If he dashes into the elemental, he redirects and empowers it, causing it to Knock Up the first champion hit for 1 second and subsequent champions for 0.5 seconds. The elemental also deals 125 / 175 / 225 ( +20% AP ) magic damage and reapplies Brittle.",
          "cooldown": "Cooldown: 90 / 80 / 70",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/ornn/call-of-the-forge-god.webp",
          "icon_sha256": "d9dc1b0d79ae8cbcc8ed24501b07615f36fdb83b22ef9e65c085415e89eef40d"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWEWRWWQRQQEREE"
        },
        {
          "label": "Source plan 2",
          "choices": "QEWWRWWQRQQEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            8,
            10,
            11
          ],
          [
            1,
            8,
            10,
            11
          ]
        ],
        "W": [
          [
            2,
            4,
            6,
            7
          ],
          [
            3,
            4,
            6,
            7
          ]
        ],
        "E": [
          [
            3,
            12,
            14,
            15
          ],
          [
            2,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ],
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10136.js",
          "snapshot": "sources/df55d2273ef2737ad20c2d335af0f060301a16385ff631444b5ffd5fe710fe6a",
          "sha256": "df55d2273ef2737ad20c2d335af0f060301a16385ff631444b5ffd5fe710fe6a",
          "retrieved_at": "2026-11-01T15:46:31.013565+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:30",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "活体锻炉",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "火山突堑",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "风箱炎息",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "炽烈冲锋",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "熔铸之神的召唤",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Pantheon": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/pantheon",
        "snapshot": "sources/81477b9f18759dab12af768575a7ffc84eaa7d8355b3b21e59da149e92f27a35",
        "sha256": "81477b9f18759dab12af768575a7ffc84eaa7d8355b3b21e59da149e92f27a35",
        "retrieved_at": "2026-11-01T15:46:06.830672+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Mortal Will",
          "description": "After 5 attacks or abilities Pantheon's next basic ability is enhanced.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/pantheon/mortal-will.webp",
          "icon_sha256": "da7df3b65181bbb6c439df9cd92c81e5e3e325865bf6c5bef09fecbc666f7af7"
        },
        {
          "slot": "Q",
          "name": "Comet Spear",
          "description": "Tap Cast : Stabs forward, dealing 80 / 120 / 160 / 200 ( +120% AD ) physical damage . Refunds 60% of Comet Spear's Cooldown. Charge Cast : Hurls the spear, dealing the same damage to the first enemy hit and 50% less to subsequent targets. Enemies below 25% Health are critically hit for 120 / 210 / 300 / 390 ( +180% AD ) physical damage instead. Mortal Will : Deals an additional 30 ( +120%AD ) physical damage. Damage to minions is reduced by 20% . Deals 110% damage to monsters.",
          "cooldown": "Cooldown: 9 / 8 / 8 / 7",
          "cost": "Cost: 40 / 40 / 40 / 40",
          "icon": "abilities/pantheon/comet-spear.webp",
          "icon_sha256": "084d1d2a9b3e64104c386c0b6c9db51f93df7a1d54930314554318f669a445c9"
        },
        {
          "slot": "W",
          "name": "Shield Vault",
          "description": "Dash to an enemy, stunning for 1 second and dealing 70 / 120 / 170 / 220 ( +100% AP ) physical damage . Mortal Will : Follows up with an Empowered attack that strikes 3 times, dealing a total of 87 ( 135% AD ) physical damage .",
          "cooldown": "Cooldown: 12 / 11 / 10 / 9",
          "cost": "Cost: 55 / 55 / 55 / 55",
          "icon": "abilities/pantheon/shield-vault.webp",
          "icon_sha256": "9df118cd7d75beef620dbb7a40a05237b0a895852a9b92df7275b5cfb98db87e"
        },
        {
          "slot": "E",
          "name": "Aegis Assault",
          "description": "Block all non-tower damage from a direction for 1.5 seconds and deal 64 ( 100% AD ) physical damage to nearby enemies. At the end slam forward and deal 60 / 120 / 180 / 240 ( +150% AD ) physical damage . Mortal Will : When Pantheon slams his shield he gains 60% Move Speed for 2.5 seconds. Pantheon is slowed by up to 50% when moving away from the blocking direction. Recast to end early. Damage to minions is reduced by 50% .",
          "cooldown": "Cooldown: 15 / 14 / 13 / 12",
          "cost": "Cost: 80 / 80 / 80 / 80",
          "icon": "abilities/pantheon/aegis-assault.webp",
          "icon_sha256": "ac3bf7d76e517095267a5e4f9c21b8d6705248fe1d43d278cbdb5a9b69a41731"
        },
        {
          "slot": "R",
          "name": "Grand Starfall",
          "description": "Passive : Gains 10% / 20% / 30% Armor Penetration . Active : Leaps into the air and throws a spear that deals 30 ( Comet Spear damage) physical damage and slows by 50% for 2 seconds. Then crashes down, dealing up to 300 / 500 / 700 ( +100% AP ) magic damage . Grand Starfall instantly readies Mortal Will . Damage is decreased by up to 50% at the edges of the landing area.",
          "cooldown": "Cooldown: 90 / 80 / 70",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/pantheon/grand-starfall.webp",
          "icon_sha256": "20df64184ef4c9c0096a9d83ab1879819c184d5c0abacf5a805fe5ad8aae5178"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWQERQQWRWWEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            3,
            6,
            7
          ]
        ],
        "W": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            4,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10030.js",
          "snapshot": "sources/0f20d56594aa01c0c87f9e5b20235dbf3c04c31ac53b763420177bf887a3a2bd",
          "sha256": "0f20d56594aa01c0c87f9e5b20235dbf3c04c31ac53b763420177bf887a3a2bd",
          "retrieved_at": "2026-11-01T15:46:31.013972+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:24",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "矢志不退",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "贯星长枪",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "斗盾跃击",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "神佑枪阵",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "大荒星陨",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Poppy": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/poppy",
        "snapshot": "sources/dc3b8bbb956ebd53a5761ea217bc4572696f9a9f3ddf1fbb49e1ba23b46d8652",
        "sha256": "dc3b8bbb956ebd53a5761ea217bc4572696f9a9f3ddf1fbb49e1ba23b46d8652",
        "retrieved_at": "2026-11-01T15:46:06.052608+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Iron Ambassador",
          "description": "Ever 12 seconds, Poppy's next attack throws her buckler, gaining 350 Attack Range and dealing 20 bonus magic damage . The buckler ricochets off the target, landing nearby for 4 seconds. Poppy can pick it up to gain a shield that absorbs 86 damage ( 13% of max Health ) for 3 seconds. If the buckler kills the target or if the target dies before being hit, it automatically returns to Poppy.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/poppy/iron-ambassador.webp",
          "icon_sha256": "0f872493d319401da1b5f591a3502cd421d8d1097cc5f104ae452e67b9f8a8c0"
        },
        {
          "slot": "Q",
          "name": "Hammer Shock",
          "description": "Poppy smashes the ground, dealing 50 / 70 / 90 / 110 ( +90% bonus AD ) + 9% of the target's max Heath as physical damage and making the ground unstable. The unstable area slows enemies by 25% / 30% / 35% / 40% and monsters and erupts after 1 second, dealing 50 / 70 / 90 / 110 ( +90% bonus AD ) + 9% of the target's max Health as physical damage again. Poppy's percent health damage is capped against monsters at 40 / 100 / 160 / 220 damage per hit.",
          "cooldown": "Cooldown: 7 / 6 / 5 / 4",
          "cost": "Cost: 30 / 30 / 30 / 30",
          "icon": "abilities/poppy/hammer-shock.webp",
          "icon_sha256": "7967f430af53ff7d817a54578f3805fd74c775066c066fa14eefffce5ef05014"
        },
        {
          "slot": "W",
          "name": "Steadfast Presence",
          "description": "Passive : Gains 12% Armor and 12% Magic Resist . This bonus doubles when Poppy is below 40% Health . Active : Gains 40% Movement Speed and projects a field around her for 2 seconds that stops enemy dashes. Enemies who are stopped by the field take 95 / 140 / 185 / 230 ( +70% AP ) magic damage and are grounded and slowed by 25% for 2 seconds.",
          "cooldown": "Cooldown: 19 / 16 / 14 / 11",
          "cost": "Cost: 40 / 40 / 40 / 40",
          "icon": "abilities/poppy/steadfast-presence.webp",
          "icon_sha256": "f1b3f9378394c126d4cc7b1c4b9be8c6d8502af7630eb063be696a4084c2d0ff"
        },
        {
          "slot": "E",
          "name": "Heroic Charge",
          "description": "Tackles an enemy, dealing 75 / 100 / 125 / 150 ( +50% bonus AD ) physical damage and carrying them forward. If Poppy tackles them into terrain, the target is stunned for 1.7 / 1.8 / 1.9 / 2 seconds and takes and additional 75 / 100 / 125 / 150 ( +50% bonus AD ) physical damage .",
          "cooldown": "Cooldown: 13 / 12 / 11 / 10",
          "cost": "Cost: 60 / 60 / 60 / 60",
          "icon": "abilities/poppy/heroic-charge.webp",
          "icon_sha256": "9dc46264ea6509a6a5c1c28672f8bf339fe58af07ba22a6f064f795e2565eae2"
        },
        {
          "slot": "R",
          "name": "Keeper's Verdict",
          "description": "Hold : Charges her hammer for up to 4 seconds, slowing herself by 15% . Release : Smashes the ground, creating a shockwave that deals 200 / 300 / 400 ( +90% bonus AD ) physical damage to the first enemy champion hit and nearby enemies, knocks them back toward their Nexus, and makes them untargetable while they fly. The range and knock back distance increase with charge duration. An uncharged smash deals 100 / 150 / 200 ( +45% bonus AD ) physical damage and knocks enemies airborne for 1 second.",
          "cooldown": "Cooldown: 90 / 80 / 70",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/poppy/keeper-s-verdict.webp",
          "icon_sha256": "017ec5d363556b672a6d813aee9232dce054ed87a20fb9390606e1c53d366d86"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWQRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10076.js",
          "snapshot": "sources/c97b32a76641fdf5c2ec348545a2564c74f8960af9495609d61a72ac7b6f9ca8",
          "sha256": "c97b32a76641fdf5c2ec348545a2564c74f8960af9495609d61a72ac7b6f9ca8",
          "retrieved_at": "2026-11-01T15:46:31.025495+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:27",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "钢铁大使",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "圣锤猛击",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "坚定风采",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "英勇冲锋",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "持卫的裁决",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Pyke": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/pyke",
        "snapshot": "sources/67d33b3fd312724f2c49764c39db40cccb15ae21eb3a4ccd1a15765d77e93dd9",
        "sha256": "67d33b3fd312724f2c49764c39db40cccb15ae21eb3a4ccd1a15765d77e93dd9",
        "retrieved_at": "2026-11-01T15:46:06.168931+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Gift of the Drowned Ones",
          "description": "Stores 10% ( +0.35 lethality ) of damage taken from champions, increased to 50% ( +0.65%lethality ) if there are two or more visible enemy champions nearby. Damage stored cannot exceed 160 (lower value between 65% HP and 160 + 800% bonus AD ). When Pyke is not visible to enemies, he heals for the amount of damage stored. Pyke cannot increase his max Health and converts 14 bonus Health to 1 Attack Damage .",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/pyke/gift-of-the-drowned-ones.webp",
          "icon_sha256": "fcf72319e85eac786af345864363feae422541297ee4d36cd235d6a2f53dce00"
        },
        {
          "slot": "Q",
          "name": "Bone Skewer",
          "description": "Charge : Slows himself by 15% for up to 3 seconds, increasing cast rage over the first 0.8 seconds. Release : Hurls his spear, dealing 130 / 195 / 260 / 325 ( +60% AD ) physical damage , slowing the target by 90% for 1 second and pulling it in. Releasing the ability immediately will cause Pyke to thrust his spear instead, dealing the same damage. Deals 50% damage to minions and monsters. If Bone Skewer is overcharged it refunds a portion of its cooldown and 50% of its mana cost.",
          "cooldown": "Cooldown: 10 / 9 / 8 / 7",
          "cost": "Cost: 35 / 40 / 45 / 50",
          "icon": "abilities/pyke/bone-skewer.webp",
          "icon_sha256": "3cafc97e8e68220ea39ce62714a520ad5e3583bb43f0e7bdc285908e631942ae"
        },
        {
          "slot": "W",
          "name": "Ghostwater Dive",
          "description": "Becomes camouflaged for 5 seconds and gains 40% (+200% lethality) Movement Speed that decays over the duration.",
          "cooldown": "Cooldown: 11 / 10 / 10 / 9",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/pyke/ghostwater-dive.webp",
          "icon_sha256": "635ab31fa96b205465a16242caee491bf624e735db223b9aa879c80d9d1b7a08"
        },
        {
          "slot": "E",
          "name": "Phantom Undertow",
          "description": "Dashes forward, leaving behind a phantom. After 1 second, the phantom returns to Pyke, dealing 120 / 175 / 230 / 285 ( +100% AD ) physical damage and stunning for 1.5 ( +1% lethality ) seconds. Deals 50% damage to minions and monsters.",
          "cooldown": "Cooldown: 11 / 11 / 10 / 10",
          "cost": "Cost: 40 / 40 / 40 / 40",
          "icon": "abilities/pyke/phantom-undertow.webp",
          "icon_sha256": "9a052716a53c06e3d2de5c3ac787072b2b02d4e28b9292da66df28c049dcfb73"
        },
        {
          "slot": "R",
          "name": "Death from Below",
          "description": "Marks target area with an X , executing enemy champions below 250 / 400 / 550 ( +80% AD +250% lethality ) health . Non-champions and champions above the threshold take 50% of this amount as physical damage . If an enemy champion is struck, Pyke blinks to the location. If they were executed Pyke can recast Death from Below within 15 seconds. Pyke earns 100% additional gold every time he executes an enemy. If here is an assist from a teammate, the last assisting teammate will get 120% of the additional gold, and Pyke will get 160% of the additional gold (maximum 600), every time an enemy Champion is defeated by a teammate in the area with a X , Pyke can get 160% of the additional gold (capped at 600).",
          "cooldown": "Cooldown: 80 / 70 / 60",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/pyke/death-from-below.webp",
          "icon_sha256": "46135770332089e5ef46db1fdb76ed185c4de72bf4712033430b4fbec2f38be4"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWQRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10124.js",
          "snapshot": "sources/d27bcb31473b60e44b23e9f58de36ad2e4f60faf5e34e842513d99bc6fd77cb0",
          "sha256": "d27bcb31473b60e44b23e9f58de36ad2e4f60faf5e34e842513d99bc6fd77cb0",
          "retrieved_at": "2026-11-01T15:46:31.023743+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:29",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "溺水之幸",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "透骨尖钉",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "幽潭潜行",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "魅影浪洄",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "涌泉之恨",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Rakan": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/rakan",
        "snapshot": "sources/473a32033a22a491e17c18879476190d6f46a9ac484d26322d087b6cbdfe5dcc",
        "sha256": "473a32033a22a491e17c18879476190d6f46a9ac484d26322d087b6cbdfe5dcc",
        "retrieved_at": "2026-11-01T15:46:06.140080+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Fey Feathers",
          "description": "Every 35 - 14 seconds, gain a 31 ( +80% AP ) health shield . Attacks and abilities on enemy champions reduce this cooldown by 1 second. Lover's Leap : Xayah and Rakan can join each other's recall. Both will reach Summoming Platform at the time of wich the initiator's recall ends.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/rakan/fey-feathers.webp",
          "icon_sha256": "515e3deef2be31605043ebdd5157ca02b59fec3333964e13ede5688777640b39"
        },
        {
          "slot": "Q",
          "name": "Gleaming Quill",
          "description": "Fling a magical feather that deals 90 / 150 / 210 / 270 ( +60% AP ) magic damage to the first enemy hit. If the feather hits a champion or epic monster, Rakan restores 56 - 140 ( +70% AP ) health to himself and nearby allies after 3 seconds or when he touches an ally.",
          "cooldown": "Cooldown: 10 / 9 / 8 / 7",
          "cost": "Cost: 60 / 60 / 60 / 60",
          "icon": "abilities/rakan/gleaming-quill.webp",
          "icon_sha256": "2be3a7d2c375740b66f3291f7077d248e073b1ceef1b796d3417d667ca46a7c5"
        },
        {
          "slot": "W",
          "name": "Grand Entrance",
          "description": "Dashes to a location. Upon arrival Rakan leaps into the air, dealing 70 / 135 / 200 / 265 ( +45% AP ) magic damage and knocking up enemies for 1 second.",
          "cooldown": "Cooldown: 16 / 14 / 12 / 10",
          "cost": "Cost: 50 / 60 / 70 / 80",
          "icon": "abilities/rakan/grand-entrance.webp",
          "icon_sha256": "558db0269aee3f4b45fac5f33e4da16a6d0f39cd5d0645934ac7d3eca53305d0"
        },
        {
          "slot": "E",
          "name": "Battle Dance",
          "description": "Flies to an allied champion, granting them a shield that absorbs 50 / 80 / 110 / 140 ( +65% AP ) damage for 3 seconds. Can be re-cast for free within 5 seconds. When cast on Xayah, the shield amount is increased by 25% and the cooldown is reduced.",
          "cooldown": "Cooldown: 18 / 16 / 14 / 12",
          "cost": "Cost: 60 / 70 / 80 / 90",
          "icon": "abilities/rakan/battle-dance.webp",
          "icon_sha256": "a055f7c56c7562ad0aec971e277541c0d9766ffbe4e218b55cd42154cddc2534"
        },
        {
          "slot": "R",
          "name": "The Quickness",
          "description": "Gains 60% Movement Speed for 4 seconds. Touching enemies deals 100 / 200 / 300 ( +50% AP ) magic damage and charms them for 1 / 1.25 / 1.5 seconds. This may only occur once per unit. The first champion charmed grants Rakan 75% decaying Movement Speed .",
          "cooldown": "Cooldown: 80 / 70 / 60",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/rakan/the-quickness.webp",
          "icon_sha256": "36fe96b27c6cff821da3906f980a4205effba8e0db4d2c73618b1f0b9eeac0d8"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "WEQWRWWEREEQRQQ"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "W": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10052.js",
          "snapshot": "sources/7632eab4f8b4ddfb27e251f8d514eb35d7d0f3c138bbd4d12903646e29358e59",
          "sha256": "7632eab4f8b4ddfb27e251f8d514eb35d7d0f3c138bbd4d12903646e29358e59",
          "retrieved_at": "2026-11-01T15:46:31.256347+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:26",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "异色羽裳",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "微光飞翎",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "盛大登场",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "轻舞成双",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "惊鸿过隙",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Rammus": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/rammus",
        "snapshot": "sources/1f7e5f58e87ee92cf11c04cd5610af138d7a3bad17ba6f8d16f51cbf7c4c67a5",
        "sha256": "1f7e5f58e87ee92cf11c04cd5610af138d7a3bad17ba6f8d16f51cbf7c4c67a5",
        "retrieved_at": "2026-11-01T15:46:07.370928+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Rolling Armordillo",
          "description": "While out of combat gain, 32 Movement Speed , increased to 60 + Level x 1 during Powerball . Exit combat after not taking damage or using abilities for 5 seconds.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/rammus/rolling-armordillo.webp",
          "icon_sha256": "6e5a33d4e6eee2b53f6890b5514956cee5045e67343c71f2face8986feb342e7"
        },
        {
          "slot": "Q",
          "name": "Powerball",
          "description": "Accelerates up to 115% + level x 5% bonus Movement Speed over 6 seconds. Colliding with an enemy deals 80 / 110 / 140 / 170 ( +100% AP ) magic damage in an area, knocking back and slowing enemies by 40% / 50% / 60% / 70% for 1 second. Activating cancels Defensive Ball Curl and puts it on cooldown.",
          "cooldown": "Cooldown: 12 / 10 / 8 / 6",
          "cost": "Cost: 65 / 65 / 65 / 65",
          "icon": "abilities/rammus/powerball.webp",
          "icon_sha256": "f89d77d812c420c9325291068552f858597ed43aa5905621dc052b303aec4fb8"
        },
        {
          "slot": "W",
          "name": "Defensive Ball Curl",
          "description": "Spiked Shell: Attacks deal 12 / 14 / 16 / 18 ( +10% Armor ) bonus magic damage . Active : Brace for up to 6 seconds, gaining 30 ( +30% / 40% / 50% / 60% Armor ) Armor and 10 ( +35% / 40% / 45% / 50% MR ) Magic Resist . While curled Spiked Shell deals 40% more damage and also applies to enemies that attack Rammus. Deals 175% damage to monsters. Activating cancels Powerball and puts it on cooldown.",
          "cooldown": "Cooldown: 7 / 7 / 7 / 7",
          "cost": "Cost: 40 / 40 / 40 / 40",
          "icon": "abilities/rammus/defensive-ball-curl.webp",
          "icon_sha256": "fd6bd94f1ccb2276698ff3ccf10ece3531ed498cd9d72f2d9100241145b2bb38"
        },
        {
          "slot": "E",
          "name": "Frenzying Taunt",
          "description": "Taunts an enemy champion or monster for 1.25 / 1.5 / 1.75 / 2 seconds and gain 35% / 45% / 55% / 65% Attack Speed decaying over 5 seconds.",
          "cooldown": "Cooldown: 14 / 13 / 13 / 12",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/rammus/frenzying-taunt.webp",
          "icon_sha256": "f1ae898b50902c808c34f8f28e72223a1a3983da79daf14696b02a1cfc6d920a"
        },
        {
          "slot": "R",
          "name": "Soaring Slam",
          "description": "Hop into the air and slam down, dealing 75 / 150 / 225 ( +50% / 60% / 70% AP ) magic damage and creating aftershocks for 4 seconds. Aftershocks deal 30 ( +20% AP ) magic damage every second and slow enemies incrementally by 10% , stacking up to 50% . If used during Powerball, Powerball's effects are applied at the center of the landing zone. Soaring Slam's range increases with Movement Speed . Soaring Slam damages structures.",
          "cooldown": "Cooldown: 70 / 60 / 50",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/rammus/soaring-slam.webp",
          "icon_sha256": "e476d4896eda231e3fc6c81e7e63803f48f015151c9c600c3271d811f10d8fa4"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "WEQQRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            3,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            1,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [
          {
            "control_key": "defensive_ball_curl_rank",
            "slot": "W",
            "rank_basis": "learned",
            "ability": "Defensive Ball Curl",
            "engine_semantics": "rammus_spiked_shell learned-W passive and explicit Ball Curl resistance buff",
            "initial_rank": 0,
            "source": "champion.source (exact slot/name); canonical champion_mechanics.json rule identity",
            "engine_evidence": "game_rules.py rank consumers and champion_mechanics.json explicit rule parameters"
          }
        ],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10064.js",
          "snapshot": "sources/4913389736b5be835f018880a74721b0d2b764f2fbdbf646f22ec1540eee438c",
          "sha256": "4913389736b5be835f018880a74721b0d2b764f2fbdbf646f22ec1540eee438c",
          "retrieved_at": "2026-11-01T15:46:31.253480+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:26",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "滚动龙龟",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "动力冲刺",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "尖刺防御",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "狂乱嘲讽",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "跃空撼地",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Rell": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/rell",
        "snapshot": "sources/bcb204b415ac7e9e953075c1f4f8c74c4dc334d9068fa9615ec3e0f38a013864",
        "sha256": "bcb204b415ac7e9e953075c1f4f8c74c4dc334d9068fa9615ec3e0f38a013864",
        "retrieved_at": "2026-11-01T15:46:07.468609+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Break the Mold",
          "description": "Rell's attacks and abilities steal 2.5% Armor and 2.5% Magic Resist from enemies hit for 5 seconds, up to an increase of 12.5%. Max stacks: 5 per target. Her attacks additional deal 4 ( 5% Armor + 5% Magic Resist ) magic damage on hit. Rell steals at least 1.5 - 3 Armor and Magic Resist. Does not steal from minions or epic monsters.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/rell/break-the-mold.webp",
          "icon_sha256": "8f0eef8328f9202c2629a3667216602e1d6dcc166c5b0367289a9d69293c9fdc"
        },
        {
          "slot": "Q",
          "name": "Shattering Strike",
          "description": "Thrusts her lance, dealing 70 / 130 / 190 / 250 ( +50% AP ) magic damage , stunning for 0.65 seconds, and destroying all shields. Does not break shields on monsters.",
          "cooldown": "Cooldown: 11 / 10 / 9 / 8",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/rell/shattering-strike.webp",
          "icon_sha256": "3b49611b4fca9c8fbf62553072d48ffe7094147d66b1f5acdc8a9141f87a4553"
        },
        {
          "slot": "W",
          "name": "Ferromancy - Crash Down / Mount Up",
          "description": "Mounted Alacrity (Passive) : Gains 15 Movement Speed while mounted. Ferromancy: Crash Down (Active) : Leaps off her mount, dealing 70 / 100 / 130 / 160 ( +50% AP ) magic damage . Enemies are also knocked up. Gains a shield that absorbs 30 / 60 / 90 / 120 ( +13% max Health ) damage , which lasts until she remounts. Rell then enters Armored Form, which lets her cast Ferromancy: Mount up. Armored Form Dismounted Resilience (Passive) : Gains 12% Armor and 12% Magic Resist . Gains 20% Attack Speed . Gains 75 Attack Range . Ferromancy Mount Up (Active) : Mounts up and gains 30% decaying Movement Speed for 2 seconds. Her next attack within 3.5 seconds knocks up enemies and throws them behind her, dealing an additional 15 / 30 / 45 / 60 ( +35% AP ) magic damage . She then enters Mounted Form, which lets her cast Ferromancy: Crash Down.",
          "cooldown": "Cooldown: 9 / 9 / 9 / 9",
          "cost": "Cost: 40 / 40 / 40 / 40",
          "icon": "abilities/rell/ferromancy-crash-down-mount-up.webp",
          "icon_sha256": "79948ab9cc093969db441a1e785435440a990dcdba15034a6b56c583408ebae0"
        },
        {
          "slot": "E",
          "name": "Full Tilt",
          "description": "Charges, granting herself and a target allied champion nearby 10% Movement Speed . If no target is selected, the nearest allied champion will receive the bonus. This bonus increases to 25% for 3 seconds when facing enemy champions or each other. Rell's next attack or Shattering Strike explodes in an area, dealing 5.5% / 6% / 6.5% / 7% ( +0.03 AP ) of the target's max Health as magic damage . Deals up to 150 damage against monsters and structures.",
          "cooldown": "Cooldown: 13 / 13 / 13 / 13",
          "cost": "Cost: 40 / 40 / 40 / 40",
          "icon": "abilities/rell/full-tilt.webp",
          "icon_sha256": "dd3e5a47816f620a01a95379479b63c48b7d4b126e0feedb60f1b05cec40db27"
        },
        {
          "slot": "R",
          "name": "Magnet Storm",
          "description": "Explodes in fury, pulling nearby enemy champions toward herself. Continuous Pull : While Magnet Storm is active, constantly pulls nearby enemies toward herself and deals 120 / 200 / 280 ( +100% AP ) magic damage over 2 seconds.",
          "cooldown": "Cooldown: 75 / 70 / 65",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/rell/magnet-storm.webp",
          "icon_sha256": "4199e8b01ee833e3092e517d37053b4580cab6e504289640280efe3bcb444717"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "WQEWRWWEREEQRQQ"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            2,
            12,
            14,
            15
          ]
        ],
        "W": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "E": [
          [
            3,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [
          {
            "control_key": "ferromancy_rank",
            "slot": "W",
            "rank_basis": "learned",
            "ability": "Ferromancy - Crash Down / Mount Up",
            "engine_semantics": "declared canonical learned-W control; no rank-indexed engine consumer; form remains explicit",
            "initial_rank": 0,
            "source": "champion.source (exact slot/name); canonical champion_mechanics.json rule identity",
            "engine_evidence": "game_rules.py rank consumers and champion_mechanics.json explicit rule parameters"
          }
        ],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10116.js",
          "snapshot": "sources/6722914c8b46a55b2cb0e7ed31fbb2f30bbf788215dc9c1d6a0487fb9af1ee9f",
          "sha256": "6722914c8b46a55b2cb0e7ed31fbb2f30bbf788215dc9c1d6a0487fb9af1ee9f",
          "retrieved_at": "2026-11-01T15:46:31.259899+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:29",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "溃敌沉力",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "裂阵",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "驭铁术：轰落",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "全速冲锋",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "极涌",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Renekton": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/renekton",
        "snapshot": "sources/0496b27df14563748f5dae31bc3e9b72257114d3a40567f96741d703cb52918f",
        "sha256": "0496b27df14563748f5dae31bc3e9b72257114d3a40567f96741d703cb52918f",
        "retrieved_at": "2026-11-01T15:46:07.439519+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Reign of Anger",
          "description": "Casting abilities with 50 Fury or more consumes that Fury for enhanced effects. Enhanced abilities do not generate any Fury . Attacks generate 5 Fury . Fury gains are increased by 50% when under 50% Health . Out of combat, 4 Fury dissipates every second.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/renekton/reign-of-anger.webp",
          "icon_sha256": "abbe934061c43f13ab8b33e1cec5b83fda1b2f4243bd38e4846ac6b793bde0f8"
        },
        {
          "slot": "Q",
          "name": "Cull the Meek",
          "description": "Deal 80 / 130 / 180 / 230 ( +100% AD ) physical damage to nearby enemies, generating 5 Fury or 10 Fury if the enemy hit is a champion and healing 4 / 6 / 8 / 10 ( +5% bonus AD ) per enemy hit, if the enemy hit is a champion, restore 16 / 24 / 32 / 40 ( +20% bonus AD ) Health . Reign of Anger : Damage increases to 120 / 195 / 270 / 345 ( +135% AD ) physical damage and healing is increased by 200% .",
          "cooldown": "Cooldown: 7 / 7 / 7 / 7",
          "cost": "",
          "icon": "abilities/renekton/cull-the-meek.webp",
          "icon_sha256": "161dde3bd4dc1019c5f54be9c4d7e66e3ac8d5ad087ab77096df8d1e3b6bd605"
        },
        {
          "slot": "W",
          "name": "Ruthless Predator",
          "description": "Empowers the next attack to strike twice, stunning for 0.75 seconds and dealing 20 / 60 / 100 / 140 ( +150% AD ) physical damage . Reign of Anger : Strikes three times, stunning for 1.5 seconds and dealing 30 / 90 / 150 / 2 10 ( +225% AD ) physical damage . Under the effect of Red Fury, clear all shields on the target. Gain an additional 10 Fury when an enemy champion is hit.",
          "cooldown": "Cooldown: 14 / 12 / 10 / 8",
          "cost": "",
          "icon": "abilities/renekton/ruthless-predator.webp",
          "icon_sha256": "fb32206830d619d51bf24b75031faeb9d2345cea6bbabab0ff7ee3fa0197900a"
        },
        {
          "slot": "E",
          "name": "Slice and Dice",
          "description": "Dash in a direction, dealing 40 / 80 / 120 / 160 ( +90% AD ) physical damage and generating 5 Fury for each enemy passed through or 10 Fury if the enemy hit is a champion. Hitting an enemy grants a second dash to cast within 4 seconds. Reign of Anger : The second dash now deals 70 / 130 / 190 / 250 ( +135% AD ) physical damage and shreds armor by 25% / 30% / 35% / 40% for 4 seconds. When an enemy champion is hit, restore 20 Fury in 2 seconds.",
          "cooldown": "Cooldown: 14 / 13 / 11 / 10",
          "cost": "",
          "icon": "abilities/renekton/slice-and-dice.webp",
          "icon_sha256": "d3073044d8e43d4645bc2f76b8f0a2009f11c1b81a5e9f851f1d12f05c5ffa68"
        },
        {
          "slot": "R",
          "name": "Dominus",
          "description": "Gain 20 Fury and 300 / 575 / 750 Heath for 12 seconds. Every second after casting, gain 5 fury and deal 70 / 120 / 170 ( +20% AP ) magic damage to nearby enemies.",
          "cooldown": "Cooldown: 75 / 70 / 65",
          "cost": "",
          "icon": "abilities/renekton/dominus.webp",
          "icon_sha256": "323000687c70203e8d92bc7df9e28984fd5f996043fb9ea66480c2a011593bd4"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWQRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10121.js",
          "snapshot": "sources/7f39ca21a84c1b874abac94fe2c7eb94e645efc73bb616b280648ead644477d2",
          "sha256": "7f39ca21a84c1b874abac94fe2c7eb94e645efc73bb616b280648ead644477d2",
          "retrieved_at": "2026-11-01T15:46:31.260252+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:29",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "怒之领域",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "霸主狂击",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "冷酷捕猎",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "横冲直撞",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "终极统治",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Rengar": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/rengar",
        "snapshot": "sources/60fd6a7b1c54b5457a33286f385cc255b7d2e1ce2aa16410dd8e4b28603f4be2",
        "sha256": "60fd6a7b1c54b5457a33286f385cc255b7d2e1ce2aa16410dd8e4b28603f4be2",
        "retrieved_at": "2026-11-01T15:46:06.478623+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Unseen Predator",
          "description": "If in brush of camouflaged, leaps to the target with his next attack. If Rengar's Ferocity is lower than 4 and he doesn't have any Ferocity gained from attacks during the attack, he gains 1 Ferocity . Bonetooth Necklace : Gain 4% - 20% Attack Damage for each unique champion takedown. Each enemy champion only provides this bonus once. - Gains 1 Ferocity upon casting a basic ability ( if casting Savagery , Rengar must hit a target with an empowered attack to gain this bonus). - Reaching 4 Ferocity empowers his next basic ability. Casting the empowered ability does not refresh the basic ability's cooldown. - Gains 30% - 50% Movement Speed (increases at level 1 / 6 / 11) for 1.5 seconds upon casting an empowered ability. All Ferocity is lost 8 seconds after leaving combat.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/rengar/unseen-predator.webp",
          "icon_sha256": "88bd66840beed937d908bc38b2739324d35af3db1f60916f71a46443effe19ad"
        },
        {
          "slot": "Q",
          "name": "Savagery",
          "description": "The next 2 attacks within 3 seconds gain 40% Attack Speed . The first attack is empowered to deal an additional 40 / 80 / 120 / 160 ( +5% / 10% / 15% / 20% AD ) physical damage and will Critically Strike. Rengar's Critical Rate also increases the damage of the first attack by 0% - 55% , reaching maximum bonus damage gaines this way at 100% Critical Rate . Ferocity : Gains 45% Attack Speed for 3 seconds instead. The first attack deals an additional 40 / 80 / 120 / 160 ( +40% AD ) physical damage instead. Deals 60% damage to turrets.",
          "cooldown": "Cooldown: 6 / 5 / 4 / 4",
          "cost": "",
          "icon": "abilities/rengar/savagery.webp",
          "icon_sha256": "b2f147bf9bf647e81bae5bf4ff444b0dfe2c9e761326e55e6f92ba045c102380"
        },
        {
          "slot": "W",
          "name": "Battle Roar",
          "description": "Roars, dealing 60 / 100 / 140 / 180 ( +80% AP ) magic damage , and healing for 60% of damage taken in the last 2 seconds. Ferocity: Deals 80 / 120 / 160 / 200 ( +80% AP ) magic damage instead. Also restores Health by 60% of damage taken in the last 2 seconds and removes all crowd control effects from himself. Damage from a monster restores Health by 100% of the damage taken instead.",
          "cooldown": "Cooldown: 16 / 14 / 12 / 10",
          "cost": "",
          "icon": "abilities/rengar/battle-roar.webp",
          "icon_sha256": "725a82ba179456ccd338859ab1d5d942b5c7ce76ffe0d48e3f1442aa17ce0baa"
        },
        {
          "slot": "E",
          "name": "Bola Strike",
          "description": "Throws a bola, dealing 70 / 130 / 190 / 250 ( +70% bonus AD ) physical damage and slowing the target struck by 30% / 50% / 70% / 90% for 1.75 seconds. The bola also reveals the surrounding area for 2 seconds. Ferocity : Deals 75 ( +70% bonus AD ) physical damage and roots the target for 1.75 seconds. Also reveals the target and surrounding area for 2 seconds. Bola Strike can be cast while Rengar is leaping.",
          "cooldown": "Cooldown: 10 / 10 / 10 / 10",
          "cost": "",
          "icon": "abilities/rengar/bola-strike.webp",
          "icon_sha256": "7c07b49c80ad27f4589b457c8791489a3d3f546323729902b409e0ddf77c8fa9"
        },
        {
          "slot": "R",
          "name": "Thrill of the Hunt",
          "description": "Gains 40% / 50% / 60% Movement Speed and reveals the nearest enemy champion for 12 / 14 / 16 seconds. Rengar becomes camouflaged after 1 second and can leap without being in brush. Leaping to an enemy champion shreds the target's armor by 16 / 24 / 32 for 4 seconds.",
          "cooldown": "Cooldown: 85 / 75 / 65",
          "cost": "",
          "icon": "abilities/rengar/thrill-of-the-hunt.webp",
          "icon_sha256": "45b8110f915c95c05d550f924adfa5a6ca150c9514e679df319c517916dced31"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWEQRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            2,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            3,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10006.js",
          "snapshot": "sources/92e643a37d0ad5d2d18aef551fdc8e1295aeff7a32d18fd8a3b11e8cd56ed773",
          "sha256": "92e643a37d0ad5d2d18aef551fdc8e1295aeff7a32d18fd8a3b11e8cd56ed773",
          "retrieved_at": "2026-11-01T15:46:31.279109+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:23",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "无形掠食者",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "残忍无情",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "战争咆哮",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "套索打击",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "狩猎律动",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Riven": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/riven",
        "snapshot": "sources/cdc6ef95c47f36a09abfa9962fb903e99024cf1ad5b4fab96fa2934cca73c612",
        "sha256": "cdc6ef95c47f36a09abfa9962fb903e99024cf1ad5b4fab96fa2934cca73c612",
        "retrieved_at": "2026-11-01T15:46:06.796248+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Runic Blade",
          "description": "Abilities charge Riven's blade up to 3 times. Attacks expend charges to deal 21 bonus physical damage ( 22% - 50% AD ) Bonus damage to monsters and structures is reduced to 65% .",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/riven/runic-blade.webp",
          "icon_sha256": "a2d865394657137a548739034fa2af6ecd13ebc193545269258716e8e8526958"
        },
        {
          "slot": "Q",
          "name": "Broken Wings",
          "description": "Slash in a direction up to 3 times. Each slash deals 30 / 55 / 80 / 105 ( +55% / 60% / 65% / 70% AD ) physical damage to nearby enemies. The third slash crosses terrain and knocks up nearby enemies for 0.5 seconds. Tap-casting prioritizes champions and large monsters within slash range. Deals 70% damage to monsters.",
          "cooldown": "Cooldown: 12 / 12 / 12 / 12",
          "cost": "",
          "icon": "abilities/riven/broken-wings.webp",
          "icon_sha256": "0912b5351e77b12db67fea3d9b3f4fcf2c2ba4b42e18ff6e901224ff4b0d9a92"
        },
        {
          "slot": "W",
          "name": "Ki Burst",
          "description": "Stun nearby enemies for 0.75 seconds, dealing 55 / 95 / 135 / 175 ( +100% AD ) physical damage .",
          "cooldown": "Cooldown: 9 / 8 / 8 / 7",
          "cost": "",
          "icon": "abilities/riven/ki-burst.webp",
          "icon_sha256": "f5433775afdfb4c84582ae19c76964789215a586e64c316f94a36b74588e3d3f"
        },
        {
          "slot": "E",
          "name": "Valor",
          "description": "Dash in a direction and gain a shield absorbing 85 / 120 / 155 / 190 ( +90% AD ) damage for 2 seconds. Valor cannot cross terrain.",
          "cooldown": "Cooldown: 9 / 8 / 7 / 6",
          "cost": "",
          "icon": "abilities/riven/valor.webp",
          "icon_sha256": "e8cc0c2ec8456eb61abb8be6292eada53e26fe0c50877fdc90decc78a88c875b"
        },
        {
          "slot": "R",
          "name": "Blade of the Exile",
          "description": "Expand Riven's blade for 12 seconds, granting 25% bonus Attack Damage , increasing the range of her attacks and damaging abilities, and granting a single cast of Wind Slash . Wind Slash : Launches a shockwave, dealing 100 / 150 / 200 ( +60% AD ) to 300 / 450 / 600 ( +180% AD ) physical damage based upon enemies' missing health. During Blade of the Exile, every takedown of a target resets the number of Wind Slash casts she has and extends this ability's duration for 3 seconds more, up to 12 seconds.",
          "cooldown": "Cooldown: 75 / 60 / 45",
          "cost": "",
          "icon": "abilities/riven/blade-of-the-exile.webp",
          "icon_sha256": "247829af74bc0f2d518c38a9cd58761b0b35f4de8ca35434f51b91474cecac26"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWQRQQEREEWRWW"
        },
        {
          "label": "Source plan 2",
          "choices": "QWEQRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ],
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ],
          [
            2,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ],
          [
            3,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ],
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10092.js",
          "snapshot": "sources/c992515a5578c661a99ca24b42b7bca286045a0a9cdd8f775495e0e19e4acee9",
          "sha256": "c992515a5578c661a99ca24b42b7bca286045a0a9cdd8f775495e0e19e4acee9",
          "retrieved_at": "2026-11-01T15:46:31.286202+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:28",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "符文之刃",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "折翼之舞",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "震魂怒吼",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "勇往直前",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "放逐之锋",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Rumble": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/rumble",
        "snapshot": "sources/be48d35016bbc3a9a15471d6c21b5d772e0cceee4ad91edd006ab15480bb51b8",
        "sha256": "be48d35016bbc3a9a15471d6c21b5d772e0cceee4ad91edd006ab15480bb51b8",
        "retrieved_at": "2026-11-01T15:46:07.702537+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Junkyard Titan",
          "description": "Every ability Rumble casts generates Heat . While above 50 Heat , Rumble enters the Danger Zone , causing his basic abilities to gain bonus effects. When he reaches 150 Heat , he becomes Overheated for 4 seconds. Overheated : Silences himself, but gains 55% bonus Attack Speed and empowers his attacks to deal additional 5 ( +20% AP ) magic damage plus 5% of the marget's max Health . Percent damage is limited to 65 - 150 on monsters.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/rumble/junkyard-titan.webp",
          "icon_sha256": "8a33d6d577a64ac990a6701e2774c40b556a677dcd93d5d2549c5a5b6a714e6f"
        },
        {
          "slot": "Q",
          "name": "Flamespitter",
          "description": "Ignites his flamethrower, dealing 100 / 140 / 180 / 220 ( +125% AP ) plus 7% / 8% / 9% / 10% of the target's max Health as magic damage over 3 seconds. The flamethrower deals 105% of this damage against minions. Danger Zone : Deals 150 / 210 / 270 / 330 ( +187.5% AP ) plus 10.5% / 12% / 13.5% / 15% of the target's max Health as magic damage instead. Percent damage is limited to 65 - 150 damage on monsters.",
          "cooldown": "Cooldown: 8 / 7 / 6 / 5",
          "cost": "",
          "icon": "abilities/rumble/flamespitter.webp",
          "icon_sha256": "0157af0f19201313600be44b02857549c3428f6a8f3aa94cfabdcbb1e827265f"
        },
        {
          "slot": "W",
          "name": "Scrap Shield",
          "description": "Tosses up a barrier, gaining a shield that absorbs 40 / 80 / 120 / 160 ( +4% of max Health +35% AP ) damage for 1.5 seconds and 20% / 25% / 30% / 35% Movement Speed for 1 second. Danger Zone : Gains 30% / 35% / 40% / 45% Movement Speed and a shield that absorbs 60 / 120 / 180 / 240 ( +6% of max Health +45% AP ) damage instead.",
          "cooldown": "Cooldown: 5 / 5 / 5 / 5",
          "cost": "",
          "icon": "abilities/rumble/scrap-shield.webp",
          "icon_sha256": "94d99c12afee2e7201896b4eaa769a7e15cffbc1b0216715f5cfb822bee6ac86"
        },
        {
          "slot": "E",
          "name": "Electro-Harpoon",
          "description": "Launches an electrified harpoon, dealing 60 / 90 / 120 / 150 ( +50% AP ) magic damage , slowing by 30% / 35% / 40% / 45% for 1.5 seconds, and reducing the enemy's Magic Resist by 8% / 12% / 16% / 20% for 4 seconds. Hitting an enemy who is already slowed by Electro Harpoon increases the slow to 45% / 52.5% / 60% / 67.5% and Magic Resist reduction to 12% / 18% / 24% / 30% . Danger Zone : The harpoon deals 90 / 135 / 180 / 225 ( +75% AP ) magic damage instead, and the slow and Magic Resist reduction are increased by 50% . Charge : Gains a charge every 6 seconds, storing up to 2 charges.",
          "cooldown": "Cooldown: 1 / 1 / 1 / 1",
          "cost": "",
          "icon": "abilities/rumble/electro-harpoon.webp",
          "icon_sha256": "2c42b89c9948e026628ff1d0cd20ca8fc2f6282f2f5e7abeab89773fb6e8c0b4"
        },
        {
          "slot": "R",
          "name": "The Equalizer",
          "description": "Launches a line of rockets that creates a burning trail on the ground on impact, dealing 700 / 1050 / 1400 ( +200% AP ) magic damage and slowing enemies in the trail by 45% over 5 seconds.",
          "cooldown": "Cooldown: 80 / 70 / 60",
          "cost": "",
          "icon": "abilities/rumble/the-equalizer.webp",
          "icon_sha256": "22b3c3aaa137c75bb15a365be3a437db4a848a303852e2efe01a34d25fe3e641"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWQRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10140.js",
          "snapshot": "sources/34af993a03ea00912273ab36531175d2f84a838bb522b6b1709e8d4b0fa50490",
          "sha256": "34af993a03ea00912273ab36531175d2f84a838bb522b6b1709e8d4b0fa50490",
          "retrieved_at": "2026-11-01T15:46:31.510169+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:30",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "机械重组",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "纵火盛宴",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "破碎护盾",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "电击鱼叉",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "恒温灼烧",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Ryze": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/ryze",
        "snapshot": "sources/860d20188c114f204df7962424b7adfc18c10256fd21e85bfb34640382a47122",
        "sha256": "860d20188c114f204df7962424b7adfc18c10256fd21e85bfb34640382a47122",
        "retrieved_at": "2026-11-01T15:46:08.100292+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Arcane Mastery",
          "description": "Gains 0% max Mana ( 10% AP ). Ryze's abilities deal additional damage based on his bonus Mana .",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/ryze/arcane-mastery.webp",
          "icon_sha256": "2a7d23960dcecc97e83d7261c0c8cc54eba647d3245ed8c2ce06f7172b39b7a7"
        },
        {
          "slot": "Q",
          "name": "Overload",
          "description": "Passive : Rune Prison and Spell Flux refresh overload's cooldown and charge a rune for 4 seconds (max 2 runes). Magic Blast (Active) : Unleashes a blast, dealing 70 / 95 / 120 / 145 ( + 45% AP + 2% bonus Mana ) magic damage to the first enemy hit. If the target has Flux on them, it is consumed, causing Overload to deal 25% increased damage and bounce to nearby enemies with Flux. Runic Haste (Active) : When two runes are charged, Ryze discharges them, granting himself 20% / 27.5% / 35% / 42.5% bonus Movement Speed for 2 seconds. Deals 40% damage to monsters.",
          "cooldown": "Cooldown: 5 / 5 / 5 / 5",
          "cost": "Cost: 35 / 33 / 31 / 29",
          "icon": "abilities/ryze/overload.webp",
          "icon_sha256": "01e289d530ab0da1b044ab6f0e407910d659320065c8c3dc628e0232e1105fd5"
        },
        {
          "slot": "W",
          "name": "Rune Prison",
          "description": "Deals 50 / 90 / 130 / 170 ( + 55% AP + 3% bonus Mana ) magic damage and slows by 50% for 1.5 seconds. If the target has Flux, it is consumed, and Rune Prison roots instead of slowing.",
          "cooldown": "Cooldown: 10 / 9 / 8 / 7",
          "cost": "Cost: 35 / 50 / 65 / 80",
          "icon": "abilities/ryze/rune-prison.webp",
          "icon_sha256": "9ebb708b4910c2eaaca35ae39d2db2709f049b8908012d96b6984735ed625b2a"
        },
        {
          "slot": "E",
          "name": "Spell Flux",
          "description": "Fires and orb, dealing 80 / 110 / 140 / 170 ( + 40% AP + 2% bonus Mana ) magic damage and applying Flux for 4 seconds to the target and nearby enemies. If the enemy is already afflicted with Flux, its duration is refreshed, and it spreads further to enemies nearby.",
          "cooldown": "Cooldown: 3 / 3 / 3 / 2",
          "cost": "Cost: 30 / 40 / 50 / 60",
          "icon": "abilities/ryze/spell-flux.webp",
          "icon_sha256": "040622d659519db98feb6a4fcb503c2f0df4c65b8e019a1a858ed9dfc962fb32"
        },
        {
          "slot": "R",
          "name": "Realm Warp",
          "description": "Passive : Increased Overload's damage bonus against targets with Flux to 50% / 75% / 100% . Active : Opens a portal to a target location. After 2 seconds, allied champions and minions near the portal are teleported to the location, and they gain 35% Movement Speed for 2 seconds. Ryze's basic ability cooldowns are reset after the teleport. If Ryze becomes immobilized or crown controlled by disables such as knock up, knock back, or stun, the portal is canceled.",
          "cooldown": "Cooldown: 110 / 95 / 80",
          "cost": "Cost: 90 / 90 / 90",
          "icon": "abilities/ryze/realm-warp.webp",
          "icon_sha256": "b1179df7fecda348f0e4b3acf9183350b3c9243501a545bd27ac9750e1f79f2c"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "EQWQRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            2,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            1,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10137.js",
          "snapshot": "sources/cac39ee6d86739e311cf9316ee46de07654aab53251638c97b9a56c7d3f9b306",
          "sha256": "cac39ee6d86739e311cf9316ee46de07654aab53251638c97b9a56c7d3f9b306",
          "retrieved_at": "2026-11-01T15:46:31.508912+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:30",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "奥术专精",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "超负荷",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "符文禁锢",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "法术涌动",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "曲境折跃",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Samira": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/samira",
        "snapshot": "sources/b1f4c9d0f94eba65c9bd7fd5a3a47035b1d76d40f6a407ecf05f7b1d48c6e63f",
        "sha256": "b1f4c9d0f94eba65c9bd7fd5a3a47035b1d76d40f6a407ecf05f7b1d48c6e63f",
        "retrieved_at": "2026-11-01T15:46:08.188347+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Daredevil Impulse",
          "description": "Samira builds a combo by dealing damage with attacks or abilities against enemy champions unique from the previous one. Each one increases her Style from \"E\" to \"S\" . Each style grants 3% / 3.25% / 3.5% / 3.75% / 4% (based on level) bonus Movement Speed .",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/samira/daredevil-impulse.webp",
          "icon_sha256": "d08140823bf1a2b677b215a775e3b2aa65b5a0fc8ec10367a23dc0e39f5cea0e"
        },
        {
          "slot": "Q",
          "name": "Flair",
          "description": "Samira fires a shot, dealing 15 / 20 / 25 / 30 ( +115% AD ) physical damage to the first enemy hit. If this ability is cast towards an enemy in melee range, Samira will slash with her blade in a cone instead, dealing the same damage to all enemies within. Either hit can critically strike for 150% - 165% bonus damage. If cast during Wild Rush Samira will strike all enemies in her path upon completion.",
          "cooldown": "Cooldown: 7 / 5 / 4 / 2",
          "cost": "Cost: 30 / 30 / 30 / 30",
          "icon": "abilities/samira/flair.webp",
          "icon_sha256": "96e10a4bfc485022fecc0cc4e053f8211f31c8632eba860f2f06f8d8b9deabec"
        },
        {
          "slot": "W",
          "name": "Blade Whirl",
          "description": "Samira slashes around her 0.75 seconds, damaging enemies twice for 20 / 40 / 60 / 80 ( +50% AD ) physical damage each and destroying enemy missiles that enter the area.",
          "cooldown": "Cooldown: 22 / 20 / 18 / 16",
          "cost": "Cost: 60 / 60 / 60 / 60",
          "icon": "abilities/samira/blade-whirl.webp",
          "icon_sha256": "f9edc2e7defc528b655c1249c9b55bb89f9d384047c58bec68050f95497fc842"
        },
        {
          "slot": "E",
          "name": "Wild Rush",
          "description": "Samira dashes through an enemy (including structures) slashing enemies she passes through, dealing 45 / 60 / 75 / 90 ( +20% AD ) magic damage and gaining 25% / 30% / 35% / 40% attack speed for 3 seconds. If Samira scores a takedown, Wild Rush's cooldown is reset. Tapping this ability mid-dash will cast Flair.",
          "cooldown": "Cooldown: 20 / 17 / 14 / 11",
          "cost": "Cost: 40 / 40 / 40 / 40",
          "icon": "abilities/samira/wild-rush.webp",
          "icon_sha256": "b96917a45a96d01737123fe03e368cdec6df9e023b20f5ed609120151f503ba3"
        },
        {
          "slot": "R",
          "name": "Inferno Trigger",
          "description": "Samira can only use this ability if her current Style rating is \"S\" . Samira unleashes a torrent of shots from her weapons, reducing her Movement Speed by 30% while wildly shooting up to 5 enemies around her 10 times over 2.23 seconds, each shot dealing 20 / 40 / 60 ( + 45% AD ) physical damage . Each shot can critically strike. Inferno Trigger's damage can trigger 66.7% Life Steal. Deals 25% damage to minions.",
          "cooldown": "Cooldown: 6 / 6 / 6",
          "cost": "",
          "icon": "abilities/samira/inferno-trigger.webp",
          "icon_sha256": "148bb31ef54f03d99fc3f4fb43765d9d7cb22884e658d0cca9070beed6a30b57"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWQRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10104.js",
          "snapshot": "sources/f3675f7d86f50e3aa7170198f59f70fd55941a4cbb8e2ec5ab187cf6a08c5e24",
          "sha256": "f3675f7d86f50e3aa7170198f59f70fd55941a4cbb8e2ec5ab187cf6a08c5e24",
          "retrieved_at": "2026-11-01T15:46:31.510822+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:29",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "悍勇本色",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "交火",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "锋旋",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "狂飙",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "炼狱扳机",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Senna": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/senna",
        "snapshot": "sources/24f374a2872a025f818024d546ced017c11f1b54ee1343adadb21f5c3866667b",
        "sha256": "24f374a2872a025f818024d546ced017c11f1b54ee1343adadb21f5c3866667b",
        "retrieved_at": "2026-11-01T15:46:07.664253+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Absolution",
          "description": "Senna can absorb Mist by attacking souls that spawn from dead enemies. She can also siphon Mist from enemy champions she hits twice within 4 seconds, dealing 1% - 10% of their current health as bonus physical damage (6 second cooldown per target). If not attacked, souls nearby Senna will be absorbed automatically on disappearance. Basic attacks deal 80% of normal critical strike damage when they critical strike. Each stack of Mist grants 0.9 Attack Damage . Every 20 stacks of Mist grant 15 Attack Range and 10% Critical Chance.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/senna/absolution.webp",
          "icon_sha256": "ae355dfdb1a565366d6100576349152ecb2ce1c0c8bcaaa5dbbbf372e317f1e1"
        },
        {
          "slot": "Q",
          "name": "Piercing Darkness",
          "description": "Shoots a bolt of piercing shadow through any object, dealing 30 / 60 / 90 / 120 ( +60% AD ) physical damage to enemies, slowing enemies by 15% ( +0.1 AD +0.06 AP ) for 0.75 / 1 / 1.25 / 1.5 seconds and restoring 40 / 70 / 100 / 130 ( +40% AD +25% AP ) Health to ally champions. Attacks reduces Piercing Darkness's cooldown by 1 seconds. This Ability's cast range matches Senna's attack range and its cast time is improved with Attack Speed. It applies on-hit effects to enemy champions.",
          "cooldown": "Cooldown: 15 / 15 / 15 / 15",
          "cost": "Cost: 70 / 80 / 90 / 100",
          "icon": "abilities/senna/piercing-darkness.webp",
          "icon_sha256": "ed7cafdfb28552f4563b158c851682e0737f0a25f76fd9a156971b0a6bfe12b3"
        },
        {
          "slot": "W",
          "name": "Last Embrace",
          "description": "Sends forth a wave of Black Mist, dealing 90 / 155 / 220 / 285 ( +70% AD ) physical damage to the first enemy hit. After 1 second delay the target and other nearby enemies are Rooted for 1.3 / 1.6 / 1.9 / 2.2 seconds.",
          "cooldown": "Cooldown: 11 / 11 / 11 / 11",
          "cost": "Cost: 55 / 60 / 65 / 70",
          "icon": "abilities/senna/last-embrace.webp",
          "icon_sha256": "f598a492bc3824436e3885444bea7b8b96bd0a10f016bbcf877f149731964161"
        },
        {
          "slot": "E",
          "name": "Curse of the Black Mist",
          "description": "Dissolves into a cloud of mist for a few seconds, becoming a Wraith . Allied champions who enters the mist are Camouflaged and become Wraiths when they leave. Wraiths gain 20% Movement Speed , are Unselectable, and hide their identities as long as no enemy champions are nearby. Camouflaged : These units are hidden from view. They are revealed by nearby enemi champions, turrets, and True Sight.",
          "cooldown": "Cooldown: 22 / 20 / 18 / 16",
          "cost": "Cost: 70 / 70 / 70 / 70",
          "icon": "abilities/senna/curse-of-the-black-mist.webp",
          "icon_sha256": "acd8d5381a20f98a7757426847aa778df065b2dcd5e3ebb8880cf176e09cd519"
        },
        {
          "slot": "R",
          "name": "Dawning Shadow",
          "description": "Fires a global wave that shields ally champions from 120 / 160 / 200 ( +50% AP + 2 per Mist) damage for 3 seconds, while dealing 250 / 400 / 550 ( +120% bonus AD +70% AP ) physical damage and applies Mist to enemy champions caught in the center.",
          "cooldown": "Cooldown: 85 / 80 / 75",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/senna/dawning-shadow.webp",
          "icon_sha256": "05eeb7090ffd4cdd5d0ca77dd8c963594e2aad726b80d9f54d87fbc1917d1e49"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWEQRQQWRWWEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10123.js",
          "snapshot": "sources/8375bc7a21fec4d3a343323ec2e303d8303d1af51f9e335e57fc489fea718a09",
          "sha256": "8375bc7a21fec4d3a343323ec2e303d8303d1af51f9e335e57fc489fea718a09",
          "retrieved_at": "2026-11-01T15:46:31.510496+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:29",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "赦除",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "黑暗洞灭",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "无尽厮守",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "黑雾咒附",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "暗影燎原",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Seraphine": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/seraphine",
        "snapshot": "sources/44119b7aa4695668c7713a6cf0ea82ca24e4d0ed01967cf7d34c18783d3afc67",
        "sha256": "44119b7aa4695668c7713a6cf0ea82ca24e4d0ed01967cf7d34c18783d3afc67",
        "retrieved_at": "2026-11-01T15:46:07.729347+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Stage Presence",
          "description": "Echo : Every third basic ability cast will echo, casting it again. Harmony : Casting an ability grants a Note to nearby allies for 5 seconds. For each Note, Seraphine's next attack gains 30Attack Range and deals an additional 4 ( +40% AP ) magic damage .",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/seraphine/stage-presence.webp",
          "icon_sha256": "cb8b6af91ebce7befa76c8d36a26d2a91ab6af4429591e091259543633d02c95"
        },
        {
          "slot": "Q",
          "name": "High Note",
          "description": "Deals 60 / 75 / 90 / 105 ( +45% AP ) magic damage in target area, increased by 0% - 50% based on the enemies' missing Health. Reaches maximum damage when the target is below 25% Health.",
          "cooldown": "Cooldown: 11 / 9 / 7 / 5",
          "cost": "Cost: 60 / 65 / 70 / 75",
          "icon": "abilities/seraphine/high-note.webp",
          "icon_sha256": "dc6cc6a583057041c0f5cdf6648758bd4d2e11438c3e3918863af3187b89c174"
        },
        {
          "slot": "W",
          "name": "Surround Sound",
          "description": "Shields all nearby ally champions for 50 / 75 / 100 / 125 ( +30% AP ) damage for 2.5 seconds and grants them 20% / 22.5% / 25% / 27.5% Movement Speed for 2.5 seconds. If Seraphine is already shielded, nearby allies are healed for 6 % of their missing Health ( +0.01% AP ), increased by 50% for each ally.",
          "cooldown": "Cooldown: 23 / 22 / 21 / 20",
          "cost": "Cost: 40 / 60 / 80 / 100",
          "icon": "abilities/seraphine/surround-sound.webp",
          "icon_sha256": "ebd7bd270d181261c84e4d7ebc09905dca66624b42ca5448caacb56a8cd9c023"
        },
        {
          "slot": "E",
          "name": "Beat Drop",
          "description": "Deals 60 / 95 / 130 / 165 ( +40% AP ) magic damage to enemies and slows them by 99% for 1 second. If the enemy is already slowed, they are rooted instead. If they are rooted, they are stunned.",
          "cooldown": "Cooldown: 12 / 11 / 10 / 9",
          "cost": "Cost: 60 / 70 / 80 / 90",
          "icon": "abilities/seraphine/beat-drop.webp",
          "icon_sha256": "75634c4f512887d1c6c4840f07def0338ec2c6bcd24d84d0461eedf85593dd1c"
        },
        {
          "slot": "R",
          "name": "Encore",
          "description": "Deals 150 / 250 / 350 ( +70% AP ) magic damage to enemies and charms and slows them by 40% for 1.25 / 1.5 / 1.75 seconds. Ability extends when it touches an ally or enemy champion.",
          "cooldown": "Cooldown: 105 / 90 / 75",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/seraphine/encore.webp",
          "icon_sha256": "35b42a1744fe0bce5f9134f55d94e8b3f42a99598ce0cfe9216ea61461705c5e"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWQRQQWRWWEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            2,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10034.js",
          "snapshot": "sources/b40da5cddb388ee08794cd04602599aa50308bb75f67dbb29befd32074acbe0e",
          "sha256": "b40da5cddb388ee08794cd04602599aa50308bb75f67dbb29befd32074acbe0e",
          "retrieved_at": "2026-11-01T15:46:31.528824+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:25",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "星光漫射",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "清籁穿云",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "聚和心声",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "增幅节拍",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "炫音返场",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Sett": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/sett",
        "snapshot": "sources/c59aacfeff9816aa573f920aa93fcd5d9d1d4e420af74a953dccc58abcf225a8",
        "sha256": "c59aacfeff9816aa573f920aa93fcd5d9d1d4e420af74a953dccc58abcf225a8",
        "retrieved_at": "2026-11-01T15:46:07.735488+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Pit Grit",
          "description": "Sett's Attacks alternate between left and right punches. Right punches follow the left quickly and deal an additional 9 ( x champion level +50% AD ) physical damage . Sett gains 0.25 bonus Health Regeneration for each 5% missing Health. Sett will reset back to a left punch if he does not do a right punch within 2 seconds of doing a left punch. The Attack Speed of a right punch is 8 times that of a left punch.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/sett/pit-grit.webp",
          "icon_sha256": "9290c8833fe72c00dab4597191db6f8be41c110bc65dc9c8469cb21063952f78"
        },
        {
          "slot": "Q",
          "name": "Knuckle Down",
          "description": "Sett itches for a fight, gaining 35% Movement Speed towards enemy champions for 1.5 seconds. Additionally empowers the next two attacks to deal an additional 5 /20 / 35 50 + 1% ( +0.01% / 0.015% / 0.02% / 0.025% AD ) max health physical damage . The additional damage is capped at 100 against monsters.",
          "cooldown": "Cooldown: 10 / 8 / 7 / 5",
          "cost": "",
          "icon": "abilities/sett/knuckle-down.webp",
          "icon_sha256": "eeb285bcab7fbe102535e60859bcc506522dacc73598a4fd164f9b7c29305251"
        },
        {
          "slot": "W",
          "name": "Haymaker",
          "description": "Passive : Stores 100% of damage taken as Grit , up to 305 ( 50% maximum HP ). Grit decays quickly 4 seconds after the damage was taken. Active : Consumes all Grit , gaining a 100% Grit consumed shield decaying over 3 seconds. Sett then delivers a massive punch, dealing 80 / 105 / 130 / 155 + 25% ( +0.275% AD ) Grit consumed true damage to enemies in the center. Enemies not in the center instead take physical damage .",
          "cooldown": "Cooldown: 16 / 15 / 13 / 12",
          "cost": "",
          "icon": "abilities/sett/haymaker.webp",
          "icon_sha256": "6c8b60f5cf1fb1683a95f4af4ad2003a164f7d03afe8ab54e61a9d2059d8b0ff"
        },
        {
          "slot": "E",
          "name": "Facebreaker",
          "description": "Smashes enemies on either side into each other, dealing 50 / 75 / 100 / 125 ( +60% AD ) physical damage and slowing them by 50% for 0.5 seconds. If Sett grabbed at least one enemy on each side, all enemies are stunned for 1 second.",
          "cooldown": "Cooldown: 13 / 12 / 10 / 9",
          "cost": "",
          "icon": "abilities/sett/facebreaker.webp",
          "icon_sha256": "bb7576d5487763186b2e9e62129daa1de4f2e5379dafc28ad1203812b8a92c50"
        },
        {
          "slot": "R",
          "name": "The Show Stopper",
          "description": "Grabs an enemy champion and suppresses them as he carries them forward, then slams them into the ground, dealing 200 / 300 / 400 ( +100% AD ) + 35% / 45% / 55% bonus Health physical damage to surrounding enemies and Slowing them by 99% for 1 second. Enemies take less damage the further they are from where Sett lands.",
          "cooldown": "Cooldown: 70 / 65 / 60",
          "cost": "",
          "icon": "abilities/sett/the-show-stopper.webp",
          "icon_sha256": "41abc2879052391b3fc56ee6b91897e2d9650276cd520c4785a36d3f9efe3e86"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "WEQQRQQWRWWEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            3,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            1,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            2,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10068.js",
          "snapshot": "sources/995699253349d2ca4fd8bbf545784376c4893906eb13745bacf1a42c90c4cdfd",
          "sha256": "995699253349d2ca4fd8bbf545784376c4893906eb13745bacf1a42c90c4cdfd",
          "retrieved_at": "2026-11-01T15:46:31.538238+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:27",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "沙场豪情",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "屈人之威",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "蓄意轰拳",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "强手裂颅",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "叹为观止",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Shen": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/shen",
        "snapshot": "sources/e9a72c5ebac99e244fc454ba22296fcf73fa9e4c701c0ce0e3fec8dcaf72205b",
        "sha256": "e9a72c5ebac99e244fc454ba22296fcf73fa9e4c701c0ce0e3fec8dcaf72205b",
        "retrieved_at": "2026-11-01T15:46:07.983549+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Ki Barrier",
          "description": "Gains a shield that absorbs 51 ( +14% HP ) damage for 2.5 seconds after completing an ability. If the ability affected at least one champion, Ki Barrier's cooldown is reduced by 4 seconds. Gains 10 Energy when Shen's abbilties damage an enemy.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/shen/ki-barrier.webp",
          "icon_sha256": "237109e1def667784983fa86a4ab4e35b36884d4888a4849ec94fc05479e5487"
        },
        {
          "slot": "Q",
          "name": "Twilight Assault",
          "description": "Recalls the Spirit Blade , enhancing his next 3 attacks to deal an additional 12 + 3% / 3.5% / 4% / 4.5% (+1.5% AP ) of the target's max Health as magic damage . If the Spirit Blade passed through an enemy champion, the damage bonus is increased to 12 + 5.5% / 6% / 6.5% / 7% ( +2% AP ) of the target's max Health as magic damage and Shen gains 50% Attack Speed . Enemy champions the Spirit Blade passes through are slowed by 15% / 20% / 25% / 30% for 2 seconds while moving away from Shen. Deals 150% damage to minions.",
          "cooldown": "Cooldown: 8 / 7 / 6 / 5",
          "cost": "Cost: 75 / 70 / 65 / 60",
          "icon": "abilities/shen/twilight-assault.webp",
          "icon_sha256": "ff94824e918a9ed5de601d76d60c12e42be4a5deabb9dea3b8369257ef8c6c73"
        },
        {
          "slot": "W",
          "name": "Spirit's Refuge",
          "description": "Sends the Spirit Blade to an allied champion, creatng a zone that blocks enemy attacks for 1.75 seconds.",
          "cooldown": "Cooldown: 18 / 16 / 14 / 12",
          "cost": "Cost: 20 / 20 / 20 / 20",
          "icon": "abilities/shen/spirit-s-refuge.webp",
          "icon_sha256": "99c5eb8a37f85f0a13f2506afd1f11b4b67cabc23b716d800804dce829cf37c4"
        },
        {
          "slot": "E",
          "name": "Shadow Dash",
          "description": "Dashes forward, dealing 60 / 90 / 120 / 150 ( +15% HP ) physical damage to enemy champions and monsters, taunting them for 1.5 seconds.",
          "cooldown": "Cooldown: 16 / 14 / 12 / 10",
          "cost": "Cost: 75 / 75 / 75 / 75",
          "icon": "abilities/shen/shadow-dash.webp",
          "icon_sha256": "1bc5b63aac53f89741f2df8d0b67d30f7191958bd7b120603fdc1fbcf98d7ef6"
        },
        {
          "slot": "R",
          "name": "Stand United",
          "description": "Channels for 3 seconds, shielding an allied champion for 170 / 340 / 510 ( +135% AP +15% HP ) damage for 5 seconds, increased by 0% - 60% based on target's missing health. Upon completing the channel, Shen teleports to the target ally.",
          "cooldown": "Cooldown: 110 / 100 / 90",
          "cost": "",
          "icon": "abilities/shen/stand-united.webp",
          "icon_sha256": "689c081d6af85ca73f93711ca0b89410fb9ff715b981d9a5fa6001e9bda26566"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWQRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10118.js",
          "snapshot": "sources/174a907f7f5ee6aae619cc06b1d677799d7b137d7f6804f9d2adf0ae5a60a212",
          "sha256": "174a907f7f5ee6aae619cc06b1d677799d7b137d7f6804f9d2adf0ae5a60a212",
          "retrieved_at": "2026-11-01T15:46:31.764069+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:29",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "忍法！气合盾",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "奥义！暮临",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "奥义！魂佑",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "奥义！影缚",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "秘奥义！慈悲度魂落",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Shyvana": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/shyvana",
        "snapshot": "sources/b0701ae1d4f96562d24dc5a18c715180e4dd14c7325e0cb32fe72ea5c96877c7",
        "sha256": "b0701ae1d4f96562d24dc5a18c715180e4dd14c7325e0cb32fe72ea5c96877c7",
        "retrieved_at": "2026-11-01T15:46:08.070090+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Draconic Bloodline",
          "description": "Slaying a Large Monster grants 8 stacks of Draconic Bloodline . Champion takedowns or slaying the Rift Herald or Baron Nashor grants 15 stacks of Draconic Bloodline . Slaying a Dragon grants 35 Draconic Bloodline . Every 100 stacks of Draconic Bloodline enhances one of Shyvana's abilities.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/shyvana/draconic-bloodline.webp",
          "icon_sha256": "494a03644c7cf4186fb5cdf8045a9ac4dd1cc563e23b7c2dd52b3f03dc6bdfc7"
        },
        {
          "slot": "Q",
          "name": "Twin Bite",
          "description": "Empowers Shyvana's next attack to strike twice, dealing 58 ( 100% AD ) and 12 ( 20% / 40% / 60% / 80% AD ) physical damage respectively. Attacks reduce the cooldown of Twin Bite by 0.5 seconds. Dragon Form : Strikes in a larger area and applies on-hits to all enemies. Acquiring 100 stacks of Draconic Bloodline , grants Weight of the Mountain, causing Twin Bite to slow enemies hit by 30% while in Dragon Form .",
          "cooldown": "Cooldown: 7 / 7 / 6 / 6",
          "cost": "",
          "icon": "abilities/shyvana/twin-bite.webp",
          "icon_sha256": "ae7d58a53e1a240101a99ca470966365c7b41cb774dfbc443591cbaa1cb96909"
        },
        {
          "slot": "W",
          "name": "Burnout",
          "description": "Deals 35 / 50 / 65 / 80 ( +30% bonus AD ) magic damage per second to nearby enemies and hastes Shyvana by 30% / 35% / 40% / 45% decaying over 3 seconds. Attacking extends the duration of Burnout up to 4 seconds. Dragon Form : Expands the flames, dealing damage to a larger area. Acquiring 200 stacks of Draconic Bloodline , grants Wings of the Cloud, causing Burnout to haste Shyvana by an additional 15% while in Dragon Form .",
          "cooldown": "Cooldown: 12 / 11 / 10 / 9",
          "cost": "",
          "icon": "abilities/shyvana/burnout.webp",
          "icon_sha256": "5c80f44613a3356eed6a67dcb91816e9180d2d9501ac4c7aa071a2ca62f7f1b5"
        },
        {
          "slot": "E",
          "name": "Flame Breath",
          "description": "Launches a fireball that deals 60 / 110 / 160 / 210 ( +50% AD +80% AP ) magic damage to enemies hit and Scorches them for 5 seconds. Shyvana's attacks on Scorched enemies deal 3% bonus magic damage of their max Health. Dragon Form : The fireball explodes on impact, dealing 110 ( +100% AD +100% AP ) magic damage in an area that leaves a fire for 4 seconds that deals 28 ( +10% AD +20% AP ) magic damage and Scorches enemies within it. Acquiring 300 stacks of Draconic Bloodline , grants Breath of the Infernal, converting the damage dealt to Scorched enemies to True Damage while in Dragon Form .",
          "cooldown": "Cooldown: 10 / 9 / 8 / 7",
          "cost": "",
          "icon": "abilities/shyvana/flame-breath.webp",
          "icon_sha256": "81f8a98e7ae9cf9c90dfd192d551ca899be58d8ed839abfe4ca3812f04c856e6"
        },
        {
          "slot": "R",
          "name": "Dragon's Descent",
          "description": "Passive : Generates 1 / 1.5 / 2 Fury per second and 2 Fury per attack. At 100 Fury , Shyvana can cast Dragon's Descent , Svhyvana remains in Dragon from until she has consumed all of her Fury . Active : Transforms into a dragon, gaining 350 / 475 / 600 Health and flying to a target location. Enemies along Shyvana's path take 150 / 250 / 350 ( +80% AP ) magic damage and are knocked towards her landing point. Acquiring 400 stacks of Draconic Bloodline , grants Life of the Ocean, gaining 10% Omnivamp in Dragon Form .",
          "cooldown": "Cooldown: 1 / 1 / 1",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/shyvana/dragon-s-descent.webp",
          "icon_sha256": "ea9cab6afc29bc69f0ffe5739f1ac9ed4a151ae16e6e0acae10b1840bce972c6"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "EWQEREEWRWWQRQQ"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "W": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [
        "Empowered or transformed versions use the same upgrade slot as the base ability; no extra form-specific points are allocated."
      ],
      "combat_sync": {
        "mapped_controls": [
          {
            "control_key": "dragons_descent_rank",
            "slot": "R",
            "rank_basis": "learned",
            "ability": "Dragon's Descent",
            "engine_semantics": "shyvana_dragon_form bonus HP",
            "initial_rank": 0,
            "source": "champion.source (exact slot/name); canonical champion_mechanics.json rule identity",
            "engine_evidence": "game_rules.py rank consumers and champion_mechanics.json explicit rule parameters"
          },
          {
            "control_key": "twin_bite_rank",
            "slot": "Q",
            "rank_basis": "learned",
            "ability": "Twin Bite",
            "engine_semantics": "shyvana_twin_bite human/dragon additional strikes share Q rank",
            "initial_rank": 0,
            "source": "champion.source (exact slot/name); canonical champion_mechanics.json rule identity",
            "engine_evidence": "game_rules.py rank consumers and champion_mechanics.json explicit rule parameters"
          }
        ],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10049.js",
          "snapshot": "sources/19059428d38af12970e4435961c4af2e603b04f5a403f25c91e34da660a8097b",
          "sha256": "19059428d38af12970e4435961c4af2e603b04f5a403f25c91e34da660a8097b",
          "retrieved_at": "2026-11-01T15:46:31.764922+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:26",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "龙血之力",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "龙牙突刺",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "烈火燎原",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "烈焰吐息",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "魔龙降世",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Singed": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/singed",
        "snapshot": "sources/e29c52c8a91270fa418dd13961ec67851481b7265731e4a7abc59f998b861daf",
        "sha256": "e29c52c8a91270fa418dd13961ec67851481b7265731e4a7abc59f998b861daf",
        "retrieved_at": "2026-11-01T15:46:08.159531+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Noxious Slipstream",
          "description": "Draft off of nearby champions, gaining 20% bonus Movement Speed for 2 seconds. Each champion has a 10 second cooldown.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/singed/noxious-slipstream.webp",
          "icon_sha256": "f332a416345fdf4e0b9c87b827c08798b09a1e295edb1625569975b88fc724f8"
        },
        {
          "slot": "Q",
          "name": "Poison Trail",
          "description": "Toggle : Lay a poisonous trail that deals 20 / 28 / 36 / 44 ( +30% AP ) magic damage per second.",
          "cooldown": "Cooldown: 1 / 1 / 1 / 1",
          "cost": "Cost: 12 / 12 / 12 / 12",
          "icon": "abilities/singed/poison-trail.webp",
          "icon_sha256": "502759b8893c2d1c7036461ed9716d868c4507caf7d0a2f123874052c08f564d"
        },
        {
          "slot": "W",
          "name": "Mega Adhesive",
          "description": "Tosses an adhesive that sticks to the ground for 3 seconds at the target area. The adhesive explodes on landing, dealing 50 / 70 / 90 / 100 ( +25% AP ) magic damage and slowing by 35% / 40% / 45% / 50% . Enemies in the area are also grounded and cannot use movement abilities. If the target is flung into the adhesive, they are also rooted.",
          "cooldown": "Cooldown: 14 / 13 / 12 / 11",
          "cost": "Cost: 60 / 70 / 80 / 90",
          "icon": "abilities/singed/mega-adhesive.webp",
          "icon_sha256": "7838908084530291959dcf13bdd3730f98b51031984b286cc2eabbb9f5cf85be"
        },
        {
          "slot": "E",
          "name": "Fling",
          "description": "Raises his shield and dashes toward the target, knocking aside enemies in his way. If he hits the target, he flings them behind him, dealing magic damage equal to 40 / 60 / 80 / 100 ( +50% AP ) plus 5% / 6% / 7% / 8% of the target's max Health. If the target is flung into Mega Adhesive, they are also rooted for 1.25 / 1.5 / 1.75 / 2 seconds. Deals a maximum of 500 damage against non-champions.",
          "cooldown": "Cooldown: 13 / 13 / 13 / 13",
          "cost": "Cost: 80 / 95 / 110 / 125",
          "icon": "abilities/singed/fling.webp",
          "icon_sha256": "863bf62015dcf2b5bc7a6c4b9bf85bb9b1199f29cd4a2ec6761e8edc577b6489"
        },
        {
          "slot": "R",
          "name": "Insanity Potion",
          "description": "Drinks a potent brew of chemicals, gaining buffs and granting 30% of the buffs to the nearest allied champion for 20 seconds. - Increases AP , Magic Resist , Armor and Movement Speed by 30 / 55 / 80 . - Grants 15 / 20 / 25 Health Regen and Mana Regen . Magic damage dealt while the potion is active applies 40% Grievous Wounds for 1 second.",
          "cooldown": "Cooldown: 70 / 65 / 60",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/singed/insanity-potion.webp",
          "icon_sha256": "711ffd2817a0fde723732167c108d6510978aa721f64c5dd1c35813c221ec4b2"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWQRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10096.js",
          "snapshot": "sources/d93bfe2fd819366a89876807b00ce6556091be13c815aba197bfcb62a185738a",
          "sha256": "d93bfe2fd819366a89876807b00ce6556091be13c815aba197bfcb62a185738a",
          "retrieved_at": "2026-11-01T15:46:31.769219+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:28",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "剧毒冲流",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "剧毒踪迹",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "强力粘胶",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "过肩摔",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "疯狂药剂",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Sion": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/sion",
        "snapshot": "sources/0841c8bc2fa353c8e9d77919059f8a804ea5698212bb22a38156996aa9515652",
        "sha256": "0841c8bc2fa353c8e9d77919059f8a804ea5698212bb22a38156996aa9515652",
        "retrieved_at": "2026-11-01T15:46:08.208627+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Glory in Death",
          "description": "Sion permanently gains 5 bonus health whenever he kills a unit, increased to 20 against large units, and champion takedowns. Upon taking fatal damage, Sion will reanimate himself Fearing those around him for 1 second, while slowing their Movement Speed by 90% . After reanimating, Sion can move and Attack, but his health rapidly decays while he is reanimated. Sion reanimates with 100% health , attacks at 1.75 attacks per second, gains 100% Physical Vamp , his attacks deal an additional 10% max Health magic damage , capped at 75 bonus damage against monsters and deal 50% damage to structures. All of Sion's abilities are replaced with Death Surge, which grants him 67% Movement Speed decaying over 2.38 seconds.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/sion/glory-in-death.webp",
          "icon_sha256": "3e1b03c761d56f2571d61f5982efd715740c6730c01b45cf5d235ef9f3370e5b"
        },
        {
          "slot": "Q",
          "name": "Decimating Smash",
          "description": "Sion charges a heavy blow for up to 1.75 seconds. Recast : Sion slams his axe down, briefly Slowing enemies hit by 50% for 0.25 seconds and dealing between 50 / 75 / 100 / 125 ( +45% / 55% / 65% / 75% AD ) and 100 / 185 / 270 / 355 ( +135% / 165% / 195% / 225% AD ) physical damage based on charge time. If Sion charged for at least 0.75 seconds, enemies are Knocked Up and Stunned for between 1 and 2 seconds based on charge time. Minions take 60% damage, while Monsters take 120% damage.",
          "cooldown": "Cooldown: 9 / 8 / 7 / 6",
          "cost": "Cost: 45 / 45 / 45 / 45",
          "icon": "abilities/sion/decimating-smash.webp",
          "icon_sha256": "a5b131bc4d3b1e5df6d1cbf1935b2a78baa33e023312e289c91823d354b87e85"
        },
        {
          "slot": "W",
          "name": "Soul Furnace",
          "description": "Sion gains a shield that absorbs 75 / 100 /125 / 150 ( +40% AP +10% / 12% / 14% / 16% HP ) damage for 6 seconds. After 2 seconds if the shield still holds, Sion can Recast to detonate the shield to deal 60 / 90 /120 / 150 ( +40% AP ) + 10% / 11% / 12% / 13% of their Max Health to all nearby enemies. Bonus damage is capped at 400 against monsters. The shield will automatically detonate after 6 seconds.",
          "cooldown": "Cooldown: 14 / 13 / 12 / 11",
          "cost": "Cost: 65 / 65 / 65 / 65",
          "icon": "abilities/sion/soul-furnace.webp",
          "icon_sha256": "556183e16444e75516589ffc7b197e27c6f7b97b8dc48ca1ce4f2056d0b446a4"
        },
        {
          "slot": "E",
          "name": "Roar of the Slayer",
          "description": "Sion fires a shockwave, dealing 75 / 120 / 165 / 210 ( +55% AP ) magic damage and Slowing enemies hit by 50% / 55% / 60% / 65% for 2.5 seconds and removing 20% Armor for 4 seconds. Non-champions hit are Knocked Back . Enemies hit by a Knocked Back unit take the same damage and effects.",
          "cooldown": "Cooldown: 11 / 10 / 9 / 8",
          "cost": "Cost: 35 / 40 / 45 / 50",
          "icon": "abilities/sion/roar-of-the-slayer.webp",
          "icon_sha256": "13f6a8fc9203e7fc3097a6969782db75b1944f221442fe06a8cceb33d9361a4f"
        },
        {
          "slot": "R",
          "name": "Unstoppable Onslaught",
          "description": "Sion charges Unstoppably in a direction, turning with player input. Sion stops when colliding with an enemy champion, structure, terrain, or when recasting the ability. When this happens, Sion will slam the ground with earth shattering force, dealing between 150 / 300 / 450 ( +80% bonus AD ) and 400 / 800 / 1200 ( +80% bonus AD ) physical damage while Stunning and Knocking Up enemies for 0.5 - 1.5 seconds based on charge time. Deals 50% damage to structures.",
          "cooldown": "Cooldown: 90 / 70 / 50",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/sion/unstoppable-onslaught.webp",
          "icon_sha256": "5a44092b72d65f4aab50991bf3ce580ad88acf9ed03cc3dcab077ee53abb5fc4"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "WQEQRQQWRWWEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            2,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            1,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10125.js",
          "snapshot": "sources/e6a2081e9e58da31d04fb6951991a00002b3541ff21c113ac90fb4c70a856c9d",
          "sha256": "e6a2081e9e58da31d04fb6951991a00002b3541ff21c113ac90fb4c70a856c9d",
          "retrieved_at": "2026-11-01T15:46:31.764433+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:30",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "死亡荣耀",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "残虐猛击",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "灵魂熔炉",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "杀手怒吼",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "蛮横冲撞",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Sivir": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/sivir",
        "snapshot": "sources/356e2c9b4c3064599693480d31bd0143b9af3f0940125d0b90d0e8b3d3131d39",
        "sha256": "356e2c9b4c3064599693480d31bd0143b9af3f0940125d0b90d0e8b3d3131d39",
        "retrieved_at": "2026-11-01T15:46:08.286400+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Fleet of Foot",
          "description": "Gains 55 - 70 (based on level) Movement Speed for 1.5 seconds after dealing damage to an enemy champion with an attack or ability.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/sivir/fleet-of-foot.webp",
          "icon_sha256": "2fe2e555b68ba162b5908598827ab104b23002a0405a16ed0b81b8a0b3320b72"
        },
        {
          "slot": "Q",
          "name": "Boomerang Blade",
          "description": "Sivir hurls her crossblade, dealing 70 / 100 / 130 / 160 ( +70% bonus AD +60% AP ) physical damage to all enemies it cuts through. For every 1% Critical Rate , damage is increased by 0.5% . The higher the Attack Speed, the shorter the cast time. Deals 75% damage against non-champion enemies.",
          "cooldown": "Cooldown: 10 / 9 / 9 / 8",
          "cost": "Cost: 55 / 55 / 55 / 55",
          "icon": "abilities/sivir/boomerang-blade.webp",
          "icon_sha256": "bd3b007cc1534e84668f096d2a8ff9b5705e72c3c14d60e9c84a46f4745c8c9f"
        },
        {
          "slot": "W",
          "name": "Ricochet",
          "description": "Gains 25% / 30% / 35% / 40% Attack Speed for 4 seconds. Her attacks bounce to nearby enemies, dealing 37.5% / 40% / 42.5% / 45% Attack Damage . If the first attack critically strikes , so will the bounces. Deals 70% damage to minions. Each enemy can be hit by a maximum of 2 bounces.",
          "cooldown": "Cooldown: 12 / 12 / 12 / 12",
          "cost": "Cost: 60 / 60 / 60 / 60",
          "icon": "abilities/sivir/ricochet.webp",
          "icon_sha256": "1da5e6ac368a8236d2cd6851398a59222e840191f55580f07fc3240faaa06fb7"
        },
        {
          "slot": "E",
          "name": "Spell Shield",
          "description": "Gains a spell shield for 2 seconds. Heals herself for 38 ( 65% / 70% / 75% / 80% AD + 50% AP ) Health and gains Fleet of Foot when she blocks an ability. If the block fails, 50% of the ability's cooldown is refunded.",
          "cooldown": "Cooldown: 22 / 20 / 18 / 16",
          "cost": "",
          "icon": "abilities/sivir/spell-shield.webp",
          "icon_sha256": "1fccb87dcb5869552f8db27663a06b34d1235cdb5ad32ed13463f879f1d44aa7"
        },
        {
          "slot": "R",
          "name": "On The Hunt",
          "description": "Grants 15% / 20% / 25% bonus Movement Speed to nearby allied champions for 8 / 10 / 12 seconds. During this period, her basic ability cooldowns are reduced by 20% / 25% / 30% . Unyielding Valor : While the Hunt is active, gains 1 stack of Morale every time an attack or ability deals damage to an enemy champion, and 2 stacks of Morale after a champion takedown. Each stack of Morale grants 2 / 2.5 / 3 AD . At 8 stacks, grants an additional 15% / 20% / 25% bonus Movement Speed to nearby allied champions and refreshes On the Hunt's duration.",
          "cooldown": "Cooldown: 80 / 70 / 60",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/sivir/on-the-hunt.webp",
          "icon_sha256": "965c60759327c1b87dedadd6588c6515e89c6a8d51a9a8c59bc13ad484634928"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "WQEQRQQWRWWEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            2,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            1,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10107.js",
          "snapshot": "sources/c1e691c64483bca68ec6a57989cd74f322fabecaea1410bca1e111e3f0e3f263",
          "sha256": "c1e691c64483bca68ec6a57989cd74f322fabecaea1410bca1e111e3f0e3f263",
          "retrieved_at": "2026-11-01T15:46:31.773529+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:29",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "敏锐疾行",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "回旋之刃",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "弹射",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "法术护盾",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "狩猎",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Skarner": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/skarner",
        "snapshot": "sources/1a9cbbee17eb054b8981288330ea4feebf372119b906f09963cbb8f95c82f6cf",
        "sha256": "1a9cbbee17eb054b8981288330ea4feebf372119b906f09963cbb8f95c82f6cf",
        "retrieved_at": "2026-11-01T15:46:08.433925+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Threads of Vibration",
          "description": "Skarner's attacks, Shattered Earth , Upheaval , and Impale apply Quaking to targets for 4 seconds (max 3 stacks) . At 3 stacks of Quaking , enemies take 5% - 10% of their max Health as magic damage over its duration. Deals up to 100 - 450 damage against monsters.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/skarner/threads-of-vibration.webp",
          "icon_sha256": "e145ea5573b359732ddf3ef95558d7edbf70b30759dd208490d52cc320da2237"
        },
        {
          "slot": "Q",
          "name": "Shattered Earth",
          "description": "First Cast : Grabs a boulder, empowering his next 3 attacks to gain 25% / 30% / 35% / 40% Attack Speed and deal 15 / 30 / 45 / 60 ( +100% bonus AD +4% bonus Health ) physical damage to nearby enemies. The third attack deals an additional 11% of the target's max Health as physical damage and slows by 45% for 1 second. Recast (Upheaval) : Ends this ability and throws the boulder in a target direction. The boulder explodes on the first enemy hit, dealing 15 / 30 / 45 / 60 ( +100% bonus AD +4% bonus Health ) + 9% of the target's max Health as physical damage to them and nearby enemies and slowing them by 40% for 1 second. Percent Health damage to monsters from the first attack and Upheaval is capped at 200 / 250 / 300 / 350 ( +100% bonus AD +4% bonus Health ). The first two attacks deal 100% damage to structures. The third attack and Upheaval deal 200% damage to structures.",
          "cooldown": "Cooldown: 7 / 5 / 4 / 3",
          "cost": "Cost: 45 / 45 / 45 / 45",
          "icon": "abilities/skarner/shattered-earth.webp",
          "icon_sha256": "a5b7c4535d2070d6e45f64998289b7dc7b7546693b207f41fdd9a9ba0923d8ca"
        },
        {
          "slot": "W",
          "name": "Seismic Bastion",
          "description": "Immediately gains a shield that absorbs damage equal to 10% max Health for 2.5 seconds and triggers an earthquake that deals 50 / 70 / 90 / 110 ( +80% AP ) magic damage and slows nearby enemies by 25% for 1 second.",
          "cooldown": "Cooldown: 8 / 7 / 6 / 5",
          "cost": "Cost: 60 / 65 / 70 / 75",
          "icon": "abilities/skarner/seismic-bastion.webp",
          "icon_sha256": "bb224f5989302ed9b5610af4fc209f3ba7efa24f668c9f37f9c53c2ddea53bff"
        },
        {
          "slot": "E",
          "name": "Ixtal's Impact",
          "description": "First cast : charges in a target direction, ignoring terrain; If he runs into an enemy champion or large monster, he drags them along for the rest of his charge; Colliding into a wall with an enemy in tow deals 60 / 90 / 120 / 150 ( +120% bonus AD +6% max Health ) physical damage to the enemy and stuns them for 1.5 seconds. Recast : Ends his charge early. Colliding into a wall with an enemy in tow reduces Ixtal's Impact's cooldown by 35% .",
          "cooldown": "Cooldown: 18 / 16 / 14 / 12",
          "cost": "Cost: 50 / 55 / 60 / 65",
          "icon": "abilities/skarner/ixtal-s-impact.webp",
          "icon_sha256": "18786af7e67793329edff0e06e421c9024e9fa3c634763a18e8b593e39783458"
        },
        {
          "slot": "R",
          "name": "Impale",
          "description": "Lashes his tails forward, dealing 150 / 250 / 350 ( +100% AP ) magic damage and s uppressing the first 3 enemy champions he hits for 1.5 seconds. Champions hit are dragged along by Skarner for the duration of the suppression . If he hits at least one enemy champion: He gains 40% Movement Speed for 1.5 seconds; If Shattered Earth is active, he will cast Upheaval first.",
          "cooldown": "Cooldown: 80 / 70 / 60",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/skarner/impale.webp",
          "icon_sha256": "efb0f1bfac2e6c91a2ca3201bf966859ec0c2188c654757ad04163718ce2ea47"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWQERQQWRWWEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            3,
            6,
            7
          ]
        ],
        "W": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            4,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10117.js",
          "snapshot": "sources/f72a42d847b1e8caf22cac96c7e2de1395a6eab0cdc8db7c653c3aff6485936d",
          "sha256": "f72a42d847b1e8caf22cac96c7e2de1395a6eab0cdc8db7c653c3aff6485936d",
          "retrieved_at": "2026-11-01T15:46:31.796783+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:29",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "战栗",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "撼地",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "震地壁垒",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "以绪塔尔冲击",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "毒刺贯体",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Smolder": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/smolder",
        "snapshot": "sources/548577adf03deec434c91c447c757e99c156039b4db469638cd22fbea6dc9bdf",
        "sha256": "548577adf03deec434c91c447c757e99c156039b4db469638cd22fbea6dc9bdf",
        "retrieved_at": "2026-11-01T15:46:08.531702+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Dragon Practice",
          "description": "Dragon Practice : Hitting enemy champions with abilities and killing enemies with Super Scorcher Breath grant a stack of Dragon Practice, which improves Smolder's basic abilities. Dragon Practice Empowering Effects : - Super Scorcher Breath : Deals an additional 30% magic damage and gains new effects at 25, 100 and 175 stacks. - Achooo! : Explosions deal an additional 55% magic damage . - Flap, Flap, Flap : Each hit deals an additional 12% magic damage and gains an extra bolt ever 65 stacks.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/smolder/dragon-practice.webp",
          "icon_sha256": "7916aabf271d7ed6b24384d2301fd0a150ec186318c668aa5d434c2765e9a9c5"
        },
        {
          "slot": "Q",
          "name": "Super Scorcher Breath",
          "description": "Belches flame, dealing 45 / 80 / 115 / 150 ( +110% bonus AD ) physical damage and 40% magical damage . If the target dies, 15 Mana is refunded, once per cast. Dragon Practice Empowering Effects : -25 stacks: Damages all enemies nearby the target. -100 stacks: Sends 2 explosions beyond the target that deal 50% of this ability's damage. -175 stacks: Burns the target, dealing 0% ( +0.025% bonus AD ) of their max Health as true damage over 3 seconds. Enemy champions that drop below 6.5% of their max HP while burning are killed instantly. This ability's damage scales with Critical Rate, increased by 7.5% damage per 10% Crit Rate (max 75% ).",
          "cooldown": "Cooldown: 5 / 5 / 4 / 4",
          "cost": "Cost: 30 / 30 / 30 / 30",
          "icon": "abilities/smolder/super-scorcher-breath.webp",
          "icon_sha256": "dc42888de793e6a25b604e26ca814255fefe84719cb81842968a6bc7a92dc799"
        },
        {
          "slot": "W",
          "name": "Achooo!",
          "description": "Lets out a flaming sneeze, dealing 65 / 85 / 105 / 125 ( +60% bonus AD ) physical damage and slowing by 35% for 1.5 seconds. Sneeze Blast : Hitting champions causes an explosion, dealing 10 / 35 / 60 / 85 ( +55% bonus AD +80% AP ) physical damage and 55% magic damage in an area. Each consecutive explosion does 75% damage . Smolder gains 1 Dragon Practice stack per champion hit. Deals 130% damage against minions and monsters.",
          "cooldown": "Cooldown: 12 / 11 / 10 / 9",
          "cost": "Cost: 50 / 55 / 60 / 65",
          "icon": "abilities/smolder/achooo.webp",
          "icon_sha256": "897eaebed590d87fdf070312ba60d4d4a91c9a8f4ef5fef1b9bfb2c6a9bc1733"
        },
        {
          "slot": "E",
          "name": "Flap, Flap, Flap",
          "description": "Gains 75% Movement Speed and ignores terrain for 1.25 seconds. Boom! : While flying, automatically locks on to the lowest Health enemy in range and bombards them 5 times. Each hit deals 15 / 20 / 25 / 30 ( +30% AD ) physical damage and 12% magic damage . Dragon Vision : Gains expanded vision while flying. Prioritizes champions for bombarding.",
          "cooldown": "Cooldown: 18 / 16 / 14 / 12",
          "cost": "Cost: 65 / 65 / 65 / 65",
          "icon": "abilities/smolder/flap-flap-flap.webp",
          "icon_sha256": "528127794068346999f0e52db843c7890c06943bdd50b14cc6f1d051e6900f29"
        },
        {
          "slot": "R",
          "name": "MMOOOMMMM!",
          "description": "Smolder's mom breathes fire from above, dealing 200 / 300 / 400 ( +110% bonus AD +100% AP ) physical damage to enemies in range. Enemies in the center take 300 / 450 / 600 ( +165% bonus AD +150% AP ) physical damage and are slowed by 40% for 2 seconds. Smolder heals for 100 / 135 / 170 ( +50% bonus AD +75% AP ) Health if he is hit. Deals 50% damage against minions and monsters.",
          "cooldown": "Cooldown: 80 / 70 / 60",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/smolder/mmooommmm.webp",
          "icon_sha256": "ee61cdc00a32740caddeff16bff07867e1883299c263d5eaa13e2f27fba378a9"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWEQRQQWRWWEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10138.js",
          "snapshot": "sources/8fd3fc0b5e6115cd67816aa46dd316a8c44c2e39c3e8739f3e9929c05c90e9b2",
          "sha256": "8fd3fc0b5e6115cd67816aa46dd316a8c44c2e39c3e8739f3e9929c05c90e9b2",
          "retrieved_at": "2026-11-01T15:46:32.155404+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:30",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "龙之研习",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "超级灼热龙息",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "阿嚏！",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "扑棱，扑棱，扑棱！",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "妈----！",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Sona": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/sona",
        "snapshot": "sources/5975a12beb12d50322d7c8ffdf7282bf16ac6d7c3d7a4877a1b6218b59d78613",
        "sha256": "5975a12beb12d50322d7c8ffdf7282bf16ac6d7c3d7a4877a1b6218b59d78613",
        "retrieved_at": "2026-11-01T15:46:08.751233+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Power Chord",
          "description": "After casting three basic abilities for 3 times, Sona's next attack will be empowered dealing 20 - 160 ( +15% AP ) bonus magic damage , stunning the target for 0.5 seconds. Casting basic abilities creates a non-stacking buff aura for 3 seconds. Grants full stack of passive at respawn. Hymn of Valor-Staccato : Bonus damage increased to 8 ( +6% AP ) magic damage . Aria of Perseverance-Diminuendo : Reduces damage dealt by the target by 25% ( +4% AP ) for 3 seconds. Song of Celerity-Tempo : Slows by 40% (+4% AP ) for 2 seconds. Cooldown of basic abilities will be reduced ( level X 2% - 20% ).",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/sona/power-chord.webp",
          "icon_sha256": "5f6f2ba7c6bef7136f3c92e734be01028651ecf014716428b0ccb01774385b1f"
        },
        {
          "slot": "Q",
          "name": "Hymn of Valor",
          "description": "Deals 40 / 80 / 120 / 160 ( +40% AP ) magic damage to two nearest enemies. Aura : Enhances allied champions' next attack to deal an additional 8 / 13 / 18 / 23 ( +20% AP ) magic damage .",
          "cooldown": "Cooldown: 8 / 8 / 8 / 8",
          "cost": "Cost: 60 / 65 / 70 / 75",
          "icon": "abilities/sona/hymn-of-valor.webp",
          "icon_sha256": "1f30b712a25d64f1e8ae533329bea66807ebc8f3d771b90c53fa4108901fee20"
        },
        {
          "slot": "W",
          "name": "Aria of Perseverance",
          "description": "Heals herself and another allied champion for 35 / 60 / 65 / 80 ( +20% AP ). Aura : Grants allied champions a shield that absorbs 25 / 50 / 75 / 100 ( +18% AP ) damage for 3 seconds.",
          "cooldown": "Cooldown: 10 / 10 / 10 / 10",
          "cost": "Cost: 85 / 90 / 95 / 100",
          "icon": "abilities/sona/aria-of-perseverance.webp",
          "icon_sha256": "ae9e999dae9f02a4572f0e658dcc27e89bc7b7bb65d783463d16bf3cb54b4286"
        },
        {
          "slot": "E",
          "name": "Song of Celerity",
          "description": "Gains 15% / 16% / 17% / 18% ( +3% AP ) Movement Speed for 5 seconds. Aura : Gains an aura that lasts 5 seconds. Allied champions within the aura gain 10% / 11% / 12% / 13% ( +3% AP ) Movement Speed . The empowered aura grants 1.2 times the Movement Speed that the normal aura does.",
          "cooldown": "Cooldown: 14 / 14 / 14 / 14",
          "cost": "Cost: 80 / 80 / 80 / 80",
          "icon": "abilities/sona/song-of-celerity.webp",
          "icon_sha256": "c5a00d823438776bb20fa4f8d62e4e78a94b537944618100e4cf7335cb52b57a"
        },
        {
          "slot": "R",
          "name": "Crescendo",
          "description": "Passive : The aura will be reinforced for 20 seconds after casting the ability, providing a higher buff effect than usual. Active : Plays a chord that emits a soundwave ever 0.75 seconds as it travels to the target location. The soundwave deals 35 / 60 / 85 ( +15% AP ) magic damage and stuns enemies for 1 second. Enemies caught inside the chord are also slowed by 25% / 30% / 35% .",
          "cooldown": "Cooldown: 80 / 75 / 70",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/sona/crescendo.webp",
          "icon_sha256": "e24e20cfd5fe3f1480bfea93e0ff29684f1565432a4f8d74820de026bf909033"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWEWRWWQRQQEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            8,
            10,
            11
          ]
        ],
        "W": [
          [
            2,
            4,
            6,
            7
          ]
        ],
        "E": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10047.js",
          "snapshot": "sources/b875d7f266543b78adf2f88fd28647dc48c46f8a8c15b70c88915e1df3a710d0",
          "sha256": "b875d7f266543b78adf2f88fd28647dc48c46f8a8c15b70c88915e1df3a710d0",
          "retrieved_at": "2026-11-01T15:46:32.171481+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:25",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "能量和弦",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "英勇赞美诗",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "坚毅咏叹调",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "迅捷奏鸣曲",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "狂舞终乐章",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Soraka": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/soraka",
        "snapshot": "sources/48744ba5e01a55789d5f8f50d1ec61bac6076252d4df7ae56dd7c3e70289a138",
        "sha256": "48744ba5e01a55789d5f8f50d1ec61bac6076252d4df7ae56dd7c3e70289a138",
        "retrieved_at": "2026-11-01T15:46:08.841022+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Salvation",
          "description": "Soraka gains 100% Movement Speed when moving toward allied champions below 35% Health.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/soraka/salvation.webp",
          "icon_sha256": "b7f97b83c0f8d5f1da425fdcec1b5fbb09f0b840209b7a67c9960d1699469b5d"
        },
        {
          "slot": "Q",
          "name": "Starcall",
          "description": "Calls a star, dealing 60 / 110 / 160 / 210 ( +40% AP ) magic damage and slowing by 30% for 2 seconds. If an enemy champion is hit, Soraka gains Rejuvenation , healing for 60 /90 / 120 / 150 ( +45% AP ) over 2.5 seconds. After healing any ally champion 3 times, Starcall is empowered to deal 140% damage in a larger area. Cooldown is reduced when hitting enemy champions.",
          "cooldown": "Cooldown: 7 / 6 / 5 / 4",
          "cost": "Cost: 45 / 50 / 55 / 60",
          "icon": "abilities/soraka/starcall.webp",
          "icon_sha256": "ad18939ddc0b80622a44d6da6edfec336ec0e26f8ace5b6ab360f8f7b190bada"
        },
        {
          "slot": "W",
          "name": "Astral Infusion",
          "description": "Heals another allied champion for 50 / 85 / 120 / 155 ( +55% AP ) Health. Excess healing is converted into a shield with a maximum shield value of 70 / 110 / 150 / 190 ( +70%AP ).",
          "cooldown": "Cooldown: 7 / 6 / 5 / 4",
          "cost": "Cost: 55 / 60 / 65 / 70",
          "icon": "abilities/soraka/astral-infusion.webp",
          "icon_sha256": "d51ce9bbacc0389bf5ad2dd1f951bae9428ed0fa3eecb4a815ec528c623d1db8"
        },
        {
          "slot": "E",
          "name": "Equinox",
          "description": "Create a zone that deals 70 / 120 / 170 / 220 ( +40% AP ) magic damage and silences enemies. The zone expires after 1.5 seconds, dealing 70 / 120 / 170 / 220 ( +40% AP ) magic damage and rooting for 1.25 / 1.5 / 1.75 / 2 seconds.",
          "cooldown": "Cooldown: 20 / 18 / 16 / 14",
          "cost": "Cost: 70 / 70 / 70 / 70",
          "icon": "abilities/soraka/equinox.webp",
          "icon_sha256": "741f36daf4f6fc491d7fa584fdda44210360e27c0410d5084ca9603e78c00430"
        },
        {
          "slot": "R",
          "name": "Wish",
          "description": "Heals all allied champions for 150 / 225 / 300 ( +45% AP ), increased by 50% if the ally is below 35% Health.",
          "cooldown": "Cooldown: 85 / 80 / 75",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/soraka/wish.webp",
          "icon_sha256": "a2943bd70e8b25720b28306460b2c04d688af4dcc0e736600f15c0f96a260cb3"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWEWRWWQRQQEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            8,
            10,
            11
          ]
        ],
        "W": [
          [
            2,
            4,
            6,
            7
          ]
        ],
        "E": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10097.js",
          "snapshot": "sources/3be7b026824a9768db650132dbda6665917248be29e44ce9c4388f99551cecb4",
          "sha256": "3be7b026824a9768db650132dbda6665917248be29e44ce9c4388f99551cecb4",
          "retrieved_at": "2026-11-01T15:46:32.155021+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:28",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "救赎",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "流星坠落",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "星之灌注",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "星体结界",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "祈愿",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Swain": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/swain",
        "snapshot": "sources/2bf0661b9dab418fdc9699031b200d4e5c9eeee2c2193323dc424824b079b830",
        "sha256": "2bf0661b9dab418fdc9699031b200d4e5c9eeee2c2193323dc424824b079b830",
        "retrieved_at": "2026-11-01T15:46:08.756324+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Ravenous Flock",
          "description": "Swain collects Soul Fragments when Visions of Empire and Nevermore hit enemy champions, and also when they die. Soul Fragments heal for 4.5% / 5% / 5.5% / 6% ( +0.2% AP ) health and provide 16 maximum health .",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/swain/ravenous-flock.webp",
          "icon_sha256": "6ae0eb70150fd5ea7d1347e4beb33beedf5412f49f5b5320a8dadf621685e56a"
        },
        {
          "slot": "Q",
          "name": "Death's Hand",
          "description": "Swain extends his demonic arm to launch eldritch bolts at enemies, dealing 55 / 90 / 125 / 160 ( +32% AP ) magic damage to enemies within range. Each bolt after the first deals 10 / 20 / 30 / 40 ( +12% AP ) magic damage (up to 110 damage).",
          "cooldown": "Cooldown: 6 / 5 / 4 / 3",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/swain/death-s-hand.webp",
          "icon_sha256": "cbb49a315d18080ed7d9122e783180f56d6cb995c9ca4f26d0fbf0e36cf88e83"
        },
        {
          "slot": "W",
          "name": "Vision of Empire",
          "description": "Swain summons a demonic eye that explodes after a short delay, dealing 80 / 130 / 180 / 230 ( +55% AP ) magic damage slowing by 30% / 40% / 50% / 60% for 2.5 seconds and revealing targets hit for 4 seconds. If Vision of Empire damages an immobilized champion it will critically strike for 50% damage . Champions hit will give 1 soul fragment.",
          "cooldown": "Cooldown: 21 / 20 / 19 / 18",
          "cost": "Cost: 65 / 65 / 65 / 65",
          "icon": "abilities/swain/vision-of-empire.webp",
          "icon_sha256": "c5b7c5d9d044da3cd71f67010e6ca857c098efc059daa5bf2c00ba0ea8a6ba89"
        },
        {
          "slot": "E",
          "name": "Nevermove",
          "description": "Swain launches a demonic wave that deals 35 / 85 / 135 / 185 ( +25% AP ) magic damage to enemies along the way, then turns back after reaching the furthest distance, dealing 35 / 50 / 6+5 / 80 ( +40% AP ) magic damge to the area and rooting enemies within the area for 1.5 seconds. Recast : Swain pulls the rooted champions to himself and collets 1 Soul Fragment from targets.",
          "cooldown": "Cooldown: 10 / 10 / 10 / 10",
          "cost": "Cost: 60 / 60 / 60 / 60",
          "icon": "abilities/swain/nevermove.webp",
          "icon_sha256": "a6fbe4ad0d886ebbe458f9341d1d9a06adaa39d84bd76465ac4e8a66d043f3c2"
        },
        {
          "slot": "R",
          "name": "Demonic Ascension",
          "description": "Swain frees the demon, dealing 15 / 25 / 35 ( +6% AP ) magic damage per second to enemies within his range and restoring 15 / 30 / 45 ( +10% AP ) health to himself. Recast: Can be cast again after 2 seconds of Demonic Ascension, dealing damage and slowing enemies. Non-champions units will restore 10% health . Demon Ascension is controlled by Demon Energy, which depletes over time, and can be recharged indefinitely by draining enemy Champions. Champion takedowns fully restore Demon Energy. Cooldown between two Demonflare: 6 seconds",
          "cooldown": "Cooldown: 75 / 65 / 55",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/swain/demonic-ascension.webp",
          "icon_sha256": "5cd6044c4b1c9ada996ff23534a0bf24f59cee0daebb34ad48aed00fdb081cc6"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWQRQQWRWWEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            2,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10126.js",
          "snapshot": "sources/d6b11be80b460a3d2ab3790ba32961e0c5b26a75a9e50d97410c732b56757acd",
          "sha256": "d6b11be80b460a3d2ab3790ba32961e0c5b26a75a9e50d97410c732b56757acd",
          "retrieved_at": "2026-11-01T15:46:32.170703+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:30",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "狂食鸦群",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "解脱之触",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "帝国视界",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "永不复行",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "恶魔升华",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Syndra": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/syndra",
        "snapshot": "sources/063e7bfd66fb52b803b201197eb9471cd4d3b7f1828bbbd4754d7bf2009a9341",
        "sha256": "063e7bfd66fb52b803b201197eb9471cd4d3b7f1828bbbd4754d7bf2009a9341",
        "retrieved_at": "2026-11-01T15:46:08.887707+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Transcendent",
          "description": "Every instance of ability damage dealt to an enemy champion grants 1 Splinter of Wrath and restores 13 mana . Syndra gains 4 Splinters of Wrath every time she levels up an ability. Up to 120 Splinters can be collected. Transcendent : Empowers a basic ability after collecting 50 , 75 and 100 Splinters of Wrath . Empowers Unleashed Power after collection 125 Splinters of Wrath . Transcendence : Gains 12% AP after collecting 150 Splinters of Wrath .",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/syndra/transcendent.webp",
          "icon_sha256": "7cf676e6f88a30aafa4c133c06e1329b97f35fd84d1e29a77dccacd275160e83"
        },
        {
          "slot": "Q",
          "name": "Dark Sphere",
          "description": "Conjures a Dark Sphere , dealing 80 / 130 / 180 / 230 ( +65% AP ) magic damage . The Sphere remains for 6 seconds and can be manipulated by Syndra's other abilities. Transcendent : Stores a charge of Dark Sphere every 7 seconds, up to a maximum of 2. This ability can be cast wile moving.",
          "cooldown": "Cooldown: 7 / 7 / 6 / 5",
          "cost": "Cost: 50 / 55 / 60 / 65",
          "icon": "abilities/syndra/dark-sphere.webp",
          "icon_sha256": "8f703c71bccdd2dce738e372fd78efc97af43f6053d3b2fa49b4d4ea356660bd"
        },
        {
          "slot": "W",
          "name": "Force of Will",
          "description": "Grabs the nearest Dark Sphere and hurls it at a target location, dealing 60 / 100 / 140 / 180 ( +50% AP ) magic damage to enemies within the area and slowing them by 25% for 1.5 seconds. If there isn't any Dark Sphere nearby, Syndra generates one and hurls it at the target location. Damage from the Sphere is reduced to 80% . Transcendent : This ability deals an additional 12% ( +2% AP ) true damage .",
          "cooldown": "Cooldown: 12 / 11 / 10 / 9",
          "cost": "Cost: 70 / 80 / 90 / 100",
          "icon": "abilities/syndra/force-of-will.webp",
          "icon_sha256": "7cbecf73d917c7755d4cf0ac83187e67e942d466e74bb41395df4914f5f0e8e7"
        },
        {
          "slot": "E",
          "name": "Scatter the Weak",
          "description": "Projects a wave of force in a cone, knocking back enemies and Dark Spheres and dealing 70 / 110 / 150 / 190 ( +50% AP ) magic damage . Dark Spheres that are knocked back stun and knock back enemies hit along the way for 1.25 seconds, dealing 70 / 110 / 150 / 1 90 ( +35% AP ) magic damage . Transcendent : Increases the angle of the wave of force's cone by 50% and its radius to 720 . Enemies can only take damage and be knocked back from this ability once per cast.",
          "cooldown": "Cooldown: 15 / 15 / 15 / 15",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/syndra/scatter-the-weak.webp",
          "icon_sha256": "e4fc006c2f7656e914ff83aae311afabb04a27d3b723dcbdea3c38f8d0740706"
        },
        {
          "slot": "R",
          "name": "Unleashed Power",
          "description": "Manipulates the 3 Dark Spheres orbiting her plus up to 4 more nearby, launching them at an enemy champion. Each Sphere deals 60 / 110 / 165 ( +15% AP ) magic damage. Transcendent : Increases cast range by 100 . This ability executes enemies below 10% Health . If this ability kills an enemy champion, the Dark Spheres will detonate where they were killed and deal 60 / 110 / 160 ( +15% AP ) magic damage to nearby enemy champions.",
          "cooldown": "Cooldown: 80 / 70 / 60",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/syndra/unleashed-power.webp",
          "icon_sha256": "7bfcc53816566b2b6fceadc19504ee82299c23a86b097be8a78178fdb49dbe11"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWQRQQWRWWEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            2,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10024.js",
          "snapshot": "sources/cee190669910f90fa0ae6e57f43b5d252838cce63cbda4b1f87cb415d3d165de",
          "sha256": "cee190669910f90fa0ae6e57f43b5d252838cce63cbda4b1f87cb415d3d165de",
          "retrieved_at": "2026-11-01T15:46:32.172024+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:24",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "卓尔不凡",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "暗黑法球",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "驱使念力",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "弱者退散",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "能量倾泻",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Taliyah": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/taliyah",
        "snapshot": "sources/9fc616ec6ea813083726131ad32cc925c78fb8063572d367c5c672cc5d78a475",
        "sha256": "9fc616ec6ea813083726131ad32cc925c78fb8063572d367c5c672cc5d78a475",
        "retrieved_at": "2026-11-01T15:46:08.918005+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Rock Surfing",
          "description": "Gains 5% / 10% / 20% / 35% Movement Speed while out of combat and near a wall.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/taliyah/rock-surfing.webp",
          "icon_sha256": "b88e4f39524cc5a569439a6ba3389da929cec06bb5040d62288d2966fd19c6c6"
        },
        {
          "slot": "Q",
          "name": "Threaded Volley",
          "description": "Hurls 5 rocks in a target direction, each dealing 40 / 60 / 80 / 100 ( +50% AP ) magic damage in an area around the first enemy hit. This creates Worked Ground below Taliyah. Subsequent hits against the same target deal 60% less damage. Threaded Volley casts on Worked Ground : Costs 10 Mana and consume the Worked Ground ; Have 30% less cooldown; Hurl a boulders that deals 100 / 140 / 180 / 220 ( +80% AP ) magic damage to the primary target and shows enemies hit by 25% / 30% / 35% / 40% for 1.5 seconds; Monsters hit by the boulders are stunned for 3 seconds. Each rock deals 20 bonus magic damage against monsters, and each boulders deals 36 bonus magic damage against monsters.",
          "cooldown": "Cooldown: 6 / 5 / 4 / 3",
          "cost": "Cost: 60 / 60 / 60 / 60",
          "icon": "abilities/taliyah/threaded-volley.webp",
          "icon_sha256": "0fe2e42ab62bc11bfe97c0d8e26b241a3152064089dbdf8f2509d3ffc8b9118e"
        },
        {
          "slot": "W",
          "name": "Seismic Shove",
          "description": "Causes an area of ground to erupt, knocking enemies in the area in the chosen direction after a brief delay.",
          "cooldown": "Cooldown: 13 / 11 / 9 / 7",
          "cost": "Cost: 30 / 30 / 30 / 30",
          "icon": "abilities/taliyah/seismic-shove.webp",
          "icon_sha256": "9335919a978bfb293fb19b305b3c99703392eb2f3c634abbcbd79396cce00e0c"
        },
        {
          "slot": "E",
          "name": "Unraveled Earth",
          "description": "Scatters loose stones, dealing 65 / 120 / 175 / 230 ( +55% AP ) magic damage to enemies hit and slowing them by 20% for 0.5 seconds. The stones detonate when enemies dash or are knocked through them, dealing 20 / 35 / 50 / 65 ( +30% AP ) magic damage and stuns for the remaining movement duration + 0.75 seconds. Monsters are always stunned for the maximum duration. Deals 190% damage against monsters.",
          "cooldown": "Cooldown: 12 / 12 / 12 / 12",
          "cost": "Cost: 90 / 90 / 90 / 90",
          "icon": "abilities/taliyah/unraveled-earth.webp",
          "icon_sha256": "19217f2a1a7118a4bbbbaad8ccc00b65728f14a005e836885e5f410dda5ad475"
        },
        {
          "slot": "R",
          "name": "Weaver's Wall",
          "description": "Creates a massive earthen wall for 4 seconds : The wall knocks back nearby enemies when it forms; Once the wall is fully formed, Taliyah can recast to destroy it early. I f recast immediately : Taliyah rides along the wall as it unravels. Moving or being immobilized ends the ride. This ability cannon be cast if Taliyah has taken damage from champions or structures within the last 3 seconds.",
          "cooldown": "Cooldown: 94 / 85 / 75",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/taliyah/weaver-s-wall.webp",
          "icon_sha256": "005b1c69a36c19630b56ef942b08c077cd83e92811d390a6c8d5ad43ef429b4e"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWQRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10146.js",
          "snapshot": "sources/08d34ed337e07f7561341f56c7939e1e9ec25439a74e4a626b98830f0d9a766d",
          "sha256": "08d34ed337e07f7561341f56c7939e1e9ec25439a74e4a626b98830f0d9a766d",
          "retrieved_at": "2026-11-01T15:46:32.171776+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:31",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "浮石冲",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "石穿",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "岩突",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "撒石阵",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "墙幔",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Talon": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/talon",
        "snapshot": "sources/3cbbb9250bdd75ffb20d2850e605206a88ebb933467b7147251d88bdb9f21542",
        "sha256": "3cbbb9250bdd75ffb20d2850e605206a88ebb933467b7147251d88bdb9f21542",
        "retrieved_at": "2026-11-01T15:46:08.966758+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Blade's End",
          "description": "Talon's abilities apply a stack of Wound to enemy champions and large monsters hit for 6 seconds, stacking up to 3 times. Damaging the same target again resets Wound duration. When Talon attacks a target with 3 stacks of Wound, all Wound stacks are consumed to send the target into a bleeding state, dealing 100 - 300 ( +210% bonus AD ) physical damage over 2 seconds. Monsters are dealt 90% of this damage The target will not gain Wound stacks during this period. If an enemy champion is killed while bleeding, Talon gains bonus 50% Movement Speed that decays over 2 seconds.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/talon/blade-s-end.webp",
          "icon_sha256": "25b96409a364464a15ed7192cf729afd6c2f012cfdee4df93c022f461a67e60f"
        },
        {
          "slot": "Q",
          "name": "Noxian Diplomacy",
          "description": "Long-range cast : Dashes toward an enemy champion, dealing 75 / 100 / 125 / 150 ( +100% bonus AD ) physical damage . Close-range cast : Stabs the target, dealing 98 / 135 / 173 / 210 ( +150% bonus AD ) physical damage . If this ability kills the target, Talon restores 35 - 70 Health , and the ability's cooldown is reduced by 65% . The high Armor Pen is, the faster the dash and cast speed of this ability will be. Damage from close-range casts scales with Critical Strike Damage .",
          "cooldown": "Cooldown: 7 / 6 / 6 / 5",
          "cost": "Cost: 70 / 65 / 60 / 55",
          "icon": "abilities/talon/noxian-diplomacy.webp",
          "icon_sha256": "cf5dbc299dc4cf8d8827ebe9f540dda8d65b224e760f28e3cb403a80e3ecc4c7"
        },
        {
          "slot": "W",
          "name": "Rake",
          "description": "Tosses daggers in a cone a the target area , dealing 40 / 50 / 60 / 70 ( +50% bonus AD ) physical damage to enemies hit. Upon reaching maximum range, the daggers linger for 0.75 seconds before returning, dealing 60 / 100 / 140 / 180 ( +100% bonus AD ) physical damage to enemies hit along the way and slowing them by 40% for 1 second. Deals 80% damage to monsters.",
          "cooldown": "Cooldown: 8 / 7 / 7 / 6",
          "cost": "Cost: 50 / 55 / 60 / 65",
          "icon": "abilities/talon/rake.webp",
          "icon_sha256": "18ed3ded0d1050b0ab2962b45357ff6213f6a0fd58ab9392f73cb9c8a174b1ef"
        },
        {
          "slot": "E",
          "name": "Assassin's Path",
          "description": "Vaults over the terrain or structure closest to him. Talon cannot vault over the same terrain within 135 / 110 / 85 / 60 seconds of his last vault over it (cooldown per terrain decreases with Ability Haste). Increase Talon's speed off vaulting over terrains and turrets by 10%",
          "cooldown": "Cooldown: 1 / 1 / 1 / 1",
          "cost": "",
          "icon": "abilities/talon/assassin-s-path.webp",
          "icon_sha256": "0606d85823287843862c960a0a808fb7217d72b92848b702814903a76615f05f"
        },
        {
          "slot": "R",
          "name": "Shadow Assault",
          "description": "First Cast : Flings out a ring of blades around himself, dealing 90 / 135 / 180 ( +110% bonus AD ) physical damage to nearby enemies and gaining invisibility and 40% / 55% / 70% bonus Movement Speed for up to 2.5 seconds. How to recast : Tap the ability 1 second after the first cast to recast. The ability will automatically be cast again when invisibility expires or is disabled. Recast : Exits invisibility and recalls the blades, dealing 90 / 130 / 170 ( +100% bonus AD ) physical damage again to enemies hit along the way. Using attacks or Noxian Diplomacy to exit invisibility causes the blades to converge toward the target enemy instead.",
          "cooldown": "Cooldown: 65 / 55 / 45",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/talon/shadow-assault.webp",
          "icon_sha256": "663a9f6746515434c6015b3bd5235855239b875034b40cab54432242875345c5"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWWERWWQRQQEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            8,
            10,
            11
          ]
        ],
        "W": [
          [
            2,
            3,
            6,
            7
          ]
        ],
        "E": [
          [
            4,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10128.js",
          "snapshot": "sources/6f4213e314b46067cbb918e16b73252062c25d6c3bad3c78e4f446c2a0277766",
          "sha256": "6f4213e314b46067cbb918e16b73252062c25d6c3bad3c78e4f446c2a0277766",
          "retrieved_at": "2026-11-01T15:46:32.416101+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:30",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "刀锋之末",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "诺克萨斯式外交",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "斩草除根",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "刺客之道",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "暗影突袭",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Teemo": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/teemo",
        "snapshot": "sources/a1cd7c692e31f2b9c3536e9c7d335a459bc24563c53b729be17184e802eb8afc",
        "sha256": "a1cd7c692e31f2b9c3536e9c7d335a459bc24563c53b729be17184e802eb8afc",
        "retrieved_at": "2026-11-01T15:46:09.132483+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Toxic Shot",
          "description": "Attacks deal 8 - 36 ( +20% AP ) bonus magic damage on impact and an additional 8 - 50 ( +9% AP ) magic damage each second for 4 seconds.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/teemo/toxic-shot.webp",
          "icon_sha256": "0e769e63a756f2ac1e02eef5e7eeeb64f1ac1317447fbf1802d87f6aeef5f647"
        },
        {
          "slot": "Q",
          "name": "Blinding Dart",
          "description": "Deals 50 / 95 / 140 / 185 ( +50% AP ) magic damage and blinds the target for 1.25 / 1.5 / 1.75 / 2 seconds. Attacks from blinded enemies will miss their target, dealing no damage and failing to apply on-hit effects.",
          "cooldown": "Cooldown: 8 / 8 / 8 / 8",
          "cost": "Cost: 75 / 80 / 85 / 90",
          "icon": "abilities/teemo/blinding-dart.webp",
          "icon_sha256": "35fe45421a206c5bbc177e2b106a776a0535c92c982102cd0450ad4031189620"
        },
        {
          "slot": "W",
          "name": "Move Quick",
          "description": "Passive : Grants 15% / 20% / 25% / 30% Movement Speed if an enemy champion or structure has not damaged Teemo within the last 5 seconds. Active : Rolls a short distance forward and sprints for 3 seconds. During this time, Move Quick's bonus is doubled and cannot be removed by damage.",
          "cooldown": "Cooldown: 17 / 16 / 15 / 14",
          "cost": "Cost: 40 / 40 / 40 / 40",
          "icon": "abilities/teemo/move-quick.webp",
          "icon_sha256": "1d767a0f2381e95cf3914e6fd59dc8a2a4d354a6ef6256e4aeb2a61d85b1580a"
        },
        {
          "slot": "E",
          "name": "Guerilla Warfare",
          "description": "After a delay, become Camouflaged. Moving outside of brush for more than 3 / 3.5 / 4 / 4.5 seconds ends this effect. After exiting Camouflage, gain 30% / 40% / 50% / 60% Attack Speed for 3 / 4 / 5 / 6 seconds. Camouflage : Hide from champions by keeping them out of Teemo's detection radius. Enemy turrets reveal camouflaged units near them. Attacks and offensive abilities end Camouflage early.",
          "cooldown": "Cooldown: 25 / 23 / 21 / 19",
          "cost": "Cost: 60 / 60 / 60 / 60",
          "icon": "abilities/teemo/guerilla-warfare.webp",
          "icon_sha256": "0f8505b73b85329fb899ca48d0131571ec9b7d5c7c4e835c52b257b4439c455e"
        },
        {
          "slot": "R",
          "name": "Noxious Trap",
          "description": "Places a mushroom trap that detonates when an enemy steps on it, dealing 225 / 350 / 475 ( +50% AP ) magic damage over 3 seconds and slowing by 30% / 40% / 50% for 3 seconds. Traps last for 2 minutes.",
          "cooldown": "Cooldown: 1 / 1 / 1 / 1",
          "cost": "Cost: 75 / 75 / 75 / 75",
          "icon": "abilities/teemo/noxious-trap.webp",
          "icon_sha256": "181fdacdc2831922997ab0061b6ece385fc1a9054dd732c5956f4e24a5aa0608"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWQRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10046.js",
          "snapshot": "sources/16ef8a48b9e1169bab3556a5ead498f5640d7375d98f2b51de30cd1059f73141",
          "sha256": "16ef8a48b9e1169bab3556a5ead498f5640d7375d98f2b51de30cd1059f73141",
          "retrieved_at": "2026-11-01T15:46:32.406296+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:25",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "毒性射击",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "致盲吹箭",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "小莫快跑",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "游击队军备",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "种蘑菇",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Thresh": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/thresh",
        "snapshot": "sources/71669f201d8095f42b974a3d6ad227b62489b23d7c391468d276e388f03f3a53",
        "sha256": "71669f201d8095f42b974a3d6ad227b62489b23d7c391468d276e388f03f3a53",
        "retrieved_at": "2026-11-01T15:46:09.202210+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Damnation",
          "description": "Thresh can harvest the Souls of enemies that die near him, each soul permanently granting him 2 Armor and 2 Ability Power . Thresh does not gain Armor on level up.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/thresh/damnation.webp",
          "icon_sha256": "f1f94668d6645893c560958913e0babd1c6f18c9e80347c95c23f6ce031b6f4c"
        },
        {
          "slot": "Q",
          "name": "Death Sentence",
          "description": "Throws out a scythe, stunning the first unit hit and pulling them in for 1.5 seconds. The scythe does 100 / 160 / 220 / 280 ( +80% AP ) magic damage and grants True Sight for the duration. Recast : Dashes to the bound enemy. Cooldown is reduced by 2 seconds if it hits an enemy.",
          "cooldown": "Cooldown: 18 / 15 / 12 / 9",
          "cost": "Cost: 70 / 70 / 70 / 70",
          "icon": "abilities/thresh/death-sentence.webp",
          "icon_sha256": "439d72eb4e811464d4b87b625841dae7db9d264c2798c1e5d73e6155e008caf3"
        },
        {
          "slot": "W",
          "name": "Dark Passage",
          "description": "Throws a Lantern to a target location, allowing an ally to tap the Minion Button to dash to Thresh. The Lantern also grants a shield to Thresh and the first ally that comes near it, absorbing up to 50 / 90 / 130 / 170 ( +2 per Soul ) damage for 4 seconds.",
          "cooldown": "Cooldown: 21 / 19 / 17 / 15",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/thresh/dark-passage.webp",
          "icon_sha256": "213a204a9168cd3834277e64ca7c49078403716fc1947114f6652fbd7690feea"
        },
        {
          "slot": "E",
          "name": "Flay",
          "description": "Passive : Basic attacks deal additional 0 to 58 ( 2 per Soul to 2 per Soul + 80% / 120% / 160% / 200% AD ) magic damage based on how long since he last attacked. Active : Thresh whips his chains, pulling or pushing enemies in the direction of the swing. Enemies hit are also slowed by 20% / 25% / 30% / 35% for 1 second and take 75 / 115 / 155 / 195 ( +60% AP ) magic damage .",
          "cooldown": "Cooldown: 12 / 11 / 10 / 9",
          "cost": "Cost: 60 / 60 / 60 / 60",
          "icon": "abilities/thresh/flay.webp",
          "icon_sha256": "22c085fcbb7b67368d9ff527fb11e5df26aa0ed32b318d5e8ba9d717d6d3285e"
        },
        {
          "slot": "R",
          "name": "The Box",
          "description": "Creates a prison of spectral walls, slowing champions by 99% for 2 seconds and dealing 250 / 400 / 500 ( +100% AP ) magic damage . Walls break after one collision, and after one is broken, the rest deal no damage and slow for half duration. An enemy cannot be afftected by multiple walls simultaneously.",
          "cooldown": "Cooldown: 85 / 80 / 75",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/thresh/the-box.webp",
          "icon_sha256": "24a6a35e562d05e4e801cb6cdbe66741f99f10244901a2c09f8ecb154d2e960d"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "EQWQRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            2,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            1,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [
          {
            "control_key": "flay_rank",
            "slot": "E",
            "rank_basis": "learned",
            "ability": "Flay",
            "engine_semantics": "thresh_flay charged AD coefficient",
            "initial_rank": 0,
            "source": "champion.source (exact slot/name); canonical champion_mechanics.json rule identity",
            "engine_evidence": "game_rules.py rank consumers and champion_mechanics.json explicit rule parameters"
          }
        ],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10130.js",
          "snapshot": "sources/60dd1af5b23d4c52553c4f611df5ed5c2f62c1ea7f21208ab00fe898fac10b77",
          "sha256": "60dd1af5b23d4c52553c4f611df5ed5c2f62c1ea7f21208ab00fe898fac10b77",
          "retrieved_at": "2026-11-01T15:46:32.423459+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:30",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "地狱诅咒",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "死亡判决",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "魂引之灯",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "厄运钟摆",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "幽冥监牢",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Tristana": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/tristana",
        "snapshot": "sources/0845e256b2ae1a373adefe5ef899432750319d40917cce56415e9e6e3a30f240",
        "sha256": "0845e256b2ae1a373adefe5ef899432750319d40917cce56415e9e6e3a30f240",
        "retrieved_at": "2026-11-01T15:46:09.174163+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Draw a Bead",
          "description": "Increases the range of attacks, Explosive Charge , and Buster Shot by 10 per level.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/tristana/draw-a-bead.webp",
          "icon_sha256": "bed37d2e9fb26455323c9057590b6c08700040aed4661af829a0c74fe2cb2f5b"
        },
        {
          "slot": "Q",
          "name": "Rapid Fire",
          "description": "Gain 60% / 80% / 100% / 120% bonus Attack Speed for 7 seconds.",
          "cooldown": "Cooldown: 17 / 16 / 15 / 14",
          "cost": "",
          "icon": "abilities/tristana/rapid-fire.webp",
          "icon_sha256": "256195c6ec48accde67c6a3c4a84c2c38ac102ce722ec1bbdbf1dd1be639f08e"
        },
        {
          "slot": "W",
          "name": "Rocket Jump",
          "description": "Leap to a target location, dealing 80 /120 / 160 / 200 ( +80% bonus AD +50% AP ) magic damage and slowing nearby enemies by 50% for 2 seconds. Takedowns and fully stacked Explosive Charg e detonations on champions reset Rocket Jump's cooldown.",
          "cooldown": "Cooldown: 20 / 18 / 16 / 14",
          "cost": "Cost: 60 / 60 / 60 / 60",
          "icon": "abilities/tristana/rocket-jump.webp",
          "icon_sha256": "7da1623dde989fe6a44b3b6070b4df0f0b92f0806e1755ae81e8766442527ac5"
        },
        {
          "slot": "E",
          "name": "Explosive Charge",
          "description": "Passive : Enemies explode when killed by Tristana's attacks, dealing 60 / 90 / 120 / 150 ( +25% AP ) magic damage to nearby enemies. Active : Places a bomb on an enemy or turret, dealing 80 / 110 / 140 / 170 ( +120% bonus AD +50% AP ) physical damage to nearby enemies. Damage scales with Critical Rate and Critical Damage at 50% effectiveness. Tristana's attacks and abilities charge the bomb's damage by 25% stacking 4 times. Bombs explode immediately at full stacks. Explosion radius is doubled for bombs placed on turrets.",
          "cooldown": "Cooldown: 16 / 15 / 14 / 13",
          "cost": "Cost: 55 / 60 / 65 / 70",
          "icon": "abilities/tristana/explosive-charge.webp",
          "icon_sha256": "dd800303bd65de4ffbbb46ad8f34fcf36e9898b4db9fcf8de6c9811456cd74ca"
        },
        {
          "slot": "R",
          "name": "Buster Shot",
          "description": "Fires a massive cannonball at an enemy, dealing 300 / 350 / 400 ( +70% bonus AD +100% AP ) magic damage and knocking them back.",
          "cooldown": "Cooldown: 70 / 65 / 60",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/tristana/buster-shot.webp",
          "icon_sha256": "6247390225885d30689f4ec6238cbcd155635f4f3193175d614b0727b05cc171"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "EWQEREEQRQQWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            3,
            8,
            10,
            11
          ]
        ],
        "W": [
          [
            2,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10045.js",
          "snapshot": "sources/398d729890a51b0acc41e6af0dacc97f79f749b99973db2348d7087fe970420a",
          "sha256": "398d729890a51b0acc41e6af0dacc97f79f749b99973db2348d7087fe970420a",
          "retrieved_at": "2026-11-01T15:46:32.424838+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:25",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "瞄准",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "急速射击",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "火箭跳跃",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "爆炸火花",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "毁灭射击",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Tryndamere": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/tryndamere",
        "snapshot": "sources/b84e5069eb0eae5a2b49053aa393d97b54cc07b132ffe5e5fe6426071bccb898",
        "sha256": "b84e5069eb0eae5a2b49053aa393d97b54cc07b132ffe5e5fe6426071bccb898",
        "retrieved_at": "2026-11-01T15:46:09.258994+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Battle Fury",
          "description": "Gains 0.5% Critical Rate for each point of Fury. Gains 5 Fury with every attack, 10 from critical strikes and 15 from kills. Loses 5 Fury per second after Tryndamere has been out of combat for 8 seconds. Battle Fury's Attack Speed bonus increases with Undying Rage's ability rank. Tryndamere converts Critical Rate above 100% into Attack Damage at a rate of 1 Attack Damage per 1% Critical Rate.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/tryndamere/battle-fury.webp",
          "icon_sha256": "29b28f8dc7e010b88e6248d34f9cc8a84f8601951a26200dddfa97eedce6fd83"
        },
        {
          "slot": "Q",
          "name": "Bloodlust",
          "description": "Passive : Gains 0.3 / 0.5 / 0.7 / 0.9 Attack Damage per 1% of missing Health. Active : Consumes all Fury to heal for 55 / 65 / 75 / 85 ( +30% AP ) plus 1.5 / 2.1 / 2.7 / 3.3 ( +1.2% AP ) per point of Fury consumed.",
          "cooldown": "Cooldown: 12 / 12 / 12 / 12",
          "cost": "",
          "icon": "abilities/tryndamere/bloodlust.webp",
          "icon_sha256": "5ebae124ee49d6b4f52c26609b8d53b8b8fe4ac0f2041159e7e6a9b22ed8b94a"
        },
        {
          "slot": "W",
          "name": "Mocking Shout",
          "description": "Reduces nearby enemy champions' Attack Damage by 20% / 40% / 60% / 80% for 3 seconds. If target is moving away from Tryndamere, they will be slowed by 25% / 30% / 35% / 40% .",
          "cooldown": "Cooldown: 12 / 12 / 12 / 12",
          "cost": "",
          "icon": "abilities/tryndamere/mocking-shout.webp",
          "icon_sha256": "530ce974db889249b3b604d54f020cb7c208b357d5638db20de54b3b98e2f8ec"
        },
        {
          "slot": "E",
          "name": "Spinning Slash",
          "description": "Dashes, dealing 80 / 130 / 180 / 230 ( +110% bonus AD +80% AP ) physical damage . Critical Strikes against minions, monsters and champion-summoned units reduce the cooldown of Spinning Slash by 1 second, doubled against champions. Gains 2 Fury for each enemy hit.",
          "cooldown": "Cooldown: 11 / 10 / 9 / 8",
          "cost": "",
          "icon": "abilities/tryndamere/spinning-slash.webp",
          "icon_sha256": "7b4a312d5a5d037dc6b17774708eee9ca1f83c183e654b2d9c8c84a6de7b2046"
        },
        {
          "slot": "R",
          "name": "Undying Rage",
          "description": "Active : Becomes unkillable for 5 seconds and gains 50 / 75 /100 Fury . Can be cast while crowd controlled.",
          "cooldown": "Cooldown: 90 / 80 / 70",
          "cost": "",
          "icon": "abilities/tryndamere/undying-rage.webp",
          "icon_sha256": "4dd5803f0f6b07dcf783443fc412383a7d4d01f964cf803a41d98807119e8df5"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "EQQWRQQEREEWRWW"
        },
        {
          "label": "Source plan 2",
          "choices": "EQWQRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            2,
            3,
            6,
            7
          ],
          [
            2,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            4,
            12,
            14,
            15
          ],
          [
            3,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            1,
            8,
            10,
            11
          ],
          [
            1,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ],
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [
          {
            "control_key": "bloodlust_rank",
            "slot": "Q",
            "rank_basis": "learned",
            "ability": "Bloodlust",
            "engine_semantics": "tryndamere_bloodlust missing-health AD",
            "initial_rank": 0,
            "source": "champion.source (exact slot/name); canonical champion_mechanics.json rule identity",
            "engine_evidence": "game_rules.py rank consumers and champion_mechanics.json explicit rule parameters"
          }
        ],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10015.js",
          "snapshot": "sources/baade2579bc00ed7495e7c9c6f1865b55533263b76dea7c5b22fa536731a1632",
          "sha256": "baade2579bc00ed7495e7c9c6f1865b55533263b76dea7c5b22fa536731a1632",
          "retrieved_at": "2026-11-01T15:46:32.429424+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:24",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "战斗狂怒",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "嗜血杀戮",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "蔑视",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "旋风斩",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "无尽怒火",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Twisted Fate": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/twisted-fate",
        "snapshot": "sources/c4b165cd5fe695a35d237b07e1d646a8460f2046d351383229f6a9df3df26d30",
        "sha256": "c4b165cd5fe695a35d237b07e1d646a8460f2046d351383229f6a9df3df26d30",
        "retrieved_at": "2026-11-01T15:46:10.059109+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Loaded Dice",
          "description": "Gain 1 to 9 bonus gold upon killing a unit.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/twisted-fate/loaded-dice.webp",
          "icon_sha256": "1b196c5da78f624e89436b10bdbc8dba0d6d8edd2116972bbc41b286c98c4c64"
        },
        {
          "slot": "Q",
          "name": "Wild Cards",
          "description": "Throws three cards, dealing 60 / 120 / 180 / 240 ( +70% AP ) magic damage .",
          "cooldown": "Cooldown: 6 / 6 / 6 / 6",
          "cost": "Cost: 60 / 70 / 80 / 90",
          "icon": "abilities/twisted-fate/wild-cards.webp",
          "icon_sha256": "1107d4bd7762fe23738d5c89972d3b40eec2e583e03ac5faabe7496e52564bdc"
        },
        {
          "slot": "W",
          "name": "Pick A Card",
          "description": "First Cast : Start Shuffling Twisted Fate's Deck. Second Cast : Pick a card to empower his next attack. Red Cards deal 30 / 50 / 70 / 90 ( +60% AP +100% AD ) magic damage in an area and slow by 35% / 40% / 45% / 50% for 3 seconds. Blue Cards deal 40 / 65 / 90 / 115 ( +75% AP +100% AD ) magic damage and restore 60 / 90 / 120 / 150 Mana. Gold Cards deal 15 / 25 / 35 / 45 ( +50% AP +100% AD ) magic damag e and stun for 1.25 / 1.5 / 1.75 / 2 seconds.",
          "cooldown": "Cooldown: 7 / 7 / 6 / 5",
          "cost": "Cost: 40 / 60 / 80 / 100",
          "icon": "abilities/twisted-fate/pick-a-card.webp",
          "icon_sha256": "6d1cfccae0b1e4b0208a15a2bf0e9628540da35e3f17b3ca7bcb5458cf3f092f"
        },
        {
          "slot": "E",
          "name": "Stacked Deck",
          "description": "Passive : Gains 15% / 20% / 25% / 30% Attack Speed . Every 4th attack deals 50 / 80 / 110 / 140 ( +35% AP ) magic damage . Active : Gain 20% / 25% / 30% / 35% Attack Speed for 3 seconds. During this time, attacking enemy champions rolls Loaded Dice .",
          "cooldown": "Cooldown: 17 / 16 / 15 / 14",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/twisted-fate/stacked-deck.webp",
          "icon_sha256": "7e478156389ffd3b2db75015f329b8454f106ff3c790623afeb7de7855fa8d8b"
        },
        {
          "slot": "R",
          "name": "Destiny",
          "description": "First cast: Reveals all enemy champions for 6 / 7 / 8 seconds. Second Cast : Channel for 1.5 seconds to teleport to target location.",
          "cooldown": "Cooldown: 100 / 90 / 80",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/twisted-fate/destiny.webp",
          "icon_sha256": "5603654719a3acbb93bf5c6691f9b8b5f96960a9f86837ac3542c84ecf5757ae"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "WQEQRQQWRWWEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            2,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            1,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [
          {
            "control_key": "stacked_deck_rank",
            "slot": "E",
            "rank_basis": "learned",
            "ability": "Stacked Deck",
            "engine_semantics": "twisted_fate_stacked_deck passive and explicit active AS",
            "initial_rank": 0,
            "source": "champion.source (exact slot/name); canonical champion_mechanics.json rule identity",
            "engine_evidence": "game_rules.py rank consumers and champion_mechanics.json explicit rule parameters"
          }
        ],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10025.js",
          "snapshot": "sources/b59077d34869359d3fc6caa170ac70bb60d6212995f58533e26ac73937cff965",
          "sha256": "b59077d34869359d3fc6caa170ac70bb60d6212995f58533e26ac73937cff965",
          "retrieved_at": "2026-11-01T15:46:32.431456+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:24",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "灌铅骰子",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "万能牌",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "选牌",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "卡牌骗术",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "命运",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Twitch": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/twitch",
        "snapshot": "sources/b9273def0533c490fdd04090f777e6ecbaebedda68bd8c554411d59161ebb34d",
        "sha256": "b9273def0533c490fdd04090f777e6ecbaebedda68bd8c554411d59161ebb34d",
        "retrieved_at": "2026-11-01T15:46:09.294498+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Deadly Venom",
          "description": "Attacks infect enemies with venom, dealing 1 / 2 / 3 / 4 / 5 ( +3% AP ) true damage over 5 seconds and stacking up to 5 times. Monsters take 130% increased damage from Deadly Venom.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/twitch/deadly-venom.webp",
          "icon_sha256": "389f960b4f675f31ec5fb9a045ee512b7d937637d76deaeebb512184f7f0a0ae"
        },
        {
          "slot": "Q",
          "name": "Ambush",
          "description": "Become Camouflaged and hasted by 10% for 8 / 9 / 10 / 11 seconds, increasing to 20% when nearby enemy champions cannot see Twitch. After exiting Camouflage , Twitch's gains 35% / 40% / 45% / 50% bonus Attack Speed for 6 seconds. Camouflage : Hide from champions by keeping them outside Twitch's detection radius. Attacks and offensive abilities end Camouflage early.",
          "cooldown": "Cooldown: 15 / 15 / 15 / 15",
          "cost": "Cost: 40 / 40 / 40 / 40",
          "icon": "abilities/twitch/ambush.webp",
          "icon_sha256": "636e91fddf0355de6f2f6eb4ed84736a7f26bccfeaf716fa098367219a9c5d2c"
        },
        {
          "slot": "W",
          "name": "Venom Cask",
          "description": "Twitch throws a Venom Cask into the target area, granting vision there and slowing enemies inside by 30% / 35% / 40% / 45% ( +6% AP ). The area lasts 3 seconds and applies 1 stack of Deadly Venom each second to enemies inside.",
          "cooldown": "Cooldown: 12 / 11 / 10 / 9",
          "cost": "Cost: 70 / 70 / 70 / 70",
          "icon": "abilities/twitch/venom-cask.webp",
          "icon_sha256": "4eb0c4abdd771d1a67fa655351b291a56cd7067b05ecccbef63700be6bcf9e47"
        },
        {
          "slot": "E",
          "name": "Contaminate",
          "description": "Deals 30 / 40 / 50 / 60 physical damage to all enemies affected by Deadly Venom , each stack deals 20 / 25 / 30 / 35 ( +35% bonus AD +35% AP ) physical damage to enemies. Enemies with maximum stacks will spread the damage to nearby targets and apply maximum stacks of Deadly Venom to them. Deals 130 physical damage at max stacks. Deals 80% increased damage to monsters. This ability can only be cast while a poisoned target is within 1200 units of Twitch.",
          "cooldown": "Cooldown: 16 / 15 / 14 / 13",
          "cost": "Cost: 35 / 45 / 55 / 65",
          "icon": "abilities/twitch/contaminate.webp",
          "icon_sha256": "a243c5e1b38624924de866d263adfce1264d89a0db8b9503512d4e8e88c0e95d"
        },
        {
          "slot": "R",
          "name": "Spray and Pray",
          "description": "For 6 seconds gain 225 Attack Range and 30 / 45 / 60 bonus Attack Damage and transform attacks into piercing bolts that hit every enemy in a line. Subsequent targets take 15% less damage, down to a minimum of 40% .",
          "cooldown": "Cooldown: 75 / 70 / 65",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/twitch/spray-and-pray.webp",
          "icon_sha256": "6ebb010d7d76dcff26100f219ce7c5640112e158a872e0199ccad4d828725186"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWEREEQRQQWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            8,
            10,
            11
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            4,
            6,
            7
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10053.js",
          "snapshot": "sources/3868367e8895801d38e1d712fb8761dcbe7a9beada6774433c6421e464bcea7f",
          "sha256": "3868367e8895801d38e1d712fb8761dcbe7a9beada6774433c6421e464bcea7f",
          "retrieved_at": "2026-11-01T15:46:32.647258+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:26",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "死亡毒液",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "埋伏",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "剧毒之桶",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "毒性爆发",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "火力全开",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Urgot": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/urgot",
        "snapshot": "sources/172a86c9df5fc57b7b70ebb7779ae59bf3c25d14830f4915555e910c6afa2e49",
        "sha256": "172a86c9df5fc57b7b70ebb7779ae59bf3c25d14830f4915555e910c6afa2e49",
        "retrieved_at": "2026-11-01T15:46:09.400920+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Echoing Flames",
          "description": "Urgot's attacks and Purge periodically trigger blasts from his leg cannons, dealing 31 ( 60% / 75% / 90% / 105% AD ) + 3% / 4% / 5% / 6% of the target's max health as physical damage . (15 / 8 / 4 / 2 second cooldown per leg) Deals 120 max damage against monsters.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/urgot/echoing-flames.webp",
          "icon_sha256": "6d09281f9ad030993c0b94d3909598b93f869ea460c680e52a58e48f066acb09"
        },
        {
          "slot": "Q",
          "name": "Corrosive Charge",
          "description": "Fires an explosive charge that deals 40 / 95 / 150 / 205 ( +70% AD ) physical damage and slows by 45% / 50% / 55% / 60% for 1.25 seconds.",
          "cooldown": "Cooldown: 10 / 9 / 9 / 8",
          "cost": "Cost: 70 / 70 / 70 / 70",
          "icon": "abilities/urgot/corrosive-charge.webp",
          "icon_sha256": "dc8d5404ccef3314d54572f7a20e7ce70600877109554262607d6e81878ad67e"
        },
        {
          "slot": "W",
          "name": "Purge",
          "description": "Shoots the nearest enemy rapidly for 4 seconds, dealing 10 ( +20% / 27.5% / 35% / 42.5% AD ) physical damage and applying on-hits at 70% effectiveness. During this time Urgot's Movement Speed is reduced by 125 / 110 / 95 / 80 and he gains 40% Slow Resist. Re-cast : End Purge. Dealing a minimum of 50 damage to minions and monsters, prioritizes the champion hit most recently by Urgot's abilities. At max rank, Purge gains infinite duration.",
          "cooldown": "Cooldown: 12 / 8 / 4 / 1",
          "cost": "Cost: 30 / 20 / 10",
          "icon": "abilities/urgot/purge.webp",
          "icon_sha256": "564166d578196c4e6a7a2613ce8f64eacbe72ed506009ed0a06d39fb38f9f965"
        },
        {
          "slot": "E",
          "name": "Disdain",
          "description": "Gain a shield that absorbs 70 / 100 / 130 / 160 ( +150% AD +15 bonus HP ) damage for 4 seconds and charges forward, dealing 90 / 130 / 170 / 210 ( +100% AD ) physical damage and stunnng them for 1.5 seconds. Flings the first enemy champion over him and knocks non-champions aside.",
          "cooldown": "Cooldown: 15 / 14 / 13 / 12",
          "cost": "Cost: 60 / 70 / 80 / 90",
          "icon": "abilities/urgot/disdain.webp",
          "icon_sha256": "b1cf069225649d9772df94857da015b1722f4c3fadde7ba8b9d0f43729d99139"
        },
        {
          "slot": "R",
          "name": "Fear Beyond Death",
          "description": "Fires a chem-drill that deals 100 / 225 / 350 ( +70% AD ) physical damage to the first champion hit and impales them for 4 seconds, slowing them by up to 75% based on their missing health. Re-cast : If the impaled target falls below 25% Health, Urgot channels for 1.5 seconds while he reels in and executes them. Upon an execution, nearby enemies are feared for 1.5 seconds. Fear Beyond Death is automatically re-cast if the enemy is below the threshold at the end of the duration.",
          "cooldown": "Cooldown: 60 / 55 / 50",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/urgot/fear-beyond-death.webp",
          "icon_sha256": "9f2d16fd578e55df8a41025a679437a4998b00ec660ec720867244f5b908a3bc"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "EWQWRWWEREEQRQQ"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "W": [
          [
            2,
            4,
            6,
            7
          ]
        ],
        "E": [
          [
            1,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10102.js",
          "snapshot": "sources/06c0af038745576bcca7de63b34950201551164dd2f228e103be0f5b26e42eb5",
          "sha256": "06c0af038745576bcca7de63b34950201551164dd2f228e103be0f5b26e42eb5",
          "retrieved_at": "2026-11-01T15:46:32.681650+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:29",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "回响烈焰",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "腐蚀电荷",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "净除",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "鄙弃",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "超越死亡的恐惧",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Varus": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/varus",
        "snapshot": "sources/4e4b374ef0cbf25d0340999a05790e74510c697e8668ad4c11bf188eca168860",
        "sha256": "4e4b374ef0cbf25d0340999a05790e74510c697e8668ad4c11bf188eca168860",
        "retrieved_at": "2026-11-01T15:46:10.786319+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Living Vengeance",
          "description": "On champion takedowns, gains: - 55% Attack Speed that can exceed the Attack Speed cap - Attack Damage = 20 x bonus AS . - Ability Power = 20 x bonus AS . On non-champion takedowns, gains: - 20% / 25% / 30% Attack Speed - Attack Damage = 10 x bonus AS . - Ability Power = 10 x bonus AS . These bonuses last 5 seconds.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/varus/living-vengeance.webp",
          "icon_sha256": "043040b4fd684ec687cf5d68200c949008f0d6cd8f130551ddbf00808749078d"
        },
        {
          "slot": "Q",
          "name": "Piercing Arrow",
          "description": "Hold : Draws the bow, gradually increasing the range and damage for the next shot. Movement Speed is slowed by 20% while preparing to shoot. Release : Fires an arrow, dealing 80 / 140 / 200 / 260 ( +110% / 120% / 130% / 140% AD ) to 105 / 195 / 285 / 375 ( +150% AD ) physical damage , reduced by 15% per enemy hit ( minimum 33% ).",
          "cooldown": "Cooldown: 15 / 14 / 13 / 12",
          "cost": "Cost: 75 / 80 / 85 / 90",
          "icon": "abilities/varus/piercing-arrow.webp",
          "icon_sha256": "ea6165d971cb4aefba7022cfd1a0ede7c2b5aabb4084b4fb72d1de64e7df996d"
        },
        {
          "slot": "W",
          "name": "Blighted Quiver",
          "description": "Passive : Attacks deal 15 / 35 / 35 / 45 ( +35% AP ) magic damage and apply Blight for 6 seconds ( stacks 3 times). Varus' other abilities detonate Blight , dealing 3% / 3.5% / 4% / 4.5% ( +0.012% AP ) magic damage of the target's max Health per stack. Detonating Blight on enemy champions or epic monsters reduces his basic ability cooldowns by 13% per stack. Active : Varus's next Piercing Arrow deals 6% - 9% of the target's missing Health as bonus magic damage , increased by 0% to 50% based on charge time. Detonating Blight on monsters deals up to 120 damage per stack.",
          "cooldown": "Cooldown: 25 / 25 / 25 / 25",
          "cost": "",
          "icon": "abilities/varus/blighted-quiver.webp",
          "icon_sha256": "6bcb6213833ab0a2bfbd3ebe9b1a58b8018ea2d1797d326de01897f0f8600de7"
        },
        {
          "slot": "E",
          "name": "Hail of Arrows",
          "description": "Fires a hail of arrows that deal 70 / 115 / 160 / 205 ( +90% AD ) physical damage and desecrates the ground for 4 seconds. Desecrated ground slows enemies by 25% and applies 40% Grievous Wounds . Grievous Wounds reduces the effectiveness of Healing and Regeneration effects.",
          "cooldown": "Cooldown: 13 / 12 / 11 / 10",
          "cost": "Cost: 80 / 80 / 80 / 80",
          "icon": "abilities/varus/hail-of-arrows.webp",
          "icon_sha256": "4fd011cba6fa17f8403bd62ed733a0e3d0067ccb3f1525486f8e8da38610f3ac"
        },
        {
          "slot": "R",
          "name": "Chain of Corruption",
          "description": "Flings out a tendril of corruption that deals 150 / 250 / 350 ( +85% AP ) magic damage and roots the first enemy champion hit for 2 seconds. The corruption then spreads toward nearby enemy champions, also immobilizing them on contact. Immobilized units gain 3 Blight stacks over the next 1.5 seconds.",
          "cooldown": "Cooldown: 75 / 65 / 55",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/varus/chain-of-corruption.webp",
          "icon_sha256": "84659590c1c3aa7a4405a8db43e57ec7bbcd10e447fb876531c88fb17fe43acf"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWEWRWWQRQQEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            8,
            10,
            11
          ]
        ],
        "W": [
          [
            2,
            4,
            6,
            7
          ]
        ],
        "E": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [
          {
            "control_key": "blighted_quiver_rank",
            "slot": "W",
            "rank_basis": "learned",
            "ability": "Blighted Quiver",
            "engine_semantics": "varus_blighted_quiver on-hit",
            "initial_rank": 0,
            "source": "champion.source (exact slot/name); canonical champion_mechanics.json rule identity",
            "engine_evidence": "game_rules.py rank consumers and champion_mechanics.json explicit rule parameters"
          }
        ],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10093.js",
          "snapshot": "sources/d465188a8f4237fe5703dc8ff604bc6f5f0afee0c3916f2276b30cc9bdb4cb5c",
          "sha256": "d465188a8f4237fe5703dc8ff604bc6f5f0afee0c3916f2276b30cc9bdb4cb5c",
          "retrieved_at": "2026-11-01T15:46:32.682038+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:28",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "复仇之欲",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "穿刺之箭",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "枯萎箭袋",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "恶灵箭雨",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "腐败锁链",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Vayne": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/vayne",
        "snapshot": "sources/8a3c5d04f489a0f1379bd8814a9cd483833f006859afe40cf7cc6c6c1192fdf3",
        "sha256": "8a3c5d04f489a0f1379bd8814a9cd483833f006859afe40cf7cc6c6c1192fdf3",
        "retrieved_at": "2026-11-01T15:46:09.467324+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Night Hunter",
          "description": "Gain 10 Movement Speed when moving towards enemy champions. Final Hour : Gains 7 0 Movement Speed instead.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/vayne/night-hunter.webp",
          "icon_sha256": "543e1fc12e02580476ad44998b20e6b9a7ab3b94a0f19c407df898b3c9f3e59c"
        },
        {
          "slot": "Q",
          "name": "Tumble",
          "description": "Dashes forward and empowers her next attack to deal an additional 24 ( 50% / 60% / 70% / 80% AD ) physical damage . Final Hour : Gains 1 second of invisibility on cast. Tumble does not go through walls.",
          "cooldown": "Cooldown: 5 / 4 / 3 / 2",
          "cost": "Cost: 30 / 30 / 30 / 30",
          "icon": "abilities/vayne/tumble.webp",
          "icon_sha256": "7ea08b51207403dbc80be789cf479f53b9ac2e90a929a5877c60551d4a160d19"
        },
        {
          "slot": "W",
          "name": "Silver Bolts",
          "description": "Passive : Every third consecutive attack or ability on the same target deals additional 6% / 7% / 8% / 9% true damage of the enemy's maximum Health. Active : Gains 10% / 15% / 20% / 25% Attack Speed and 10% Omnivamp for 3 seconds. Passive deals at least 50 / 65 / 80 / 95 true damage . Passive damage is capped at 200 against monsters.",
          "cooldown": "Cooldown: 18 / 17 / 16 / 15",
          "cost": "Cost: 45 / 45 / 45 / 45",
          "icon": "abilities/vayne/silver-bolts.webp",
          "icon_sha256": "2f669d6d071fe519a4873b10d0690228c56c2ea858ed5e160c99d145690f2667"
        },
        {
          "slot": "E",
          "name": "Condemn",
          "description": "Fires a bolt that deals 50 / 80 / 110 / 140 ( +55% AD ) physical damage and knocks back. If enemies are knocked into a wall, they take an additional 105 / 145 / 185 / 225 ( +75% AD ) physical damage and are stunned for 1.5 seconds.",
          "cooldown": "Cooldown: 21 / 18 / 15 / 12",
          "cost": "Cost: 90 / 90 / 90 / 90",
          "icon": "abilities/vayne/condemn.webp",
          "icon_sha256": "cb6e8d9f7a369c38db26b96d48484e6989a4f37835d135630db0591b4121f4a6"
        },
        {
          "slot": "R",
          "name": "Final Hour",
          "description": "Gains 30 / 40 / 50 Attack Damage and strengthens Night Hunter and Tumble for 8 / 10 / 12 seconds. When an enemy champion damaged by Vayne dies within 3 seconds, Final Hour's duration is extended by 4 seconds, up to an additional 8 / 10 / 12 seconds.",
          "cooldown": "Cooldown: 70 / 65 / 60",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/vayne/final-hour.webp",
          "icon_sha256": "2f8b75dc795c5482a95f06ad41ac4fbcb92dbd383be5c5f8788539f091a5411f"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWEQRQQWRWWEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [
          {
            "control_key": "silver_bolts_rank",
            "slot": "W",
            "rank_basis": "learned",
            "ability": "Silver Bolts",
            "engine_semantics": "vayne_silver_bolts passive and explicit active AS",
            "initial_rank": 0,
            "source": "champion.source (exact slot/name); canonical champion_mechanics.json rule identity",
            "engine_evidence": "game_rules.py rank consumers and champion_mechanics.json explicit rule parameters"
          }
        ],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10010.js",
          "snapshot": "sources/124f60af277ae8171b7bdec06c30515e163d4e116d0b74d9bb322090e1103821",
          "sha256": "124f60af277ae8171b7bdec06c30515e163d4e116d0b74d9bb322090e1103821",
          "retrieved_at": "2026-11-01T15:46:32.681871+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:23",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "暗夜猎手",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "闪避突袭",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "圣银弩箭",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "恶魔审判",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "终极时刻",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Veigar": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/veigar",
        "snapshot": "sources/35861ce2358ef55be293b0d2371406b71428c06764c243839d558fc3433ca083",
        "sha256": "35861ce2358ef55be293b0d2371406b71428c06764c243839d558fc3433ca083",
        "retrieved_at": "2026-11-01T15:46:09.619718+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Phenomenal Evil Power",
          "description": "Striking an enemy champion with an ability grants Veigar a stack of Phenomenal Evil. Takedowns grant an additional 5 stacks. Phenomenal Evil gives Veigar 1 ability power per stack.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/veigar/phenomenal-evil-power.webp",
          "icon_sha256": "4bcc9e51dc66465b69319978b23dd835b05db1568796f1537ace11024320f68c"
        },
        {
          "slot": "Q",
          "name": "Baleful Strike",
          "description": "Veigar unleashes a bolt of dark energy, dealing 65 / 125 / 185 / 245 ( +55% / 60% / 65% / 70% AP ) magic damage to the first two enemies hit.",
          "cooldown": "Cooldown: 6 / 5 / 5 / 4",
          "cost": "Cost: 35 / 40 / 45 / 50",
          "icon": "abilities/veigar/baleful-strike.webp",
          "icon_sha256": "aba9f9a8cf273b3a714f6317c52457746bc3c1d1b4bdaed07768fb2b80404c14"
        },
        {
          "slot": "W",
          "name": "Dark Matter",
          "description": "Veigar summons dark matter from the sky, dealing 100 / 160 / 220 / 280 ( +95% AP ) magic damage . Every 50 stacks of Phenomenal Evil reduce this ability's cooldown by 10% .",
          "cooldown": "Cooldown: 8 / 8 / 8 / 8",
          "cost": "Cost: 65 / 70 / 75 / 80",
          "icon": "abilities/veigar/dark-matter.webp",
          "icon_sha256": "f41462ca0aa13bb2691ae32fe3328353a6624ece11469db4c5e62235ce903641"
        },
        {
          "slot": "E",
          "name": "Event Horizon",
          "description": "Veigar creates a cage that stuns enemies that pass through for 1.75 / 2 / 2.25 / 2.5 seconds. The cage lasts for 3 seconds. Veigar's Dark Matter auto casts will prioritize targets stunned by Event Horizon .",
          "cooldown": "Cooldown: 18 / 17 / 16 / 15",
          "cost": "Cost: 75 / 80 / 85 / 90",
          "icon": "abilities/veigar/event-horizon.webp",
          "icon_sha256": "c63216920d1f62c2dd27de2caf53bcd96abdd08c625624161098de4a1cbaae94"
        },
        {
          "slot": "R",
          "name": "Primordial Burst",
          "description": "Veigar blasts an Enemy Champion with primal magic to deal 185 / 250 / 315 ( +75% AP ) magic damage to them, increased by 0% - 100% based on the target's missing health. Deals max damage to enemies below 35% health.",
          "cooldown": "Cooldown: 60 / 55 / 50",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/veigar/primordial-burst.webp",
          "icon_sha256": "539ca0dd59258416991783ffc2008580c6425e5cbed3e0de64ff21b3caed2794"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWEQRQQWRWWEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10122.js",
          "snapshot": "sources/32da8b834207514af5d042651d053786e811f95a48ae0bbf451d8afe4404d998",
          "sha256": "32da8b834207514af5d042651d053786e811f95a48ae0bbf451d8afe4404d998",
          "retrieved_at": "2026-11-01T15:46:32.670768+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:29",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "超凡邪力",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "黑暗祭祀",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "黑暗物质",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "扭曲空间",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "能量爆裂",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Vel'Koz": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/velkoz",
        "snapshot": "sources/ecb35b2291ca147ecf9eded6937f4682c7ca1e33c3ae56ffddb3c15034f35b90",
        "sha256": "ecb35b2291ca147ecf9eded6937f4682c7ca1e33c3ae56ffddb3c15034f35b90",
        "retrieved_at": "2026-11-01T15:46:09.669715+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Organic Deconstruction",
          "description": "Hitting an enemy with an ability applies a stack of Deconstruction for 7 seconds. Enemies with 3 stacks take 28 ( +45% AP ) true damage . Attacks refresh the duration of Deconstruction.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/vel-koz/organic-deconstruction.webp",
          "icon_sha256": "d1119d087111015b4937bb4d5c40c34158f52f0652f2c6a22a1c2bde27f616c1"
        },
        {
          "slot": "Q",
          "name": "Plasma Fission",
          "description": "Shoots a plasma bolt that deals 80 / 135 / 190 / 245 ( +75% AP ) magic damage and slows by 70% decaying over 1 / 1.5 / 2 / 2.5 seconds. At the end of its range or on hitting a target, the bolt splits and fires two new bolts at a 90 degree angle. Recasting this ability splits the bolt immediately. Killing an enemy with this ability restores 20 / 23 / 26 / 29 Mana .",
          "cooldown": "Cooldown: 7 / 7 / 7 / 7",
          "cost": "Cost: 40 / 45 / 50 / 55",
          "icon": "abilities/vel-koz/plasma-fission.webp",
          "icon_sha256": "9e4dcb6bd323393161436d5979ec892fbbe4e8a4192ae555c8a28d3a5d7d1f84"
        },
        {
          "slot": "W",
          "name": "Void Rift",
          "description": "Opens a rift to the void, dealing 3 0 / 60 / 90 / 120 ( +20% AP ) magic damage to enemies on it. The rift then erupts after a brief delay, dealing 45 / 85 / 125 / 165 ( +25% AP ) magic damage . Charge : Gains a charge every 16 / 15 / 14 / 13 seconds, storing up to 2 charges.",
          "cooldown": "Cooldown: 1 / 1 / 1 / 1",
          "cost": "Cost: 50 / 55 / 60 / 65",
          "icon": "abilities/vel-koz/void-rift.webp",
          "icon_sha256": "aa92d41b5845e19aa3bbd1236ae75ef1e78a25210fca9902cee52810ccbc7a66"
        },
        {
          "slot": "E",
          "name": "Tectonic Disruption",
          "description": "Disrupts a target area, causing it to explode, dealing 70 / 110 / 150 / 190 ( +30% AP ) magic damage to enemies within and knocking them up for 0.75 seconds. Casting this ability near Vel'Koz creates an anomaly that knocks back enemies nearby. The closer the cast is to Vel'Koz, the further the enemies are knocked back.",
          "cooldown": "Cooldown: 13 / 12 / 11 / 10",
          "cost": "Cost: 50 / 55 / 60 / 65",
          "icon": "abilities/vel-koz/tectonic-disruption.webp",
          "icon_sha256": "ac7e53df6204b344035b4c2004a7a36b1ccd628e17dc825e4f24d8724750029e"
        },
        {
          "slot": "R",
          "name": "Life Form Disintegration Ray",
          "description": "Passive : Enemies with max stacks of Deconstruction are marked as Researched. Active : Channels a ray of energy in the direction of the joystick, dealing a total of 450 / 625 / 800 ( +125% AP ) magic damage over 2.5 seconds and slowing by 20% . Enemies hit by the ray gain one stack of Deconstruction every 0.7 seconds. Researched enemies take an equal amount of true damage instead.",
          "cooldown": "Cooldown: 80 / 70 / 60",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/vel-koz/life-form-disintegration-ray.webp",
          "icon_sha256": "37d8716b5ac907cf22a59c11e1d711c9f85980f7d95cadea28e6edc4a53987df"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "WQEQRQQWRWWEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            2,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            1,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10129.js",
          "snapshot": "sources/7b9dc476275d479c5c498be59ed66908fe4efc12be79788f92f2f31ceae90ace",
          "sha256": "7b9dc476275d479c5c498be59ed66908fe4efc12be79788f92f2f31ceae90ace",
          "retrieved_at": "2026-11-01T15:46:32.682549+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:30",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "有机体解构",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "等离子裂变",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "虚空裂隙",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "构造分解",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "生命形态瓦解射线",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Vex": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/vex",
        "snapshot": "sources/5e9d0c36e3699d414c3648efa5947ee2ce5f51b8366a4ba9d98443319acb401d",
        "sha256": "5e9d0c36e3699d414c3648efa5947ee2ce5f51b8366a4ba9d98443319acb401d",
        "retrieved_at": "2026-11-01T15:46:09.744016+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Doom 'n Gloom",
          "description": "Every 22 seconds Vex become afflicted with Doom , causing her next basic Ability to interrupt dashes and Fear enemies for 0.75 seconds. Whenever a nearby enemy dashes or blinks, Vex marks them with Gloom for 6 seconds, Vex's next Attack against a Gloomed enemy deals an additional 26 ( +25% AP ) magic damage and reduces this Ability's Cooldown by 25% . Non-champion targets take 40% damage and refund 10% of this Ability's Cooldown.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/vex/doom-n-gloom.webp",
          "icon_sha256": "701c42ed9142125a20faeecce3c34ccb8c924e773e23674a7abc36cde29f5970"
        },
        {
          "slot": "Q",
          "name": "Mistral Bolt",
          "description": "Vex Launches a wave of mist that deals 60 / 120 / 180 / 240 ( +65% AP ) magic damage . After a delay, the wave becomes smaller and faster. Consumes Gloom on enemies hit.",
          "cooldown": "Cooldown: 7 / 6 / 5 / 4",
          "cost": "Cost: 50 / 55 / 60 / 65",
          "icon": "abilities/vex/mistral-bolt.webp",
          "icon_sha256": "20d199be916eebd99d57c30295f956c619c3114d7396c8f811cd40b90d4b3f5a"
        },
        {
          "slot": "W",
          "name": "Personal Space",
          "description": "Vex gains a 50 / 85 / 120 / 155 ( +70% AP ) shield for 2.5 seconds and emits a shockwave that deals 65 / 120 / 175 / 230 ( +30% AP ) magic damage . Consumes Gloom on enemies hit.",
          "cooldown": "Cooldown: 18 / 16 / 14 / 12",
          "cost": "Cost: 75 / 75 / 75 / 75",
          "icon": "abilities/vex/personal-space.webp",
          "icon_sha256": "a0e7c0d7eea651e40fe7271046fc7eefdc1d34d1443614c89ea25359bc26df25"
        },
        {
          "slot": "E",
          "name": "Looming Darkness",
          "description": "Vex commands Shadow to fly to a location. Upon arriving, it deals 50 / 80 / 110 / 140 ( +40% / 45% / 50% / 55% AP ) magic damage and Slows by 30% / 35% / 40% / 45% for 2 seconds. Applies Gloom to enemies hit. Enemies Feared by this Ability move away from the center rather than from Vex. The size of the affected area increases the further Vex casts this from herself.",
          "cooldown": "Cooldown: 13 / 13 / 13 / 13",
          "cost": "Cost: 80 / 90 / 100 / 110",
          "icon": "abilities/vex/looming-darkness.webp",
          "icon_sha256": "01f940a359a6cb0a0a5dc2f3741f635293e6145f1d182f9579b0534a3235dc10"
        },
        {
          "slot": "R",
          "name": "Shadow Surge",
          "description": "Shadow excitedly surges forward, dealing 75 / 125 / 175 ( +20% AP ) magic damage and marking the first enemy champion hit for 4 seconds. Recast : Dash to the marked champion, dealing 150 / 250 / 350 ( +50% AP ) magic damage on arrival. If the marked champion dies within 6 seconds of taking damage from this Ability, its cooldown is temporarily reset.",
          "cooldown": "Cooldown: 80 / 70 / 60",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/vex/shadow-surge.webp",
          "icon_sha256": "32ce3f9bb8f85e216d9ccdaf34c9a8654907fcc5bb176d5094e431d9bd72f680"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "EQWQRQQWRWWEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            2,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            1,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10141.js",
          "snapshot": "sources/c34aedadd11f9e86623684a638ca163467eb185bdcdedf3feabd6513d5caf551",
          "sha256": "c34aedadd11f9e86623684a638ca163467eb185bdcdedf3feabd6513d5caf551",
          "retrieved_at": "2026-11-01T15:46:32.894601+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:30",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "终焉暮气",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "寒心波云",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "生人勿近",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "溟濛渐染",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "愁煞",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Vi": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/vi",
        "snapshot": "sources/d7ec2fd35ab8c0ba795c2fc377446584e3192afdeedff6ff9476157c0ca0b07c",
        "sha256": "d7ec2fd35ab8c0ba795c2fc377446584e3192afdeedff6ff9476157c0ca0b07c",
        "retrieved_at": "2026-11-01T15:46:09.780679+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Denting Blows",
          "description": "Every 3rd attack on the same enemy deals 4.8% - 9% ( +0.03% AD ) bonus physical damage of their max Health, reduces their Armor by 20% , and grants Vi 27% Attack Speed for 4 seconds. Deals 300 max damage vs. monsters.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/vi/denting-blows.webp",
          "icon_sha256": "641e4034be9a5699f302efc38c8ede07c71dd041c03ba798a94cdbef3d1af380"
        },
        {
          "slot": "Q",
          "name": "Vault Breaker",
          "description": "Hold : Charges up a powerful punch, slowing Movement Speed by 15% while increasing the punch's damage and dash distance. Cast: Dashes forward dealing 60 / 95 / 130 / 165 ( +60% bonus AD ) to 120 / 190 / 260 / 330 ( +120% bonus AD ) physical damage and applying Denting Blows to all enemies hit. Colliding with an enemy champion stops the punch and knocks them back. Deals 75% damage to minions and monsters.",
          "cooldown": "Cooldown: 9 / 8 / 7 / 6",
          "cost": "Cost: 50 / 60 / 70 / 80",
          "icon": "abilities/vi/vault-breaker.webp",
          "icon_sha256": "44ba27364c09e58347a555a74853ae52e1ca09e7ca960d3768bb871302abcf2c"
        },
        {
          "slot": "W",
          "name": "Blast Shield",
          "description": "Passive : Hitting an enemy with an attack or ability grants a stack of Blast Shield, up to 5 stacks. Active : Generates a shield that aborbs 60 / 85 / 110 / 135 damage for 3 seconds. Each stack consumed adds 10 ( 1.5% / 2% / 2.5% / 3% max HP ) to the shield. At max stacks also grants a burst of 47% Movement Speed . Blast Shield stacks fall off one at a time and a max of 1 stack is added per attack or ability.",
          "cooldown": "Cooldown: 10 / 9 / 8 / 7",
          "cost": "Cost: 30 / 20 / 10",
          "icon": "abilities/vi/blast-shield.webp",
          "icon_sha256": "308f149a44c2000c7703ab191028db98aa0fc93922f6805527ac551d4b54b361"
        },
        {
          "slot": "E",
          "name": "Excessive Force",
          "description": "Empowers Vi's next attack to deal 20 / 45 / 70 / 95 ( +15% AD +70% AP ) bonus physical damage to the target and enemies behind it. Vi stores a new charge every 11 / 10 / 9 / 8 seconds and can hold 2 charges at once.",
          "cooldown": "Cooldown: 1 / 1 / 1 / 1",
          "cost": "Cost: 20 / 30 / 40 / 50",
          "icon": "abilities/vi/excessive-force.webp",
          "icon_sha256": "6e2489dc39f9e130b541372e0d57a42dbbdd38aca9210370a504e06afde8311a"
        },
        {
          "slot": "R",
          "name": "Assault and Battery",
          "description": "Chases down an enemy champion, knocking them up for 1.25 second and dealing 150 / 300 / 450 ( +140% AD ) physical damage . Vi Reveals her target and cannot be stopped while chasing it down. Enemies in the way are knocked aside and take 75% of the damage.",
          "cooldown": "Cooldown: 80 / 70 / 60",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/vi/assault-and-battery.webp",
          "icon_sha256": "35015575e17dea83a063913122197584b983e39ea05729dd38f81cc5af6b76b2"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWQRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10050.js",
          "snapshot": "sources/7cfea2be43b615534826f5bf0de3034ec1c2052f16d63d9a3b07f28a74b1ca52",
          "sha256": "7cfea2be43b615534826f5bf0de3034ec1c2052f16d63d9a3b07f28a74b1ca52",
          "retrieved_at": "2026-11-01T15:46:32.920167+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:26",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "爆弹重拳",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "强能冲拳",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "爆裂护盾",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "透体之劲",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "天霸横空烈轰",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Viego": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/viego",
        "snapshot": "sources/d0ce11c80669086eba6512a0551c299e51de0900ba143944c9e14a42116f5afe",
        "sha256": "d0ce11c80669086eba6512a0551c299e51de0900ba143944c9e14a42116f5afe",
        "retrieved_at": "2026-11-01T15:46:09.917155+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Sovereign's Domination",
          "description": "The souls of enemy champions that die within 3 seconds of being damaged by Viego become wraiths that remain in place for 8 seconds.Viego can channel for 1 second to Possess them for 10 seconds. During Possession: - Becomes untargetable - Gains a free cast of Heartbreaker - Gains 10% Movement Speed when moving toward enemy champions - Gains access to the Possessed champion's basic abilities, attacks and items - Heals for 5% ( 2 + 4% bonus AD + 2% AP +5 bonus AS ) of the target's max Health Viego cannot use the Possessed champion's enchantment item actives.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/viego/sovereign-s-domination.webp",
          "icon_sha256": "572d1d06d72723feca2214eb19aa6fa8b0628ebd8acabcf8b872d2b5c5ee808c"
        },
        {
          "slot": "Q",
          "name": "Blade of the Ruined King",
          "description": "Passive : Attacks deal bonus physical damage equal to 3% / 4% / 5% / 6% of the target's current Health . After damaging an enemy with an ability, Viego's first attack against them within 5 seconds strikes twice, dealing physical damage equal to 15% of AD (+ 15% AP ) and healing himself for 135% of the damage dealt. Passive bonuses are kept during Possession. Active : Stabs forward, dealing 25 / 45 / 65 / 85 ((+ 70% AD ) * ( 1 + 0.85% bonus Critical rate )) physical damage . This ability's cast time reduces with Attack Speed.",
          "cooldown": "Cooldown: 5 / 4 / 4 / 3",
          "cost": "",
          "icon": "abilities/viego/blade-of-the-ruined-king.webp",
          "icon_sha256": "e1dc8284033dd5f2326756e106f9207226ff2efff02e617df8b8a39c374f5612"
        },
        {
          "slot": "W",
          "name": "Spectral Maw",
          "description": "Charge : Gathers Black Mist and charges up for 3 seconds, slowing himself by 10% during this period. Cast : Dashes forward and hurls the ball of gathered Black Mist, dealing 80 / 150 / 220 / 290 ( +90% AP ) magic damage to the first enemy hit and stunning them for 0.4 - 1.25 seconds ( based on charge time).",
          "cooldown": "Cooldown: 7 / 7 / 7 / 7",
          "cost": "",
          "icon": "abilities/viego/spectral-maw.webp",
          "icon_sha256": "4eec2526c4b097b81b4c6a91f8187e9689645e13c690b34dd01a4b213690338b"
        },
        {
          "slot": "E",
          "name": "Harrowed Path",
          "description": "Sends forth a specter to haunt the first terrain hit with Black Mist for 6 seconds. While inside the Black Mist, Viego becomes camouflaged and gains 25% / 30% / 35% / 40% Movement Speed ( +0.04% AP ) and 35% / 40% / 45% / 50% Attack Speed .",
          "cooldown": "Cooldown: 12 / 10 / 8 / 6",
          "cost": "",
          "icon": "abilities/viego/harrowed-path.webp",
          "icon_sha256": "f908aac8bb6d3c46b57eb59493e9121c2d348b64a1c28ba6d7ef30a8cd7ef4fe"
        },
        {
          "slot": "R",
          "name": "Heartbreaker",
          "description": "Teleports to a target location nearby, dealing physical damage equal to 120% AD * ( 1 + 0.7 Crit rate ) to all the champions in the area. Deal 14% / 17% / 20% ( +5% bonus AD ) of the target's missing Health to the enemy champion with the lowest percentage of Health, slowing them by 99% for 0.25 seconds and knocking back enemies nearby them.",
          "cooldown": "Cooldown: 90 / 75 / 60",
          "cost": "",
          "icon": "abilities/viego/heartbreaker.webp",
          "icon_sha256": "255485d7310607d3f46bfaa9f45c122bd654e4f81353b2a3a6756ee49c218757"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWQERQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            3,
            6,
            7
          ]
        ],
        "W": [
          [
            2,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            4,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [
          {
            "control_key": "blade_rank",
            "slot": "Q",
            "rank_basis": "learned",
            "ability": "Blade of the Ruined King",
            "engine_semantics": "viego_blade_current_health passive",
            "initial_rank": 0,
            "source": "champion.source (exact slot/name); canonical champion_mechanics.json rule identity",
            "engine_evidence": "game_rules.py rank consumers and champion_mechanics.json explicit rule parameters"
          }
        ],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10057.js",
          "snapshot": "sources/d411a72a9de49400959bcf82ad8040e7de530588aa2561db3a918d648e3d4ff0",
          "sha256": "d411a72a9de49400959bcf82ad8040e7de530588aa2561db3a918d648e3d4ff0",
          "retrieved_at": "2026-11-01T15:46:32.929987+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:26",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "君命已决",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "破败王剑",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "千载幽咽",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "茫茫焦土",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "痛贯天灵",
            "rank_detail_count": 4
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Viktor": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/viktor",
        "snapshot": "sources/752f3853a8421912934d44033bb0f7af95041444b4fc3b5edca92e33351df5f0",
        "sha256": "752f3853a8421912934d44033bb0f7af95041444b4fc3b5edca92e33351df5f0",
        "retrieved_at": "2026-11-01T15:46:11.400709+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Glorious Evolution",
          "description": "Gains Hex Fragments whenever Viktor kills an enemy: - Killing minions or normal monsters grants 3 Hex Fragments. - Killing epic monsters, siege units, or super minions grants 5 Hex Fragments. - Champion takedowns grants 25 Hex Fragments. Every 100 Hex Fragments Viktor gains permanently upgrades an active ability. When all of his basic abilities are upgraded, the Hexcore will be perfected, augmenting Chaos Storm .",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/viktor/glorious-evolution.webp",
          "icon_sha256": "9d465f27a940db8132ded377940ea168948b7619dd9f1c0446e8c6acc538d8ee"
        },
        {
          "slot": "Q",
          "name": "Siphon Power",
          "description": "Blasts an enemy, dealing 55 / 70 / 85 / 100 ( +35% AP ) magic damage and gaining a shield that absorbs up to 30 / 55 / 80 / 105 ( +15% AP ) damage over 2.5 seconds. The next attack within 3.5 seconds deals 20 / 40 / 60 / 80 ( +100% AD +40% AP ) bonus magic damage . Upgrade - Turbocharge : This ability's shield absorbs up to 50 / 90 / 130 / 170 ( +25% AP ) damage and Viktor gains 3 0% bonus Movement Speed for 2.5 seconds.",
          "cooldown": "Cooldown: 8 / 7 / 6 / 5",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/viktor/siphon-power.webp",
          "icon_sha256": "0c3359a418e640a87e3109c6c5a86d57b592b99d127807daea7f2e388f658e62"
        },
        {
          "slot": "W",
          "name": "Gravity Field",
          "description": "Deploys a gravity field for 4 seconds, slowing enemies by 25% / 30% / 35% / 40% . After a short delay, the field applies a Gravitation stack to the target every 0.5 seconds, stacking up to 3 times. At 3 stacks, all stacks are consumed to stun the target for 1.5 seconds. The target then becomes immune to Gravitation for a short duration. Upgrade - Slow : The first time Siphon Power , Death Ray , and Chaos Storm deal damage to enemies slow them by an additional 20% .",
          "cooldown": "Cooldown: 13 / 12 / 11 / 10",
          "cost": "Cost: 65 / 65 / 65 / 65",
          "icon": "abilities/viktor/gravity-field.webp",
          "icon_sha256": "bf8bea60f503129ff637457c4764029759253a916eba1203a79adb9cc963c0bd"
        },
        {
          "slot": "E",
          "name": "Death Ray",
          "description": "Fires a chaos beam that cuts across the battlefield in a line, dealing 75 / 120 / 165 / 210 ( +30% AP ) magic damage to enemies in its path. Upgrade - Blastquake : After a brief delay, an explosion follows the beam's wake, dealing 30 / 70 / 110 / 150 ( +60% AP ) magic damage .",
          "cooldown": "Cooldown: 10 / 9 / 8 / 7",
          "cost": "Cost: 60 / 60 / 60 / 60",
          "icon": "abilities/viktor/death-ray.webp",
          "icon_sha256": "4361e15661218dfdb6dd4bc43d2bd9c9417f6fa2dd9137b49e43bbfb204bb046"
        },
        {
          "slot": "R",
          "name": "Chaos Storm",
          "description": "Conjures a Chaos Storm at the target location for 5.5 seconds, dealing 150 / 225 / 330 ( +60% AP ) magic damage to enemies within the area and disrupting their channeled abilities. The storm then deals 50 / 90 / 130 ( +40% AP ) magic damage to enemies within it every second. Upgrade - Howl : Chaos Storm moves faster. Champion takedowns empower the storm, extending its duration by 3.5 seconds and increasing its area of effect. The storm can be empowered up to 5 times. The closer the storm is to Viktor, the faster it moves.",
          "cooldown": "Cooldown: 75 / 65 / 55",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/viktor/chaos-storm.webp",
          "icon_sha256": "231615c6c2679672cc09f02b3d20d23792744695136f5e5e9cc88b801669b85f"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWEREEQRQQWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            8,
            10,
            11
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            4,
            6,
            7
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10144.js",
          "snapshot": "sources/10292ccde12a6b741188af020173c9d42325ef43d83e08c38de785317c6c20f7",
          "sha256": "10292ccde12a6b741188af020173c9d42325ef43d83e08c38de785317c6c20f7",
          "retrieved_at": "2026-11-01T15:46:32.927571+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:30",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "光荣进化",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "虹吸能量",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "重力场",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "海克斯射线",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "奥能风暴",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Vladimir": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/vladimir",
        "snapshot": "sources/eed58d47a2e7bdb1bc880d7747c3c9b88cb6debc6cc0caff30fe46440ac7dc67",
        "sha256": "eed58d47a2e7bdb1bc880d7747c3c9b88cb6debc6cc0caff30fe46440ac7dc67",
        "retrieved_at": "2026-11-01T15:46:10.163803+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Crimson Pact",
          "description": "Gains Ability Power equal to 5% of Health and Bonus Health equal to 150% Ability Power . (Both effects do not mutually stack)",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/vladimir/crimson-pact.webp",
          "icon_sha256": "ea4ef0335619e6aed66fe64d19b7033d26a4433e446c1f88ab86d5c03fed11a6"
        },
        {
          "slot": "Q",
          "name": "Transfusion",
          "description": "Drains life from enemies, dealing 70 / 100 / 130 / 160 ( +60% AP ) magic damage and restoring 15 / 20 / 25 / 30 ( +35% AP ) Health . When this ability's cooldown ends, generates a stack of Bloodthirst. At 2 stacks, gain 1 0% bonus Movement Speed for 0.5 seconds and enters Crimson Rush for 2.5 seconds, gradually depleting all Bloodthirst stacks over this time. Crimson Rush : While in this state, empowers the next cast of Transfusion to deal 85% bonus damage and heal himself for 30 - 170 + ( 5% +0.03% AP ) of missing Health . When cast, consumes all Bloodthirst stacks and ends Crimson Rush. The empowered version of this ability heals for 35% against minions.",
          "cooldown": "Cooldown: 9 / 8 / 6 / 5",
          "cost": "",
          "icon": "abilities/vladimir/transfusion.webp",
          "icon_sha256": "95df20d7e96ab8fa848c70a78384cabac840614233e8f2af6e424423ae2ddd86"
        },
        {
          "slot": "W",
          "name": "Sanguine Pool",
          "description": "Sinks into a blood pool, becoming untargetable for 2 seconds. Also gains 27.5% bonus Movement Speed that gradually decays over 1 second. While the blood pool is active, enemies within the blood pool take 20 / 40 / 60 / 80 ( +2% of Maximul Health ) magic damage every 0.5 seconds and are slowed by 40% . Also restores Health equal to 15% of the damage dealt.",
          "cooldown": "Cooldown: 25 / 22 / 19 / 16",
          "cost": "",
          "icon": "abilities/vladimir/sanguine-pool.webp",
          "icon_sha256": "8b93e32a2b65e3b26ae5b2d0eba4128986f1b4d715cbda63ebeaa2d5df5e3d9c"
        },
        {
          "slot": "E",
          "name": "Tides of Blood",
          "description": "Charges for up to 1.5 seconds at the cost of 2 - 8% of his Health , dealing 30 / 50 / 70 / 90 ( +35% AP +3% of max Health ) magic damage to nearby enemies, increased by up to 100% after charging. Charging for 1 second or more consumes the max possible Health cost, but if he is below 12% of his Health , charging will not cost any Health. After charging for 1 second, he becomes slowed by 20% and also slows enemies hit by 40% / 45% / 50% / 55% .",
          "cooldown": "Cooldown: 13 / 10 / 8 / 7",
          "cost": "",
          "icon": "abilities/vladimir/tides-of-blood.webp",
          "icon_sha256": "654a7f6ec10b2e9a9af167de95a29a40e04507b9f280c1409b40618f61369539"
        },
        {
          "slot": "R",
          "name": "Hemoplague",
          "description": "Infects an area with a toxic plague that infects enemies hit for 4 seconds, after with the plague explodes, dealing 150 / 250 / 350 ( +70% AP ) magic damage to infected targets. Also deals 10% of the damage taken by the targets during the infection period as bonus magic damage . After 0.4 seconds, the first infected enemy champion restores 150 / 250 / 350 ( +70% AP ) Health to Vladimir. Every subsequent champion provides 40% healing.",
          "cooldown": "Cooldown: 90 / 90 / 90",
          "cost": "",
          "icon": "abilities/vladimir/hemoplague.webp",
          "icon_sha256": "f967fe0e03e149bd047a9ecae5c02966a3a6aea4ded386631cb4b7f4eeb9890b"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWQRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10090.js",
          "snapshot": "sources/925d9ce7d40137e002433d85a7e42654332758c4fca1b0e2568f2d8edb4fd073",
          "sha256": "925d9ce7d40137e002433d85a7e42654332758c4fca1b0e2568f2d8edb4fd073",
          "retrieved_at": "2026-11-01T15:46:32.926435+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:28",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "血色契约",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "鲜血转换",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "血红之池",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "血之潮汐",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "血之瘟疫",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Volibear": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/volibear",
        "snapshot": "sources/5afc10e08d16b0fc87457cc05c68dee8a40525c4490179c21ba96a21b50e5814",
        "sha256": "5afc10e08d16b0fc87457cc05c68dee8a40525c4490179c21ba96a21b50e5814",
        "retrieved_at": "2026-11-01T15:46:11.751135+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "The Relentless Storm",
          "description": "Volibear gains 5% ( +4% AP ) Attack Speed for 6 seconds whenever he deals damage with an Ability or Attack, stacking up to 5 times. At 5 stacks, Volibear's claws ignite with lightning, causing his Attacks to deal an additional 12 - 68 ( +40% AP ) magic damage to the target and 4 closest enemies.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/volibear/the-relentless-storm.webp",
          "icon_sha256": "9f715dfd1780e258eb6c4ee099876debf4b13f7d81f26fe3bc2266c2773cc39f"
        },
        {
          "slot": "Q",
          "name": "Thundering Smash",
          "description": "Volibear gains 10% / 15% / 20% / 25% Move Speed , increased to 20% / 30% / 40% / 50% towards enemy champions for the next 4 seconds. While active, Volibear's next Attack deals 15 / 40 / 65 / 90 ( +100% bonus AD ) physical damage and Stuns the target for 1 second. If Volibear becomes Immobilized before he Stuns a target, Thundering Smash's duration is paused.",
          "cooldown": "Cooldown: 13 / 12 / 11 / 10",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/volibear/thundering-smash.webp",
          "icon_sha256": "e3c70c264d428ea6d2349c268282d12418c179a527b51322df150e8876780230"
        },
        {
          "slot": "W",
          "name": "Frenzied Maul",
          "description": "Volibear mauls an enemy, dealing 5 / 30 / 55 / 80 ( +110% AD + 6.5% bonus HP ) physical damage . If Volibear maul's a champion or Large Monster he goes into a Frenzy for 8 seconds. If this Ability is used when in a Frenzy, its damage is increased to 8 / 48 / 88 / 128 ( +176% AD + 10.4% bonus HP ) physical damage and Volibear restores 10 + 10% ( 7% ) missing Health . This Ability applies on-hit effects. Base Health Regeneration: 20 / 30 / 40 / 50 ( +5% / 8% / 11% / 14% lost Health ). Damage ratio to monsters: 80% .",
          "cooldown": "Cooldown: 5 / 5 / 5 / 5",
          "cost": "Cost: 35 / 40 / 45 / 50",
          "icon": "abilities/volibear/frenzied-maul.webp",
          "icon_sha256": "988993b20aef69ae994b79f126c8c1b24967dc2a62168964126d7597024f4142"
        },
        {
          "slot": "E",
          "name": "Sky Splitter",
          "description": "Volibear summons a thundercloud that fire a lightning bolt, dealing 80 / 110 / 140 / 170 ( +50% AP ) + 11% max Health magic damage and Slowing by 40% for 2 seconds. If Volibear is inside the blast zone, he gains a 131 ( 75% AP ) + 14% max Health Shield for 2.5 seconds. Damage against non-champions is capped at 150 / 250 / 350 / 450 .",
          "cooldown": "Cooldown: 13 / 13 / 13 / 13",
          "cost": "Cost: 60 / 60 / 60 / 60",
          "icon": "abilities/volibear/sky-splitter.webp",
          "icon_sha256": "fb06362924b06f9966d0853727664856e39c5026692c93525ddc32c64559122d"
        },
        {
          "slot": "R",
          "name": "Stormbringer",
          "description": "Volibear transforms and leaps, gaining 175 / 350 / 525 Health and 50 Attack Range for the next 12 seconds. Upon landing, Volibear cracks the earth, Disabling nearby towers for 3 seconds and dealing 300 / 500 / 700 ( +100% AP +210% bonus AD ) physical damage to them. Nearby enemies are Slowed by 50% , decaying over 1 second. Enemies directly underneath Volibear suffering",
          "cooldown": "Cooldown: 90 / 80 / 70",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/volibear/stormbringer.webp",
          "icon_sha256": "ff1860e26dddd43ba47c6b47a90def64a34dcdeaa7b85826f473ae010f69b615"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "WEQWRWWQRQQEREE"
        },
        {
          "label": "Source plan 2",
          "choices": "EQWWRWWQRQQEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            3,
            8,
            10,
            11
          ],
          [
            2,
            8,
            10,
            11
          ]
        ],
        "W": [
          [
            1,
            4,
            6,
            7
          ],
          [
            3,
            4,
            6,
            7
          ]
        ],
        "E": [
          [
            2,
            12,
            14,
            15
          ],
          [
            1,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ],
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10058.js",
          "snapshot": "sources/3ef04accefd4ec543c54100a163868701da33d2512215503a0a7da1ac1b922a9",
          "sha256": "3ef04accefd4ec543c54100a163868701da33d2512215503a0a7da1ac1b922a9",
          "retrieved_at": "2026-11-01T15:46:32.932586+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:26",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "狂雷渐起",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "擂首一击",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "暴怒撕咬",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "霹天雳地",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "天声震落",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Warwick": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/warwick",
        "snapshot": "sources/bde88d5f094e8290cd27e1ae9e0c0c8794e32ef3a7d0287988d9640220405fbc",
        "sha256": "bde88d5f094e8290cd27e1ae9e0c0c8794e32ef3a7d0287988d9640220405fbc",
        "retrieved_at": "2026-11-01T15:46:11.659613+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Eternal Hunger",
          "description": "Attacks deal an additional 12 - 46 ( +15% bonus AD +10% AP ) magic damage on hit. While below 50% health , heal for 100% of the damage dealt .",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/warwick/eternal-hunger.webp",
          "icon_sha256": "3762204480db8f5dac41a4e2350cb79555049dc71917124d4e4bd49dc51407b0"
        },
        {
          "slot": "Q",
          "name": "Jaws of the Beast",
          "description": "Lunges forward and bites the target enemy, dealing 70 ( 120% AD + 85% AP ) magic damage + 6% / 7% / 8% / 9% of the target's max health and healing for 42.5% / 55% / 67.5% / 80% of damage dealt. Drag : Warwick leaps behind targets and follows their movement. The bonus damage is capped at 100 / 125 / 150 / 175 against monsters. Deal 50% extra damage to minions and restores 50% of cooldown when killing minions.",
          "cooldown": "Cooldown: 6 / 6 / 6 / 6",
          "cost": "Cost: 40 / 40 / 40 / 40",
          "icon": "abilities/warwick/jaws-of-the-beast.webp",
          "icon_sha256": "d419e404d5d54796be63baf643b8024f138eac5f794de21b0f955a09ef7f7ee3"
        },
        {
          "slot": "W",
          "name": "Blood Hunt",
          "description": "Passive : Marks enemy champions below 50% health, gaining 40% / 45% / 50% / 55% Movement Speed towards them and gaining 60% / 70% / 80% / 90% Attack Speed against any enemy below 50% health. These bonuses are enhanced to 150% of their value against targets below 35% health. Active : Briefly senses all enemies and marks the closest champion for 8 seconds. Can not be used while in combat with champions. Casting increases Warwick's vision range, which ignores terrain (up to 1300). Warwick can only passively sense enemies who were brought below 50% Health by allies. Increase sease range of active casting.",
          "cooldown": "Cooldown: 70 / 60 / 50 / 40",
          "cost": "Cost: 70 / 70 / 70 / 70",
          "icon": "abilities/warwick/blood-hunt.webp",
          "icon_sha256": "f904a6b497c5d7e797124f7ce4fb5a9b692366c4616423105a5fe76e65c1a3ce"
        },
        {
          "slot": "E",
          "name": "Primal Howl",
          "description": "Warwick gains 35% / 40% / 45% / 50% damage reduction for 2.5 seconds. After it ends, Warwick howls, fearing nearby enemies and causing them to flee from him for 1 second, during which they are slowed by 90% . Recast : End the ability early. Recasting Primal Howl within 1s does not trigger fear effect, and 45% cooldown is returned; if fear is triggered, then no cooldown reduction.",
          "cooldown": "Cooldown: 14 / 13 / 12 / 11",
          "cost": "Cost: 30 / 30 / 30 / 30",
          "icon": "abilities/warwick/primal-howl.webp",
          "icon_sha256": "b01ca9cbe30a48704e3ed45b0b14f23086ec38383fde568388914edbbf0c8c06"
        },
        {
          "slot": "R",
          "name": "Infinite Duress",
          "description": "Warwick leaps a huge distance that scales with his Move Speed , 2.5 seconds within landing his next basic attack will be empowered. If the empowered basic attack hit target successfully, he leaps to the target, dealing damage while suppressing the target. He attacks that champion 4 times over the duration, applying On-Hit effects and dealing 100 / 275 / 450 ( + 167% bonus AD ) magic damage . Warwick restores 100% of all damage dealt during the channel as Health .",
          "cooldown": "Cooldown: 100 / 90 / 80",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/warwick/infinite-duress.webp",
          "icon_sha256": "f1cb86cad0640b379b48328b2d27c1efcc0339e9eb735cfa58989d03eef6d6d0"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWQERQQWRWWEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            3,
            6,
            7
          ]
        ],
        "W": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            4,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10131.js",
          "snapshot": "sources/9c1b34b29218747b205fe79039b4ee8ed10e0cb71f46d1ea963393aacb8675f6",
          "sha256": "9c1b34b29218747b205fe79039b4ee8ed10e0cb71f46d1ea963393aacb8675f6",
          "retrieved_at": "2026-11-01T15:46:33.278071+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:30",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "血之饥渴",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "野兽之口",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "鲜血追猎",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "远祖嗥叫",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "无尽束缚",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Wukong": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/wukong",
        "snapshot": "sources/b87ee4b7c34e5ba3bbaa4cc631f80d6245b734df47ab0bf6b34f56954eca9420",
        "sha256": "b87ee4b7c34e5ba3bbaa4cc631f80d6245b734df47ab0bf6b34f56954eca9420",
        "retrieved_at": "2026-11-01T15:46:11.901448+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Stone Skin",
          "description": "Gains a stack of Stone Skin whenever Wukong damage enemy champions, stacking up to 3 times. Each stack grants 11 Armor and heals for 1.75% of his max Health per 5 seconds.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/wukong/stone-skin.webp",
          "icon_sha256": "716eba668b75318bc9f21d6933f3648e6f6036354cfbc9cafc2fe4bc3cee88f8"
        },
        {
          "slot": "Q",
          "name": "Golden Staff",
          "description": "Passive : Golden Staff adds an empowering effect on Wukong's base attacks every 12 seconds. Takedowns will reduce Golden Staff's passive Cooldown by 2 seconds. The Cooldown of the passive will be reduced by 2 seconds per level, and killing enemy champions will refresh the Cooldown. Active : Empowers his next attack to deal 60 / 90 / 120 / 150 ( +35% / 40% / 45% / 50% AD ) physical damage. Wukong and his clones attacks reduce Golden Staff's cooldown by 0.5 seconds. After casting this ability, Wukong's next attack gains bonus range.",
          "cooldown": "Cooldown: 11 / 9 / 8 / 6",
          "cost": "Cost: 30 / 30 / 30 / 30",
          "icon": "abilities/wukong/golden-staff.webp",
          "icon_sha256": "c8212b574ec3f5e4633a3418e59800bf98b16751d9e724b44ba8626d1a31eab6"
        },
        {
          "slot": "W",
          "name": "Warrior Trickster",
          "description": "Becomes invisible for 1 second and dashes forward, leaving behind a clone for 3 / 3.5 / 4 / 4.5 seconds that attacks nearby enemies for 20% / 30% / 40% / 50% damage. The clone will mimic Wukong's Golden Staff, Nimbus Strike and Cyclone . The clone can move with the joystick control.",
          "cooldown": "Cooldown: 14 / 13 / 13 / 12",
          "cost": "Cost: 55 / 60 / 65 / 70",
          "icon": "abilities/wukong/warrior-trickster.webp",
          "icon_sha256": "5f691407e282c257352e53481c9c2029239d57ee45468f443352ae8d8e46b496"
        },
        {
          "slot": "E",
          "name": "Nimbus Strike",
          "description": "Moves toward a target while sending clones to 2 additional enemies nearby, dealing 70 / 110 / 150 / 190 ( +80% bonus AD ) physical damage to each enemy. After hitting the targeted enemy, Wukong gains 25% / 35% / 45% / 55% Attack Speed for 4 seconds.",
          "cooldown": "Cooldown: 8 / 8 / 8 / 8",
          "cost": "Cost: 40 / 40 / 40 / 40",
          "icon": "abilities/wukong/nimbus-strike.webp",
          "icon_sha256": "87493cd6447f437d0e768468e80d0956ba63a41781dd8f0e95308523d4a8511e"
        },
        {
          "slot": "R",
          "name": "Cyclone",
          "description": "Extends his staff and spins to gain 20% Movement Speed , dealing 149 ( 220% AD ) physical damage + 10% / 14% / 1 1 8% of enemies' max health over 2 seconds. Enemies that are hit for the first time are knocked up. Cyclone can be recast once within 8 seconds.",
          "cooldown": "Cooldown: 80 / 70 / 60",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/wukong/cyclone.webp",
          "icon_sha256": "3bf643039a22501745cdbbd8055ac0534d7fbe5ada2b16f8c49e69e62c37b527"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEQWRQQEREEWRWW"
        },
        {
          "label": "Source plan 2",
          "choices": "QEWQRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            3,
            6,
            7
          ],
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            4,
            12,
            14,
            15
          ],
          [
            3,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ],
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ],
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10009.js",
          "snapshot": "sources/abbf29d6d4f9ee9f49561e8747011ce5bb37d51ca01d9219fa35f2f1584e74a8",
          "sha256": "abbf29d6d4f9ee9f49561e8747011ce5bb37d51ca01d9219fa35f2f1584e74a8",
          "retrieved_at": "2026-11-01T15:46:33.278727+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:23",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "金刚不坏",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "定海神针",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "真假猴王",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "腾云突击",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "大闹天宫",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Xayah": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/xayah",
        "snapshot": "sources/a9635e129e9c103b99f84bc49ff6c935a50db1d482de985261508dd047d4b2a7",
        "sha256": "a9635e129e9c103b99f84bc49ff6c935a50db1d482de985261508dd047d4b2a7",
        "retrieved_at": "2026-11-01T15:46:10.711995+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Clean Cuts",
          "description": "After using an ability, Xayah's next 3 attacks will hit all enemies along their path and drop Feathers she can recall. Xayah can store up to 5 Feathers at a time. Lover's Leap - Xayah and Rakan can join each other's recall. Both will reach the Summoning Platform when the initiator's recall ends.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/xayah/clean-cuts.webp",
          "icon_sha256": "f7b6e7482543fd7f14537270c0a9f3c00724794ca76d92ed113362d705d4a93e"
        },
        {
          "slot": "Q",
          "name": "Double Daggers",
          "description": "Throws two daggers dealing 50 / 75 / 100 / 125 ( +50% bonus AD ) physical damage each and leaving two Feathers . Targets hit after the first take 50% damage.",
          "cooldown": "Cooldown: 10 / 9 / 8 / 7",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/xayah/double-daggers.webp",
          "icon_sha256": "c3ad620d528e8736586614846a752039fb283c05a814140a2f556f328ea25c0f"
        },
        {
          "slot": "W",
          "name": "Deadly Plumage",
          "description": "Creates a storm of blades for 4 seconds that grants 40% / 45% / 50% / 55% Attack Speed and causes attacks to deal 25% more damage. If Deadly Plumage strikes an enemy champion, gain 30% Movement Speed for 1.5 seconds. If Rakan is nearby he will also gain the effects of this skill.",
          "cooldown": "Cooldown: 17 / 16 / 15 / 14",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/xayah/deadly-plumage.webp",
          "icon_sha256": "50afef498ad8d94330b4fe3821c77a50960cf1fb599b9b935ba07e066e055006"
        },
        {
          "slot": "E",
          "name": "Bladecaller",
          "description": "Calls back all Feathers , dealing 70 / 80 / 90 /100 ( +50% bonus AD ) physical damage to enemies they pass through. Hitting an enemy with 3 Feathers roots them for 1.25 seconds. Minions take 50% damage from Bladecaller.",
          "cooldown": "Cooldown: 11 / 10 / 9 / 8",
          "cost": "Cost: 40 / 40 / 40 / 40",
          "icon": "abilities/xayah/bladecaller.webp",
          "icon_sha256": "1802ae65022d49cc61b0e3f65a68fbce5073bb380b1d99bb15cc5be135851977"
        },
        {
          "slot": "R",
          "name": "Featherstorm",
          "description": "Leaps into the air, becoming untargetable and throwing out a fan of daggers which deal 150 / 250 / 350 ( +100% bonus AD ) physical damage and leave behind a line of Feathers . Can move while in the air.",
          "cooldown": "Cooldown: 80 / 70 / 60",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/xayah/featherstorm.webp",
          "icon_sha256": "4e87be67258b5f488ec76a4aa7d1bc73f8b87aedcad489efb2749e666c5077ca"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWEREEWRWWQRQQ"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            12,
            14,
            15
          ]
        ],
        "W": [
          [
            3,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            2,
            4,
            6,
            7
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10051.js",
          "snapshot": "sources/059a73d22e688bb870494dc1f097051d14cfc5f8f0791500160eb097941c4063",
          "sha256": "059a73d22e688bb870494dc1f097051d14cfc5f8f0791500160eb097941c4063",
          "retrieved_at": "2026-11-01T15:46:33.279819+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:26",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "锐切",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "双刃",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "致死羽衣",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "倒钩",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "暴风羽刃",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Xin Zhao": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/xin-zhao",
        "snapshot": "sources/b7265a9d9df17b4dea67e7fdbf232bb04e9b42906872bd383c12911c11d8657a",
        "sha256": "b7265a9d9df17b4dea67e7fdbf232bb04e9b42906872bd383c12911c11d8657a",
        "retrieved_at": "2026-11-01T15:46:12.068759+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Determination",
          "description": "Every third attack deals an additional 13 ( 22% AD ) physical damage and heals for 13 ( +10% AD +40% AP ).",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/xin-zhao/determination.webp",
          "icon_sha256": "b679f047dbfd3b201d36e22f65928ef2dccad735be9a94dd73be42fdf66a1225"
        },
        {
          "slot": "Q",
          "name": "Three Talon Strike",
          "description": "Empowers the next three attacks to deal an additional 20 / 28 / 36 / 44 ( +40% bonus AD ) physical damage and reduce the cooldown of other abilities by 1 second. The third attack knocks the target up for 0.75 seconds.",
          "cooldown": "Cooldown: 9 / 8 / 7 / 6",
          "cost": "Cost: 30 / 30 / 30 / 30",
          "icon": "abilities/xin-zhao/three-talon-strike.webp",
          "icon_sha256": "0372034759d97d7b186d0ebc86eec314aaf1994bea3c8b6188da0b7012effcce"
        },
        {
          "slot": "W",
          "name": "Wind Becomes Lightning",
          "description": "Slashes his spear, dealing 40 / 50 / 60 / 70 ( +50% AD ) physical damage and slowing by 50% for 1.5 seconds. Xin Zhao then thrusts his spear, dealing 40 / 85 / 130 / 175 ( +75% AD ) physical damage and slowing by 50% for 1.5 seconds. The furthest enemy champion or large monster hit is Challenged for 3.5 seconds, increasing Audacious Charge 's cast range at them. Attack Speed reduces cast time. Deals 50% damage to minions.",
          "cooldown": "Cooldown: 11 / 9 / 8 / 6",
          "cost": "Cost: 45 / 45 / 45 / 45",
          "icon": "abilities/xin-zhao/wind-becomes-lightning.webp",
          "icon_sha256": "c4d63a19c56fdf46c23ba1ab6e9e123b58eece50abb7c3b80f1d91da4db6790b"
        },
        {
          "slot": "E",
          "name": "Audacious Charge",
          "description": "Dashes to an enemy, dealing 55 / 90 / 122 / 160 ( +80% AP ) magic damage to all nearby enemies and slowing them by 30% for 0.5 seconds. Xin Zhao gains 45% / 52.5% / 60% / 67.5% Attack Speed for 5 seconds. This ability's cast range is increased against a Challenged target.",
          "cooldown": "Cooldown: 11 / 11 / 11 / 11",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/xin-zhao/audacious-charge.webp",
          "icon_sha256": "603f0d59991bbace1359b596712d4d68ff23d957d37a21012a07bb1e45e558c7"
        },
        {
          "slot": "R",
          "name": "Crescent Guard",
          "description": "Passive : The last champion hit by an attack or Audacious Charge is now Challenged . Active : Sweeps his spear, dealing 75 / 150 / 225 ( +100% bonus AD +80% AP ) physical damage + 15% of enemies maximum Health and knocking all enemies back except the Challenged one. For the next 5 seconds, Xin Zhao blocks damage from enemies far away. Deals 600 max damage against monsters.",
          "cooldown": "Cooldown: 80 / 70 / 60",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/xin-zhao/crescent-guard.webp",
          "icon_sha256": "1ea2384f6ef78dd1d13707a0843e6f939581653c62a5a231744e0595f9b6912c"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "WEQWRWWEREEQRQQ"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "W": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10016.js",
          "snapshot": "sources/ed37878dde451411b948664f87fc6afbc02d5bf63e660366b0b417eab90ced17",
          "sha256": "ed37878dde451411b948664f87fc6afbc02d5bf63e660366b0b417eab90ced17",
          "retrieved_at": "2026-11-01T15:46:33.279600+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:24",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "果决",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "三重爪击",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "风斩电刺",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "无畏冲锋",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "新月护卫",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Yasuo": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/yasuo",
        "snapshot": "sources/fff9c2be3372232ef3c512d5813032a4ce1f53b53ef910e920c8b56a2fb31e93",
        "sha256": "fff9c2be3372232ef3c512d5813032a4ce1f53b53ef910e920c8b56a2fb31e93",
        "retrieved_at": "2026-11-01T15:46:11.216607+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Way of the Wanderer",
          "description": "Resolve : Moving builds Flow, which is tracked on Yasuo's resource bar. At max Flow, damage from a champion or monster grants a shield that absorbs 77 - 630 ( +100% Critical Strike Rate ) damage and lasts 1 second. Intent : Yasuo's Critical Rate is doubled. Yasuo converts Critical Rate above 100% into Attack Damage at a rate of 0.5 Attack Damage per 1% Critical Rate.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/yasuo/way-of-the-wanderer.webp",
          "icon_sha256": "bca9728b40610aa91d55a90015ef24ddc083fe82d7c44c12874b166a3cbf8f4b"
        },
        {
          "slot": "Q",
          "name": "Steel Tempest",
          "description": "Thrusts forward, dealing 20 / 50 / 80 / 110 ( +105% AD) physical damage . Grants a stack of Gathering Storm if the thrust damages an enemy. At 2 stacks, Steel Tempest launches a whirlwind that knocks enemies Airborne . If tapped during Sweeping Blade's dash, Steel Tempest will strike as a circle. Steel Tempest is treated as an attack: it can Critically Strike for 75% bonus damage and applies on-hit efects to all units hit. Cooldown and cast time are reduced by Attack Speed.",
          "cooldown": "Cooldown: 4 / 4 / 4 / 4",
          "cost": "",
          "icon": "abilities/yasuo/steel-tempest.webp",
          "icon_sha256": "79e589e9ea7728122dc2f4cb9c05595fda3038d8f6c63faf611e24b4468dc920"
        },
        {
          "slot": "W",
          "name": "Wind Wall",
          "description": "Creates a 300 / 400 / 500 / 600 unit wall that blocks all enemy projectiles for 4 seconds.",
          "cooldown": "Cooldown: 22 / 20 / 18 / 16",
          "cost": "",
          "icon": "abilities/yasuo/wind-wall.webp",
          "icon_sha256": "ae3fd6d6eda631d0d2cebeb2254c893c8213e656032056cc23f9e4bad86337a6"
        },
        {
          "slot": "E",
          "name": "Sweeping Blade",
          "description": "Dashes through target enemy, dealing 70 / 80 / 90 / 100 ( +20% bonus AD + 60% AP ) magic damage . Each cast increased the next dash's base damage by 25% , up to + 75% . Cannot be re-cast on the same enemy for 7 / 6 / 5 / 4 seconds. If Steel Tempest is tapped during this dash, it will strike as a circle.",
          "cooldown": "Cooldown: 1 / 1 / 1 / 1",
          "cost": "",
          "icon": "abilities/yasuo/sweeping-blade.webp",
          "icon_sha256": "abf0981af302e641ffa9327a26d8f29b8bdea995b149af6581b5edc0ddaf3732"
        },
        {
          "slot": "R",
          "name": "Last Breath",
          "description": "Blinks to an Airborne enemy champion, dealing 200 / 350 / 500 ( +150% bonus AD ) physical damage and holding all Airborne enemies in the area in the air for an additional 1.3 seconds. Grants maximum Flow but resets all stacks of Gathering Storm . For the next 15 seconds, Critical Strikes gain 55% Armor Penetration .",
          "cooldown": "Cooldown: 50 / 40 / 30",
          "cost": "",
          "icon": "abilities/yasuo/last-breath.webp",
          "icon_sha256": "bacafae06e9c7dd78e73d1df645693b5aa71dd5df066b7876829222112143360"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWQRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10037.js",
          "snapshot": "sources/a1314f1bf092c69ec7deb547cddac685e7ccdf24bbb3c098e0173f1f30f892eb",
          "sha256": "a1314f1bf092c69ec7deb547cddac685e7ccdf24bbb3c098e0173f1f30f892eb",
          "retrieved_at": "2026-11-01T15:46:33.279107+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:25",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "浪客之道",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "斩钢闪",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "风之障壁",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "踏前斩",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "狂风绝息斩",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Yone": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/yone",
        "snapshot": "sources/f1e248538d6b743d0fe858b4d96b351aa9818d3b6445f30ef1eaf281c5bfdd0c",
        "sha256": "f1e248538d6b743d0fe858b4d96b351aa9818d3b6445f30ef1eaf281c5bfdd0c",
        "retrieved_at": "2026-11-01T15:46:11.501982+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Way of the Hunter",
          "description": "Steel and Spirit : Every other attack deals 50% of the attack's damage as magic damage instead. Intent : Yone's Critical Rate is doubled. Yone converts Critical Rate above 100% into Attack Damage at a rate of 0.5 Attack Damage per 1% Critical Rate.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/yone/way-of-the-hunter.webp",
          "icon_sha256": "2e79dcfb7511af3f5adcc2045422e4b3a140cb90244dcb9bb24de4e737c23eb5"
        },
        {
          "slot": "Q",
          "name": "Mortal Steel",
          "description": "Thrusts forward, dealing 30 / 50 / 70 / 90 ( +175% AD ) physical damage . Grants a stack of Gathering Storm if the thrust damages an enemy. At 2 stacks, Mortal Steel dashes Yone forward and launches a whirlwind that knocks enemies Airborne . Mortal Steel is treated as an attack: it can Critically Strike for bonus damage and applies on-hit effects to all units hit. Cooldown and cast time are reduced by Attack Speed. Deal 70% damage to monsters.",
          "cooldown": "Cooldown: 4 / 4 / 4 / 4",
          "cost": "",
          "icon": "abilities/yone/mortal-steel.webp",
          "icon_sha256": "bd200f1c478ea4c2c87e60c2ea06dbaf7b3bd959c5c35efe1d9cd4f9e038ea2e"
        },
        {
          "slot": "W",
          "name": "Spirit Cleave",
          "description": "Cleaves in a cone, dealing 20 / 35 / 50 / 65 plus 9% / 10% / 11% / 12% of the target's maximum Health as physical and magic damage . Gains a shield that absorbs 40 / 55 / 70 / 85 ( +60% bonus AD ) damage for 1.5 seconds if Spirit Cleave hits an enemy, increased by 100% on hitting a champion and 40% on subsequent champion hits. Deals 60 minimum damage against minions. Deals 30 maximum damage against monsters. Cooldown aand cast time are reduced by Attack Speed.",
          "cooldown": "Cooldown: 14 / 14 / 14 / 14",
          "cost": "",
          "icon": "abilities/yone/spirit-cleave.webp",
          "icon_sha256": "31aa62a478e34df8bf24be45c5ed69af1b3be3f0d659727a0cdd8d00b1fc2903"
        },
        {
          "slot": "E",
          "name": "Soul Unbound",
          "description": "Dashes forward, entering Spirit Form and leaving his body behind for 5 seconds. During Spirit Form, Yone gains 10% Movement Speed that increases over the duration and marks champions damaged with his attacks or abilities. When Soul Unbound ends, Yone returns to his body and marked enemies take 27.5% / 30% / 32.5% / 35% of the damage Yone dealt to them as true damage . Re-cast : End Soul Unbound early.",
          "cooldown": "Cooldown: 20 / 17 / 14 / 11",
          "cost": "",
          "icon": "abilities/yone/soul-unbound.webp",
          "icon_sha256": "0b162e89c7f7db718bb11a687e187bb89baf2338fef49bcb7637e9a1351d4ec5"
        },
        {
          "slot": "R",
          "name": "Fate Sealed",
          "description": "Strikes all enemies along a path for 200 / 375 / 550 ( +60% AD ) physical and magic damage , teleport behind the last champion hit and knocking them towards Yone.",
          "cooldown": "Cooldown: 80 / 70 / 60",
          "cost": "",
          "icon": "abilities/yone/fate-sealed.webp",
          "icon_sha256": "addfacd6d202bddaa88fff30629e397788de3a8f365b92a2bf02e6a3284a4132"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWEQRQQEREEWRWW"
        },
        {
          "label": "Source plan 2",
          "choices": "QWQERQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ],
          [
            1,
            3,
            6,
            7
          ]
        ],
        "W": [
          [
            2,
            12,
            14,
            15
          ],
          [
            2,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            3,
            8,
            10,
            11
          ],
          [
            4,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ],
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10069.js",
          "snapshot": "sources/a73fc58213d99cca6d0e93f250539fbab778035636ad1675dba2f1eef260a4c1",
          "sha256": "a73fc58213d99cca6d0e93f250539fbab778035636ad1675dba2f1eef260a4c1",
          "retrieved_at": "2026-11-01T15:46:33.280135+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:27",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "狩人之道",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "错玉切",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "凛神斩",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "破障之锋",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "封尘绝念斩",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Yunara": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/yunara",
        "snapshot": "sources/f6d19966491422f6e1da93f2dd46e0a925864714526d0b1e256370355115efb7",
        "sha256": "f6d19966491422f6e1da93f2dd46e0a925864714526d0b1e256370355115efb7",
        "retrieved_at": "2026-11-01T15:46:11.793644+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Vow of the First Lands",
          "description": "Critical Strikes deal an additional 8% (per 100 AP ) magic damage .",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/yunara/vow-of-the-first-lands.webp",
          "icon_sha256": "8d6979ecdffedbb69b6a6541d26784ce4a733502fd3efad13522bd8c7facc23c"
        },
        {
          "slot": "Q",
          "name": "Cultivation of Spirit",
          "description": "S pirit Charge (Passive) : Attacks deal an additional 5 / 10 / 15 / 20 ( +20% AP ) magic damage ; When not active, launching an attack grants 1 Unleash. Attacking again refreshes Unleash's duration. Max Unleash is 6. If the duration is not refreshed, Yunara loses 1 Unleash every 0.5 seconds. Spirit Unbound (Active) : On cast, consumes Unleash, gaining 25% / 35% / 45% / 55% Attack Speed for 5 seconds. Attacks are empowered during this time to: Deal an additional 5 / 10 / 15 / 20 ( +20% AP ) magic damage on-hit; Spread to enemies nearby the target, dealing them 18 ( 30% AD ) physical damage . Transcendent State : This ability automatically activates until Yunara exits the state. If the attack Critically Strikes, its spread damage will also Critically Strike. Damage from spread attacks is increased to 250% against minions below 30% Health.",
          "cooldown": "Cooldown: 0 / 0 / 0",
          "cost": "Cost: 30 / 30 / 30 / 30",
          "icon": "abilities/yunara/cultivation-of-spirit.webp",
          "icon_sha256": "7743d20153035542ae9318157059b892b4e35f78d187baeeb0f5095af0d0df4f"
        },
        {
          "slot": "W",
          "name": "Arc of Judgment / Arc of Ruin",
          "description": "Arc of Judgment: Lets rip a spinning prayer bead in the target location, briefly granting vision of the area it travels through. The prayer bead slows enemies hit by 99% , lingering as it travels and resetting its remaining duration. When it reaches its endpoint, it lingers and expands for 1 second, regardless of whether it has hit an enemy. The initial hit deals 60 / 110 / 160 / 210 ( +85% bonus AD +50% AP ) magic damage and slows by 99% , decaying over 1.5 seconds; When lingering, the bead deals an additional 8 / 14 / 20 / 26 ( +12% bonus AD +7.5% AP ) magic damage to nearby enemies every 0.25 seconds. While Yunara is in a Transcendent State, this ability is upgraded to Arc of Ruin. Arc of Ruin : Fires a laser in the target direction that deals 160 ( +120% bonus AD +75% AP ) magic damage and slows by 99% , decaying over 1.5 seconds. Arc of Judgment deals 50% - 100% damage to minions and executes low-Health minions.",
          "cooldown": "Cooldown: 10 / 10 / 10 / 10",
          "cost": "Cost: 60 / 60 / 60 / 60",
          "icon": "abilities/yunara/arc-of-judgment-arc-of-ruin.webp",
          "icon_sha256": "a58b2bdf73519b3aba38880c27f6d02e83bb7ecad316f5f7fe46f37e3c35297c"
        },
        {
          "slot": "E",
          "name": "Kanmei's Steps / Untouchable Shadow",
          "description": "Kanmei's Steps : Gains 30% / 35% / 40% / 45% Movement Speed for 1.5 seconds, increased to 45% / 52.5% / 60% / 67.5% when moving toward a visible enemy champion nearby. While Yunara is in a Transcendent State, this ability is upgraded to Untouchable Shadow. Untouchable Shadow : Dashes in the target direction.",
          "cooldown": "Cooldown: 9 / 9 / 9 / 9",
          "cost": "Cost: 40 / 40 / 40 / 40",
          "icon": "abilities/yunara/kanmei-s-steps-untouchable-shadow.webp",
          "icon_sha256": "103557a7a3a4504c0b6e527154df3316518346da9695a0e727229a6299d2b482"
        },
        {
          "slot": "R",
          "name": "Transcend One's Self",
          "description": "Passive : Arc of Ruin's base damage and Untouchable Shadow's dash speed scale with this ability's level. Transcendent State (Active) : Enters a Transcendent State for 15 seconds. During this time, Yunara's basic abilities are empowered and cost no Mana. Cultivation of Spirit : Activates automatically for the duration. Arc of Judgment : Upgrades to Arc of Ruin . Its remaining cooldown reduces by 80% when Yunara enters or exits a Transcendent State. Kanmei's Steps : Upgrades to Untouchable Shadow . Its cooldown refreshes when Yunara enters or exits a Transcendent State.",
          "cooldown": "Cooldown: 70 / 65 / 60",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/yunara/transcend-one-s-self.webp",
          "icon_sha256": "ab66cec2c2070f20219e0a8789165514ec080e944e034b0b7a44736470d9b534"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWEQRQQWRWWEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [
        "Empowered or transformed versions use the same upgrade slot as the base ability; no extra form-specific points are allocated."
      ],
      "combat_sync": {
        "mapped_controls": [
          {
            "control_key": "cultivation_rank",
            "slot": "Q",
            "rank_basis": "learned",
            "ability": "Cultivation of Spirit",
            "engine_semantics": "yunara_cultivation; empowered version shares Q rank",
            "initial_rank": 0,
            "source": "champion.source (exact slot/name); canonical champion_mechanics.json rule identity",
            "engine_evidence": "game_rules.py rank consumers and champion_mechanics.json explicit rule parameters"
          }
        ],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10148.js",
          "snapshot": "sources/d285ff04367551e7ada50630efe22661dfbd60cd63c1e702930a1be42cf3d37a",
          "sha256": "d285ff04367551e7ada50630efe22661dfbd60cd63c1e702930a1be42cf3d37a",
          "retrieved_at": "2026-11-01T15:46:33.526262+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:31",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "初生之誓",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "灵蕴拳",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "善恶轮",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "明踪步",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "定圣诀",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Yuumi": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/yuumi",
        "snapshot": "sources/5435b722aa6241d1105b4d42610da6edd5b8bedc2abd229301fe056cdd9c9867",
        "sha256": "5435b722aa6241d1105b4d42610da6edd5b8bedc2abd229301fe056cdd9c9867",
        "retrieved_at": "2026-11-01T15:46:12.616810+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Feline Friendship",
          "description": "Passive : When Yuumi's attacks and abilities strike champions, she heals herself for 67 ( +25% AP ) Health . If Yuumi Attaches to an allied champion within 4 seconds, they are healed for the same amount as well. (18 second cooldown) Bonds of Friendship : While Attached , Yuumi gains Friendship with her ally whenever they kill a champion or minion. The ally with the most Friendship becomes her Best Fried . Best Friend Bonus : Yuumi's abilities gain bonus effects while she is Attached to her Best Friend .",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/yuumi/feline-friendship.webp",
          "icon_sha256": "128a63d12c054b47367f58046e49a53e40990a0dd0b2d07436649518c61e0c6c"
        },
        {
          "slot": "Q",
          "name": "Prowling Projectile",
          "description": "Missile Summon : Hold and drag the ability button to steer the missile. Base Effect : Deals 60 / 100 / 140 / 180 / 220 ( +20% AP ) magic damage . Attached Bonus : If the missile takes at least 1 second to get to its target, its damage increases to 100 / 160 / 220 / 280 / 340 ( +35% AP ) magic damage . It also slows by 45% / 50% / 55% / 60% / 65% and reveals the target for 1 second. Best Friend Bonus : The missile always slows the target hit. Hitting a champion with the missile grants the ally Yuumi is Attached to 18 / 19 / 20 / 21 / 22 ( +5% AP ) magic damage on-hit for 5 seconds.",
          "cooldown": "Cooldown: 5 / 5 / 5 / 5",
          "cost": "Cost: 60 / 60 / 60 / 60",
          "icon": "abilities/yuumi/prowling-projectile.webp",
          "icon_sha256": "8bd56b20d2f333a11e8f3443f31d0ba091c9c53370d4acc0d3e31b5f34fec0cf"
        },
        {
          "slot": "W",
          "name": "You and Me!",
          "description": "Best Friend Bonus (Passive) : While on her Best Friend , Yuumi gains an additional 6% / 7% / 8% / 9% ( +0.01% AP ) Heal and Shield Power . Attach (Active) : Dashes to an allied champion and Attaches to them. While Attached , she follows her partner's movement and is untargetable except by turrets. Immobilizing effects on Yuumi place this ability on a 5 seconds cooldown.",
          "cooldown": "Cooldown: 8 / 4 / 0",
          "cost": "",
          "icon": "abilities/yuumi/you-and-me.webp",
          "icon_sha256": "70aa00d696c4346fdfa65a12817c079cffa892ed68c00f15660b0b86f16de792"
        },
        {
          "slot": "E",
          "name": "Zoomies",
          "description": "Gains a shield that absorbs 80 / 110 / 140 / 170 ( +40% AP ) damage and 24% / 28% / 32% / 36% ( +8% AP ) Attack Speed for 3 seconds. While the shield persists, she also gains 20% Movement Speed . If Yuumi is Attached , this ability affects her ally instead.",
          "cooldown": "Cooldown: 9 / 9 / 9 / 9",
          "cost": "Cost: 65 / 75 / 85 / 95",
          "icon": "abilities/yuumi/zoomies.webp",
          "icon_sha256": "896aabdd76c145dc28f2315461812f8d3453bca9db83a8e7b1ada322b003e88a"
        },
        {
          "slot": "R",
          "name": "Final Chapter",
          "description": "Channels for 3.5 seconds, launching 7 magical waves : While Attached , hold and drag the ability button to steer the waves. Against enemies (per wave) : Deals 80 / 100 / 120 ( +15% AP ) magic damage . Slows by 10% for 1.25 seconds, increased by 10% per wave hit. On allied champions (per wave ): Restores 20 / 35 / 50 ( +5% AP ) Health . Excess healing is converted into a shield instead. Best Friend Bonus : For her Best Friend , the heal is increased to 26 / 39 / 52 ( +8% AP ) Health . Wave Damage Stacks : Waves after the first deal 20 / 30 / 40 ( +5% AP ) magic damage . Yuumi can move and cast You and Me! and Zoomies while channeling.",
          "cooldown": "Cooldown: 85 / 75 / 65",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/yuumi/final-chapter.webp",
          "icon_sha256": "9bc5557e8e10adc67d80e8e91b25b1faf7e179f7ccfae368319175237212b0cb"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEQERQQQREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 5,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "yuumi"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 1,
          "rank_min_levels": null,
          "source_ids": [
            "standard",
            "yuumi"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            3,
            6,
            7,
            8
          ]
        ],
        "W": [
          [
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            4,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [
        "You and Me! starts at rank 1 without spending a point. Prowling Projectile has five ranks; W has three paid upgrades."
      ],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10020.js",
          "snapshot": "skill_sources/7957f5d5c3412befa620a11b787d834fc799dc5175bf1094a0b54edbdf662218",
          "sha256": "7957f5d5c3412befa620a11b787d834fc799dc5175bf1094a0b54edbdf662218",
          "retrieved_at": "2026-11-05T13:53:42.980638+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-11-02 17:42:23",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "猫的博爱",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "摸鱼飞弹",
            "rank_detail_count": 5
          },
          {
            "spell_index": 2,
            "name": "悠米出动！",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "旺盛精力",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "魔典终章",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources.",
          "Yuumi’s fifth Q rank and the minimum levels of W’s three paid upgrades are not evidenced."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Zed": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/zed",
        "snapshot": "sources/1a9a56d900a7a65ebabfdad5f87b817eed32c0631501bac19e9615ded82b8a1c",
        "sha256": "1a9a56d900a7a65ebabfdad5f87b817eed32c0631501bac19e9615ded82b8a1c",
        "retrieved_at": "2026-11-01T15:46:12.966240+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Contempt for the Weak",
          "description": "Zed's attacks against enemies below 50% Health deal bonus 7% magic damage of their maximum Health. (10 second cooldown per unique enemy).",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/zed/contempt-for-the-weak.webp",
          "icon_sha256": "af9a529616f279d6053445162bb5cdfe1eb72b2e703d30930a65e6e2348e6457"
        },
        {
          "slot": "Q",
          "name": "Razor Shuriken",
          "description": "Zed and his shadows throw their shurikens, each dealing 70 / 120 / 170 / 220 ( +110% bonus AD ) physical damage to the first enemy they hit and 49 / 84 / 119 / 154 ( +77% bonus AD ) physical damage to other enemies in their path.",
          "cooldown": "Cooldown: 6 / 6 / 6 / 6",
          "cost": "Cost: 60 / 55 / 50 / 45",
          "icon": "abilities/zed/razor-shuriken.webp",
          "icon_sha256": "2787b316f855c862f9546e80fd21c3bdd9a93a225ec46a2b4b37a4af7df5db0f"
        },
        {
          "slot": "W",
          "name": "Living Shadow",
          "description": "Passive : Zed gains 40 / 45 / 50 / 55 Energy whenever an ability strikes the same enemy twice. Energy can only be gained once per cast ability. Active : Zed's shadow dashes forward, remaining in place for 4.5 seconds. Reactivating Living Shadow will cause Zed to swap positions with his shadow.",
          "cooldown": "Cooldown: 17 / 16 / 15 / 14",
          "cost": "Cost: 35 / 30 / 25 / 20",
          "icon": "abilities/zed/living-shadow.webp",
          "icon_sha256": "857fa157ddd4f084d727905d006abb9ece3b79b1f25dc1afbed6b0f9bb86ac08"
        },
        {
          "slot": "E",
          "name": "Shadow Slash",
          "description": "Zed and his shadows slash, each dealing 65 / 95 / 125 / 155 ( +70 bonus AD ) physical damage to nearby enemies and slowing them by 25% / 30% / 35% / 40% for 1.5 seconds. Slashes beyond the first striking the same enemy deal 50% damage and increase the slow by 50% . Each enemy champion hit by Zed's slash reduces Living Shadow 's cooldown by 2 seconds.",
          "cooldown": "Cooldown: 5 / 4 / 4 / 3",
          "cost": "Cost: 40 / 40 / 40 / 40",
          "icon": "abilities/zed/shadow-slash.webp",
          "icon_sha256": "c449bfc41d8a280a270983f3a048521cff7c7bdc2143e452727f7b19f7077b85"
        },
        {
          "slot": "R",
          "name": "Death Mark",
          "description": "Zed becomes untargetable and dashes to target enemy champion, marking them. After 2.8 seconds, the mark triggers, dealing 60 ( 100% AD ) physical damage + 30% / 42.5% / 55% of all damage dealt to the target by Zed while the mark was active. The dash leaves a shadow behind for 6 seconds. Zed can reactivate Death Mark to switch positions with this shadow.",
          "cooldown": "Cooldown: 85 / 70 / 55",
          "cost": "",
          "icon": "abilities/zed/death-mark.webp",
          "icon_sha256": "3c04532d19f00f1e3aa79637397762469d5e6db2731f03b397e580edb4e73bc7"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWEQRQQEREEWRWW"
        },
        {
          "label": "Source plan 2",
          "choices": "QEWQRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ],
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            2,
            12,
            14,
            15
          ],
          [
            3,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            3,
            8,
            10,
            11
          ],
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ],
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10039.js",
          "snapshot": "sources/f78b13aeb6273cb942dd87a59c9c763ce10c0f3624bbd59be549cb39e0ba7cfc",
          "sha256": "f78b13aeb6273cb942dd87a59c9c763ce10c0f3624bbd59be549cb39e0ba7cfc",
          "retrieved_at": "2026-11-01T15:46:33.525874+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:25",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "影忍法！灭魂劫",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "影奥义！诸刃",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "影奥义！分身",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "影奥义！鬼斩",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "禁奥义！瞬狱影杀阵",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Zeri": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/zeri",
        "snapshot": "sources/a353ab52c2ddb11083ba4c949b3a583716d4570b769a900f8bfbbd9d03c09022",
        "sha256": "a353ab52c2ddb11083ba4c949b3a583716d4570b769a900f8bfbbd9d03c09022",
        "retrieved_at": "2026-11-01T15:46:12.185799+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Living Battery",
          "description": "Fires a burst of 6 rounds in the target direction, dealing 20 / 24 / 28 / 32 / 36 ( +102% / 104% / 106% / 108% / 110% AD ) physical damage to the first enemy hit. Zeri's Attack Speed is capped at 1.5 attacks per second. 60% of Attack Speed in excess of the cap is converted into bonus Attack Damage .",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/zeri/living-battery.webp",
          "icon_sha256": "a52540d6079bd5f8201a6c4448e9e58d2a802e4d787222b71a8acc00caa68e6a"
        },
        {
          "slot": "Q",
          "name": "Electrocute!",
          "description": "Zaps target location, dealing 70 / 100 / 130 / 160 ( + 80% bonus AD +30% / 35% / 40% / 45% AP ) magic damage and applying a 14% / 18% / 22% / 26% slow effect that decays over 1.5 seconds. If this ability kills an enemy, it refunds 50% of its cooldown and 100% of its Mana Cost.",
          "cooldown": "Cooldown: 7 / 6 / 4 / 3",
          "cost": "Cost: 30 / 30 / 30 / 30",
          "icon": "abilities/zeri/electrocute.webp",
          "icon_sha256": "af16f90fef689738aedd03f48a2c259f63680e228fdb26ef69a0870fdf3738f9"
        },
        {
          "slot": "W",
          "name": "Ultrashock Laser",
          "description": "Zeri fires out an electric pulse that deals 60 / 100 / 140 / 180 ( +100% AD +50% AP ) physical damage tot he first unit hit, slowing it by 30% / 35% / 40% / 45% for 2 seconds. If the pulse hits a wall, it expands into a long range laser, dealing the same damage and slow effect to enemies in the area and Critically Striking champions and monsters.",
          "cooldown": "Cooldown: 12 / 11 / 10 / 9",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/zeri/ultrashock-laser.webp",
          "icon_sha256": "cfcdd2ec81ace163b3b519f210d400e1ae4f3e6847509b4ce929e604b7c956d4"
        },
        {
          "slot": "E",
          "name": "Spark Surge",
          "description": "Dashes a short distance and builds up Electrocute! for 6 seconds, empowering the next 3 attacks to pierce, dealing 20 / 23 / 26 / 29 ( +10% bonus AD +20% bonus AP ) bonus magic damage to the first target hit ( increased by up to 100% based on her Critical Rate) and 85% / 90% / 95% / 100% damage to targets after the first. Hitting an enemy champion with an attack or ability reduces this ability's cooldown by 0.5 seconds. Critical Strikes reduce the cooldown by 1.5 seconds instead. Zeri vaults over any terrain she touches, greatly extending the dash distance.",
          "cooldown": "Cooldown: 22 / 19 / 17 / 14",
          "cost": "Cost: 80 / 80 / 80 / 80",
          "icon": "abilities/zeri/spark-surge.webp",
          "icon_sha256": "88385517fad530f6ff89bcd1c6e01e3fc0113050484512f3887904ceb5c0d86f"
        },
        {
          "slot": "R",
          "name": "Lightning Crash",
          "description": "Discharges a nova of electricity, dealing 150 / 225 / 300 ( +60% bonus AD +100% AP ) magic damage to nearby enemies. Upon hitting an enemy champion, she gains 10% Movement Speed and a 30% Attack Speed bonus that can bypass her Attack Speed cap for 5 seconds. During this time, her attack becomes a faster triple shot that chains to nearby enemies to deal 14 physical damage . Hitting an enemy champion with an ability or attack extends this ability's duration and adds 1 stack of Overcharge for 2.5 seconds. Critical Strikes add 2 additional stacks. Each stack grants 0.5 Movement Speed .",
          "cooldown": "Cooldown: 70 / 65 / 60",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/zeri/lightning-crash.webp",
          "icon_sha256": "aad1dad9e70d469fde24465019167d694059c1394b0f8f2ae2e4294e80c92563"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWQRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [
          {
            "control_key": "spark_surge_rank",
            "slot": "E",
            "rank_basis": "learned",
            "ability": "Spark Surge",
            "engine_semantics": "Spark Surge empowered attacks; activation is spark_surge_active",
            "initial_rank": 0,
            "source": "champion.source (exact slot/name); canonical champion_mechanics.json rule identity",
            "engine_evidence": "game_rules.py rank consumers and champion_mechanics.json explicit rule parameters"
          }
        ],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10067.js",
          "snapshot": "sources/c84a375df0c9195634eeb18257c266e52f60398ca2e33ae6964141d2718bf60c",
          "sha256": "c84a375df0c9195634eeb18257c266e52f60398ca2e33ae6964141d2718bf60c",
          "retrieved_at": "2026-11-01T15:46:33.527399+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:27",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "内能迁转",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "电火迸射",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "强穿激光",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "灿丽花火",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "超限爆闪",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Ziggs": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/ziggs",
        "snapshot": "sources/34ddebe22b64307f622739a8d978b451aa79884830c70f854a09a185339c7419",
        "sha256": "34ddebe22b64307f622739a8d978b451aa79884830c70f854a09a185339c7419",
        "retrieved_at": "2026-11-01T15:46:12.999334+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Short Fuse",
          "description": "Passive : all of Ziggs' abilities can deal 24% damage to turrets. Empower Bouncing Bomb to deal 17 + 3 per level ( +15% AP ) additional magic damage and 32% damage to turrets. Short Fuse's cooldown is reduced by 4 seconds when Ziggs casts an ability.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/ziggs/short-fuse.webp",
          "icon_sha256": "7ee38230e4f9e0df687b7e285a8705a01d22098012e0b68caaffaa6e1fa683a8"
        },
        {
          "slot": "Q",
          "name": "Bouncing Bomb",
          "description": "Throws a bouncing bomb that deals 70 / 135 / 200 / 265 ( +65% AP ) magic damage .",
          "cooldown": "Cooldown: 5 / 5 / 4 / 4",
          "cost": "Cost: 55 / 60 / 65 / 70",
          "icon": "abilities/ziggs/bouncing-bomb.webp",
          "icon_sha256": "9ef963da9c3da4220deb4bae91ee5ede3b673eaa7648f463f671192835a9b6b6"
        },
        {
          "slot": "W",
          "name": "Satchel Charge",
          "description": "Flings an explosive charge that can be detonated within 4 seconds to deal 70 / 115 / 160 / 205 ( +50% AP ) magic damage to enemies and knock them away. Ziggs is also knocked away without taking damage. Damages turrets and demolishes them if they are below 20% / 22.5% / 25% / 27.5% Health. The charge can be detonated while in the air.",
          "cooldown": "Cooldown: 18 / 16 / 14 / 12",
          "cost": "Cost: 65 / 65 / 65 / 65",
          "icon": "abilities/ziggs/satchel-charge.webp",
          "icon_sha256": "d0086ef18455d3d45e3b44d35747bf0e7213ebc9ef133e856d601bf2c9977199"
        },
        {
          "slot": "E",
          "name": "Hexplosive Minefield",
          "description": "Scatters proximity mines that deal 50 / 105 / 160 / 215 ( +35% AP ) magic damage on contact and slow by 35% / 40% / 45% / 50% for 2 seconds. Enemies detonating multiple mines take 40% damage from subsequent mines. Mines last 5 seconds.",
          "cooldown": "Cooldown: 15 / 15 / 15 / 15",
          "cost": "Cost: 70 / 80 / 90 / 100",
          "icon": "abilities/ziggs/hexplosive-minefield.webp",
          "icon_sha256": "50f2f0f5ae0f9d7adb2c44bbc4c828e5f9984b6421441a7eca692eb230e8d758"
        },
        {
          "slot": "R",
          "name": "Mega Inferno Bomb",
          "description": "Deploys the Mega Inferno Bomb to deal 270 / 375 / 480 ( +85% AP ) magic damage to enemies in the blast zone .",
          "cooldown": "Cooldown: 85 / 75 / 65",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/ziggs/mega-inferno-bomb.webp",
          "icon_sha256": "7d8bec013db5770f18384cbffb8ed1afcc0428ca0164674ee40b680eaa23514a"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWQRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10087.js",
          "snapshot": "sources/a7e0464292baa2cff88dcb194a383d4c0d5d1901508f14eabe5c55efb99a8c60",
          "sha256": "a7e0464292baa2cff88dcb194a383d4c0d5d1901508f14eabe5c55efb99a8c60",
          "retrieved_at": "2026-11-01T15:46:33.527284+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:28",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "一触即发",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "弹跳炸弹",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "定点爆破",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "海克斯爆破雷区",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "科学的地狱火炮",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Zilean": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/zilean",
        "snapshot": "sources/2d51c8413dccab03296a3a399416a7b8a1cb393eee2b5345ddda717a95c2967e",
        "sha256": "2d51c8413dccab03296a3a399416a7b8a1cb393eee2b5345ddda717a95c2967e",
        "retrieved_at": "2026-11-01T15:46:12.365618+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Time in a Bottle",
          "description": "Stores time as Experience at a rate of 20 / 50 / 80 XP per 5 seconds. Zilean can grant this Experience to the nearest allied champion when he has enough to complete their next level up by tapping the minion button. Doing so gives Zilean the same amount of Experience. Experience can only be imparted to allies who can level up. If Zilean takes damage or is crown controlled while imparting Experience, the process will be interrupted.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/zilean/time-in-a-bottle.webp",
          "icon_sha256": "a7892ea938b1c96b64b615e2773ef23b3f3e1deaaf3449f7a1c698ec11ba6e7b"
        },
        {
          "slot": "Q",
          "name": "Time Bomb",
          "description": "Tosses a Time Bomb to a target location. The bomb sticks to the first unit which comes within a small area around it. After 3 seconds, it detonates, dealing 60 / 125 / 190 / 255 ( +75% AP ) magic damage to the target and nearby enemies. The bomb prioritizes champions and units that are already carrying a bomb. Early detonation : Placing a second bomb on the same target detonates the first bomb, stunning enemies in the blast for 1.2 / 1.3 / 1.4 / 1.5 seconds. Charge : Stores up to 2 charges. Charge Time : 12 / 11.5 / 11 / 10.5 seconds.",
          "cooldown": "Cooldown: 13 / 12 / 11 / 10",
          "cost": "Cost: 60 / 65 / 70 / 75",
          "icon": "abilities/zilean/time-bomb.webp",
          "icon_sha256": "7d09f24fac3c2136b65a5766de697e087b006a8fc39b552489c6128ed51b2ae4"
        },
        {
          "slot": "W",
          "name": "Twisted Timeflow",
          "description": "Makes time flow faster for himself, applying Fleeting Time to himself and gaining a shield that absorbs 45 / 70 / 95 / 120 ( +45% AP ) damage . Zilean also grants Fleeting Time and an identical shield to the nearest allied champion for 3 seconds. Fleeting Time : Increases projectile speed by 60% and grants 25% / 35% / 45% / 55% ( +0.06% AP ) Movement Speed . While Zilean's Fleeting Time is active, his Basic Ability Haste is increased by 80% .",
          "cooldown": "Cooldown: 14 / 12 / 11 / 10",
          "cost": "Cost: 35 / 35 / 35 / 35",
          "icon": "abilities/zilean/twisted-timeflow.webp",
          "icon_sha256": "4e72ccd7837c078af42f6f01be9647078d7c32ea0af72bd64f8a2e8577e35ecd"
        },
        {
          "slot": "E",
          "name": "Temporal Mirage",
          "description": "Creates a time-bending force field for 2.5 seconds. While within the force field, enemy champions are slowed by 20% / 25% / 30% / 35% ( +5% AP ) and projectiles by 80% .",
          "cooldown": "Cooldown: 25 / 25 / 25 / 25",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/zilean/temporal-mirage.webp",
          "icon_sha256": "9dacbceeaa13b6512e8311c44737e5daba49d5dec25d64255276587e166b81f3"
        },
        {
          "slot": "R",
          "name": "Chronoshift",
          "description": "Places a protective time rune that lasts 5 seconds on himself or an allied champion. If the rune bearer takes lethal damage during this time, they teleport back in time and become untargetable for 3 seconds before they are revived and healed for 600 / 850 / 1000 ( +200% AP ) Health . If the rune bearer does not trigger the rune's revival effect, 10% of Chronoshift's cooldown will be refunded.",
          "cooldown": "Cooldown: 110 / 95 / 80",
          "cost": "Cost: 125 / 125 / 125",
          "icon": "abilities/zilean/chronoshift.webp",
          "icon_sha256": "e552439c42bf8b1f57fb02b68c656ff4931d0c17962c4732e70ad72154609d81"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QWEQRQQWRWWEREE"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "E": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10080.js",
          "snapshot": "sources/b871af3ab18f43e2b0d996fdaa667db06428929d3a1c045b2542654695ea9be1",
          "sha256": "b871af3ab18f43e2b0d996fdaa667db06428929d3a1c045b2542654695ea9be1",
          "retrieved_at": "2026-11-01T15:46:33.532981+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:27",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "瓶中时光",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "定时炸弹",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "曲时涡流",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "缓时蜃境",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "时光倒流",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Zoe": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/zoe",
        "snapshot": "sources/de6538f4192d8513ef8aa40f84ad8953db1966aa2218ebcb65a61fda20097618",
        "sha256": "de6538f4192d8513ef8aa40f84ad8953db1966aa2218ebcb65a61fda20097618",
        "retrieved_at": "2026-11-01T15:46:12.393399+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "More Sparkles!",
          "description": "After using an Ability, Zoe's next Attack deals an additional 9 - 128 ( +20% AP ) magic damage . More Sparkles! deals damage instantly, and deals 50% damage to structures.",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/zoe/more-sparkles.webp",
          "icon_sha256": "f3a60df742165ef8ad98e5d020936406c61851d48095e027c97ec10d9793feaa"
        },
        {
          "slot": "Q",
          "name": "Paddle Star",
          "description": "Zoe fires a star that deals increasing damage the further it travels to the first enemy hit dealing between 45 / 80 / 115 / 150 ( +60% AP ) and 75 / 162.5 / 250 / 337.5 ( +150% AP ) magic damage . Enemies surrounding the target take 80% damage. Zoe can recast this Ability to redirect the missile to a new position near Zoe.",
          "cooldown": "Cooldown: 8 / 7 / 7 / 6",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/zoe/paddle-star.webp",
          "icon_sha256": "a388a176d58d65ba94fdb8864f5fce905aa4a89811dc2dae39770d3e99222f25"
        },
        {
          "slot": "W",
          "name": "Spell Thief",
          "description": "Passive : Enemies drop spell shards when casting a Spell or using a Boot Enchantment. Specific minions also drop a spell shards when Zoe, or a nearby ally, kills them. Zoe can pick up this shard to cast that ability once. Passive : When Zoe casts this Ability or any Spell, she gains 25% / 30% / 35% / 40% Movement Speed for 2 seconds and tosses 3 missiles at the target she Attacked most recently. These missiles deal 25 / 35 / 45 / 55 ( +15% AP ) magic damage each. Active : Cast the Ability from a spell shard Zoe has picked up Spell shards last on the ground for 20 seconds. Each missile can apply More Sparkles!",
          "cooldown": "Cooldown: 0 / 0 / 0",
          "cost": "",
          "icon": "abilities/zoe/spell-thief.webp",
          "icon_sha256": "ba4e6bcdace60729ea2a2f27d6975e1e03b769fbee6633777d1d64248302b7f9"
        },
        {
          "slot": "E",
          "name": "Sleepy Trouble Bubble",
          "description": "Zoe dropkicks a bubble that deals 40 / 90 / 140 / 190 ( +50% AP ) magic damage , lingering as a trap if it doesn't hit anything. The bubble's range is extended when flying over terrain. After a delay, the victim falls Asleep for 2 seconds. Attacks and Ability hits wake them up, dealing 40 / 90 / 140 / 190 ( +50% AP ) bonus true damage . Before the target falls Asleep, they are Drowsy, becoming increasingly slowed (up to 15% / 20% / 25% / 30% ).",
          "cooldown": "Cooldown: 15 / 14 / 13 / 12",
          "cost": "Cost: 80 / 80 / 80 / 80",
          "icon": "abilities/zoe/sleepy-trouble-bubble.webp",
          "icon_sha256": "20fbe1f5d53546e706b8a58c34060d9b2ee6bce74c0877585a8f1c199806ebb6"
        },
        {
          "slot": "R",
          "name": "Portal Jump",
          "description": "Zoe teleports to a nearby position for 1 second. Afterwards, she teleports back. Zoe can use Abilities and attack, but can't move during this time.",
          "cooldown": "Cooldown: 11 / 8 / 5",
          "cost": "Cost: 50 / 50 / 50",
          "icon": "abilities/zoe/portal-jump.webp",
          "icon_sha256": "e5699335f44e1e24cb2bb7df3e62acf465b76122f858b9205997c89c27ac81d7"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "QEWQRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10014.js",
          "snapshot": "sources/6b0ff16978b3a69ed3ba8e53c8c55913c244eebcca59bfef9da0de9203836866",
          "sha256": "6b0ff16978b3a69ed3ba8e53c8c55913c244eebcca59bfef9da0de9203836866",
          "retrieved_at": "2026-11-01T15:46:33.774349+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:24",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "烟火四射！",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "飞星乱入！",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "窃法巧手",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "催眠气泡",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "折返跃迁",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    },
    "Zyra": {
      "source": {
        "url": "https://www.wildriftfire.com/guide/zyra",
        "snapshot": "sources/31cef28d79840c734e24f485ec33c647b8ec77cb4d1ba72e0ccb0c508b89c2d9",
        "sha256": "31cef28d79840c734e24f485ec33c647b8ec77cb4d1ba72e0ccb0c508b89c2d9",
        "retrieved_at": "2026-11-01T15:46:12.524600+00:00"
      },
      "guide_patch": "7.3d",
      "abilities": [
        {
          "slot": "P",
          "name": "Garden of Thorns",
          "description": "A Thorn Spitter with 30 - 240 ( +22% - 50% AP ) Health sprouts when Grasping Roots first hits an enemy champion. If no enemy champion is hit, a Thorn Spitter will sprout when Grasping Roots ends. Thorn Spitters automatically attack targets within 6 seconds of sprouting, dealing 10 - 108 ( +10% AP ) magic damage . An additional Thorn Spitter sprouts with every enemy champion, large monster, or epic monster Deadly Spines or Stranglethorns hits. Thorn Spitters deal an additional 23 - 65 damage against monsters. Thorn Spitters spawned after the first deal 50% damage against the same target. Enemy champions' abilities deal 35% damage against Thorn Spitters . Non-epic monsters deal 35% damage against Thorn Spitters .",
          "cooldown": "",
          "cost": "",
          "icon": "abilities/zyra/garden-of-thorns.webp",
          "icon_sha256": "c9cc2a4b85df84bb256a493959787695bb2b10c5f6e12525afb9794df50985b8"
        },
        {
          "slot": "Q",
          "name": "Deadly Spines",
          "description": "Vines spread and burst into spines, dealing 60 / 115 / 170 / 225 ( +60% AP ) magic damage and sprouting 1 Thorn Spitter .",
          "cooldown": "Cooldown: 8 / 7 / 7 / 6",
          "cost": "Cost: 75 / 75 / 75 / 75",
          "icon": "abilities/zyra/deadly-spines.webp",
          "icon_sha256": "8a951e4f22e298e36001226ceced817057fb7ed5fb3d33073afb5ea37d69f3cc"
        },
        {
          "slot": "W",
          "name": "Rampant Growth",
          "description": "Nearby Thorn Spitters become enraged, resetting their duration and gaining 35% / 40% / 45% / 60% Health and 50% Attack Speed .",
          "cooldown": "Cooldown: 18 / 16 / 14 / 12",
          "cost": "Cost: 50 / 50 / 50 / 50",
          "icon": "abilities/zyra/rampant-growth.webp",
          "icon_sha256": "21bed4ec0275f1f8d0226fe65b19c1ea0604c38ff86d68b9f560731a7bb1382a"
        },
        {
          "slot": "E",
          "name": "Grasping Roots",
          "description": "Zyra sends binding vines forward, rooting enemies hit for 1 / 1.25 / 1.5 / 1.75 seconds, and dealing 60 / 100 / 140 / 180 ( +40% AP ) magic damage . A Thorn Spitter spwans when the ability first hits an enemy champion or when it ends. (Large and epic monsters are also considered as champions.)",
          "cooldown": "Cooldown: 12 / 12 / 12 / 12",
          "cost": "Cost: 60 / 60 / 60 / 60",
          "icon": "abilities/zyra/grasping-roots.webp",
          "icon_sha256": "9075d1101ce2b8580f4933d98d53c287eed50e80189ace1b17e0deb763e3ef67"
        },
        {
          "slot": "R",
          "name": "Stranglethorns",
          "description": "Zyra summons the fury of nature, growing a twisted thicket that deals 150 / 225 / 300 ( +50% AP ) magic damage to enemies. After 2 seconds, the vines snap upwards, knocking up enemies for 1 second. The Thorn Spitters within the thicket become enraged, resetting their duration and gaining 50% bonus Health and 50% bonus Attack Speed .",
          "cooldown": "Cooldown: 80 / 70 / 60",
          "cost": "Cost: 100 / 100 / 100",
          "icon": "abilities/zyra/stranglethorns.webp",
          "icon_sha256": "d656ae4b2dea4868e05d07690039c2c2f0daa7be39aafa4acef4a475c596dcb0"
        }
      ],
      "plans": [
        {
          "label": "Source plan 1",
          "choices": "EQWEREEQRQQWRWW"
        },
        {
          "label": "Source plan 2",
          "choices": "QEWQRQQEREEWRWW"
        }
      ],
      "rank_rules": {
        "Q": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "W": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "E": {
          "max_rank": 4,
          "initial_rank": 0,
          "rank_min_levels": null,
          "source_ids": [
            "standard"
          ]
        },
        "R": {
          "max_rank": 3,
          "initial_rank": 0,
          "rank_min_levels": [
            5,
            9,
            13
          ],
          "source_ids": [
            "standard"
          ]
        }
      },
      "observed_recommended_upgrade_levels": {
        "Q": [
          [
            2,
            8,
            10,
            11
          ],
          [
            1,
            4,
            6,
            7
          ]
        ],
        "W": [
          [
            3,
            12,
            14,
            15
          ],
          [
            3,
            12,
            14,
            15
          ]
        ],
        "E": [
          [
            1,
            4,
            6,
            7
          ],
          [
            2,
            8,
            10,
            11
          ]
        ],
        "R": [
          [
            5,
            9,
            13
          ],
          [
            5,
            9,
            13
          ]
        ]
      },
      "notes": [],
      "combat_sync": {
        "mapped_controls": [],
        "unmapped_controls": [],
        "scope": "Only canonical champion combat-rank controls. No automatic casts, forms, evolutions or unsupported spell damage.",
        "variant_policy": "Both forms, empowered versions and Hwei subject spells share their source Q/W/E slot. Only explicitly declared combat controls are synchronized.",
        "current_client_verified": false
      },
      "official_library_inspection": {
        "source": {
          "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10063.js",
          "snapshot": "sources/d38595ad3711c083d4412ea7e87a4baaf08fd3fef4c21348b380fb5f60e722bc",
          "sha256": "d38595ad3711c083d4412ea7e87a4baaf08fd3fef4c21348b380fb5f60e722bc",
          "retrieved_at": "2026-11-01T15:46:33.774208+00:00"
        },
        "region": "China",
        "library_version": "7.3",
        "file_time": "2026-10-28 14:32:26",
        "spell_fields": [
          "abilityIconPath",
          "abilityVideoPath",
          "cdtime",
          "costtype",
          "costvalue",
          "description",
          "detail",
          "heroId",
          "name",
          "spellId",
          "spellKey",
          "variType1",
          "variType10",
          "variType11",
          "variType12",
          "variType13",
          "variType14",
          "variType15",
          "variType16",
          "variType17",
          "variType18",
          "variType19",
          "variType2",
          "variType20",
          "variType3",
          "variType4",
          "variType5",
          "variType6",
          "variType7",
          "variType8",
          "variType9",
          "variTypeNum",
          "variValue1",
          "variValue10",
          "variValue11",
          "variValue12",
          "variValue13",
          "variValue14",
          "variValue15",
          "variValue16",
          "variValue17",
          "variValue18",
          "variValue19",
          "variValue2",
          "variValue20",
          "variValue3",
          "variValue4",
          "variValue5",
          "variValue6",
          "variValue7",
          "variValue8",
          "variValue9"
        ],
        "rank_detail_counts": [
          {
            "spell_index": 0,
            "name": "荆棘花园",
            "rank_detail_count": 1
          },
          {
            "spell_index": 1,
            "name": "致命棘刺",
            "rank_detail_count": 4
          },
          {
            "spell_index": 2,
            "name": "狂野生长",
            "rank_detail_count": 4
          },
          {
            "spell_index": 3,
            "name": "缠绕之根",
            "rank_detail_count": 4
          },
          {
            "spell_index": 4,
            "name": "绞杀之藤",
            "rank_detail_count": 3
          }
        ],
        "rank_gate_fields_found": [],
        "limitation": "Public champion library supplies per-rank descriptions, not minimum champion-level upgrade gates. Rank-table counts corroborate caps, not unlock levels. Chinese source values are not silently substituted into English tooltips."
      },
      "legality": {
        "status": "partial_source_evidence",
        "current_client_verified": false,
        "missing_rules": [
          "Minimum champion levels for basic-ability ranks are not supplied by the available rule sources."
        ],
        "applied_constraints": [
          "15 level-allocation positions, at most one point per position",
          "explicit standard/exception rank caps and innate ranks",
          "standard paid ultimate minimum levels 5/9/13, excluding innate/transformation exceptions"
        ]
      }
    }
  },
  "rule_coverage": {
    "status": "external_rule_source_prerequisite_missing",
    "champion_count": 142,
    "description_count": 715,
    "source_plan_count": 164,
    "official_library_receipt_count": 142,
    "fully_legality_verified_champion_count": 0,
    "standard_paid_ultimate_gate_champions": [
      "Aatrox",
      "Ahri",
      "Akali",
      "Akshan",
      "Alistar",
      "Ambessa",
      "Amumu",
      "Annie",
      "Ashe",
      "Aurelion Sol",
      "Aurora",
      "Bard",
      "Blitzcrank",
      "Brand",
      "Braum",
      "Caitlyn",
      "Camille",
      "Cho'Gath",
      "Corki",
      "Darius",
      "Diana",
      "Dr. Mundo",
      "Draven",
      "Ekko",
      "Evelynn",
      "Ezreal",
      "Fiddlesticks",
      "Fiora",
      "Fizz",
      "Galio",
      "Garen",
      "Gnar",
      "Gragas",
      "Graves",
      "Gwen",
      "Hecarim",
      "Heimerdinger",
      "Hwei",
      "Irelia",
      "Janna",
      "Jarvan IV",
      "Jax",
      "Jhin",
      "Jinx",
      "K'Sante",
      "Kai'Sa",
      "Kalista",
      "Karma",
      "Kassadin",
      "Katarina",
      "Kayle",
      "Kayn",
      "Kennen",
      "Kha'Zix",
      "Kindred",
      "Kog'Maw",
      "Lee Sin",
      "Leona",
      "Lillia",
      "Lissandra",
      "Lucian",
      "Lulu",
      "Lux",
      "Malphite",
      "Maokai",
      "Master Yi",
      "Mel",
      "Milio",
      "Miss Fortune",
      "Mordekaiser",
      "Morgana",
      "Nami",
      "Nasus",
      "Nautilus",
      "Nilah",
      "Nocturne",
      "Norra",
      "Nunu & Willump",
      "Olaf",
      "Orianna",
      "Ornn",
      "Pantheon",
      "Poppy",
      "Pyke",
      "Rakan",
      "Rammus",
      "Rell",
      "Renekton",
      "Rengar",
      "Riven",
      "Rumble",
      "Ryze",
      "Samira",
      "Senna",
      "Seraphine",
      "Sett",
      "Shen",
      "Shyvana",
      "Singed",
      "Sion",
      "Sivir",
      "Skarner",
      "Smolder",
      "Sona",
      "Soraka",
      "Swain",
      "Syndra",
      "Taliyah",
      "Talon",
      "Teemo",
      "Thresh",
      "Tristana",
      "Tryndamere",
      "Twisted Fate",
      "Twitch",
      "Urgot",
      "Varus",
      "Vayne",
      "Veigar",
      "Vel'Koz",
      "Vex",
      "Vi",
      "Viego",
      "Viktor",
      "Vladimir",
      "Volibear",
      "Warwick",
      "Wukong",
      "Xayah",
      "Xin Zhao",
      "Yasuo",
      "Yone",
      "Yunara",
      "Yuumi",
      "Zed",
      "Zeri",
      "Ziggs",
      "Zilean",
      "Zoe",
      "Zyra"
    ],
    "innate_rank_champions": [
      "Jayce",
      "Nidalee",
      "Yuumi"
    ],
    "missing_source_prerequisite": "An authoritative/current-client table mapping champion, slot and resulting rank to minimum champion level, with free initial ranks distinguished from spent points.",
    "affected_rules": [
      {
        "champions": [
          "Aatrox",
          "Ahri",
          "Akali",
          "Akshan",
          "Alistar",
          "Ambessa",
          "Amumu",
          "Annie",
          "Ashe",
          "Aurelion Sol",
          "Aurora",
          "Bard",
          "Blitzcrank",
          "Brand",
          "Braum",
          "Caitlyn",
          "Camille",
          "Cho'Gath",
          "Corki",
          "Darius",
          "Diana",
          "Dr. Mundo",
          "Draven",
          "Ekko",
          "Evelynn",
          "Ezreal",
          "Fiddlesticks",
          "Fiora",
          "Fizz",
          "Galio",
          "Garen",
          "Gnar",
          "Gragas",
          "Graves",
          "Gwen",
          "Hecarim",
          "Heimerdinger",
          "Hwei",
          "Irelia",
          "Janna",
          "Jarvan IV",
          "Jax",
          "Jayce",
          "Jhin",
          "Jinx",
          "K'Sante",
          "Kai'Sa",
          "Kalista",
          "Karma",
          "Kassadin",
          "Katarina",
          "Kayle",
          "Kayn",
          "Kennen",
          "Kha'Zix",
          "Kindred",
          "Kog'Maw",
          "Lee Sin",
          "Leona",
          "Lillia",
          "Lissandra",
          "Lucian",
          "Lulu",
          "Lux",
          "Malphite",
          "Maokai",
          "Master Yi",
          "Mel",
          "Milio",
          "Miss Fortune",
          "Mordekaiser",
          "Morgana",
          "Nami",
          "Nasus",
          "Nautilus",
          "Nidalee",
          "Nilah",
          "Nocturne",
          "Norra",
          "Nunu & Willump",
          "Olaf",
          "Orianna",
          "Ornn",
          "Pantheon",
          "Poppy",
          "Pyke",
          "Rakan",
          "Rammus",
          "Rell",
          "Renekton",
          "Rengar",
          "Riven",
          "Rumble",
          "Ryze",
          "Samira",
          "Senna",
          "Seraphine",
          "Sett",
          "Shen",
          "Shyvana",
          "Singed",
          "Sion",
          "Sivir",
          "Skarner",
          "Smolder",
          "Sona",
          "Soraka",
          "Swain",
          "Syndra",
          "Taliyah",
          "Talon",
          "Teemo",
          "Thresh",
          "Tristana",
          "Tryndamere",
          "Twisted Fate",
          "Twitch",
          "Urgot",
          "Varus",
          "Vayne",
          "Veigar",
          "Vel'Koz",
          "Vex",
          "Vi",
          "Viego",
          "Viktor",
          "Vladimir",
          "Volibear",
          "Warwick",
          "Wukong",
          "Xayah",
          "Xin Zhao",
          "Yasuo",
          "Yone",
          "Yunara",
          "Yuumi",
          "Zed",
          "Zeri",
          "Ziggs",
          "Zilean",
          "Zoe",
          "Zyra"
        ],
        "rule": "Minimum champion levels for all Q/W/E paid ranks; recommendations are not unlock rules."
      },
      {
        "champions": [
          "Jayce"
        ],
        "rule": "Unlock gates for five-rank Q/W/E; R is evidenced innate and non-upgradeable."
      },
      {
        "champions": [
          "Yuumi"
        ],
        "rule": "Fifth Q rank unlock and paid W rank gates after its free initial rank."
      },
      {
        "champions": [
          "Nidalee"
        ],
        "rule": "Paid R rank gates after its free initial rank; do not silently apply standard R rank indexing."
      },
      {
        "champions": [
          "Nidalee"
        ],
        "rule": "Raw secondary ability page quotes 6/11/16; rejected because level 16 exceeds the Wild Rift level cap."
      }
    ],
    "research_boundaries": [
      {
        "url": "https://support.riotgames.com/en-us/wild-rift/gameplay/map-and-modes",
        "finding": "Official mode/training overview, not a rank-unlock table."
      },
      {
        "url": "https://wildrift.leagueoflegends.com/en-us/news/game-updates/wild-rift-patch-notes-2-5a/",
        "finding": "Official Jayce release notes do not specify his five-rank unlock levels."
      },
      {
        "url": "https://wildrift.leagueoflegends.com/en-us/news/game-updates/wild-rift-closed-beta-patch-notes/",
        "finding": "Official per-rank stat changes do not establish global basic-rank unlock gates."
      },
      {
        "finding": "Every available cached official champion-library receipt is inspected above; spell schema supplies per-rank descriptions, not upgrade-level gate fields."
      },
      {
        "source_id": "nidalee_raw_gate_rejected",
        "url": "https://wiki.leagueoflegends.com/en-us/Template:WR_Data_Nidalee/Aspect_of_the_Cougar?action=raw",
        "finding": "Raw ability template contains explicit 6/11/16 gates, incompatible with Wild Rift maximum level 15; not applied."
      },
      {
        "source_id": "yuumi_raw",
        "url": "https://wiki.leagueoflegends.com/en-us/Template:WR_Data_Yuumi/You_and_Me!?action=raw",
        "finding": "Raw You and Me template corroborates free W/Q5; 1;6;11 belongs to level-dependent cooldown, not paid-rank legality."
      },
      {
        "source_id": "public_riot_api_schema",
        "url": "https://raw.githubusercontent.com/iArmanKarimi/wildrift-champions-api/master/wildrift_api_reference.md",
        "finding": "Independent public-web API wrapper documents ability descriptions/media/types, no rank-upgrade table."
      },
      {
        "source_id": "merged_api_boundary",
        "url": "https://raw.githubusercontent.com/ry2x/WildRift-Merged-Champion-Data/master/readme_en.md",
        "finding": "Merged PC/WR identity API is not independent WR rank-gate evidence; PC rules deliberately not imported."
      },
      {
        "source_id": "official_rank_counts_6_3d",
        "url": "https://wildrift.leagueoflegends.com/en-us/news/game-updates/wild-rift-patch-notes-6-3d/",
        "finding": "Official Yuumi rework has five Q and four W value entries; Jayce W has five value entries. Not supplied: Minimum champion levels for any resulting rank; value-array positions are not unlock gates."
      },
      {
        "source_id": "jayce_official_library_recheck",
        "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10101.js",
        "finding": "Fresh China-region official library corroborates Q/W/E five ranks and one R description. Not supplied: Minimum champion levels; variType fields label damage/cost/cooldown values, not upgrade gates."
      },
      {
        "source_id": "yuumi_official_library_recheck",
        "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10020.js",
        "finding": "Fresh China-region official library corroborates five Q, four W/E and three R descriptions. Not supplied: Q fifth-rank and paid W minimum levels; cooldown scaling is not a paid-rank gate."
      },
      {
        "source_id": "nidalee_official_library_recheck",
        "url": "https://game.gtimg.cn/images/lgamem/act/lrlib/js/hero/10084.js",
        "finding": "Fresh China-region official library states innate learned R rank 1 and four R descriptions. Not supplied: Minimum champion levels for paid R upgrades; neither 5/9/13 nor PC 6/11/16 is supplied here."
      }
    ]
  },
  "combat_rank_coverage": {
    "mapped_champion_count": 24,
    "mapped_control_count": 28,
    "unmapped_canonical_rank_controls": [],
    "mapping_policy": "Explicit reviewed slot/ability/rule identities; no fuzzy matching. Innate learned ranks are distinct from paid upgrades.",
    "mapping_file": "skill_combat.py",
    "engine_activation_contract": {
      "Ashe": "focus_active",
      "Zeri": "spark_surge_active"
    },
    "non_effectful_declared_controls": [
      "Rell.ferromancy_rank has no rank-indexed engine consumer"
    ],
    "no_rank_control_champions": [
      "Aatrox",
      "Ahri",
      "Akali",
      "Akshan",
      "Alistar",
      "Ambessa",
      "Amumu",
      "Annie",
      "Aurelion Sol",
      "Aurora",
      "Bard",
      "Blitzcrank",
      "Brand",
      "Braum",
      "Caitlyn",
      "Camille",
      "Corki",
      "Darius",
      "Diana",
      "Dr. Mundo",
      "Draven",
      "Ekko",
      "Evelynn",
      "Ezreal",
      "Fiddlesticks",
      "Fiora",
      "Fizz",
      "Galio",
      "Garen",
      "Gragas",
      "Gwen",
      "Hecarim",
      "Heimerdinger",
      "Hwei",
      "Irelia",
      "Janna",
      "Jarvan IV",
      "Jhin",
      "K'Sante",
      "Kai'Sa",
      "Karma",
      "Kassadin",
      "Katarina",
      "Kayn",
      "Kha'Zix",
      "Kindred",
      "Kog'Maw",
      "Lee Sin",
      "Leona",
      "Lillia",
      "Lissandra",
      "Lucian",
      "Lulu",
      "Lux",
      "Malphite",
      "Maokai",
      "Master Yi",
      "Milio",
      "Miss Fortune",
      "Mordekaiser",
      "Morgana",
      "Nami",
      "Nasus",
      "Nautilus",
      "Nocturne",
      "Norra",
      "Nunu & Willump",
      "Olaf",
      "Orianna",
      "Ornn",
      "Pantheon",
      "Poppy",
      "Pyke",
      "Rakan",
      "Renekton",
      "Rengar",
      "Riven",
      "Rumble",
      "Ryze",
      "Samira",
      "Senna",
      "Seraphine",
      "Sett",
      "Shen",
      "Singed",
      "Sion",
      "Sivir",
      "Skarner",
      "Smolder",
      "Sona",
      "Soraka",
      "Swain",
      "Syndra",
      "Taliyah",
      "Talon",
      "Teemo",
      "Tristana",
      "Twitch",
      "Urgot",
      "Veigar",
      "Vel'Koz",
      "Vex",
      "Vi",
      "Viktor",
      "Vladimir",
      "Volibear",
      "Warwick",
      "Wukong",
      "Xayah",
      "Xin Zhao",
      "Yasuo",
      "Yone",
      "Yuumi",
      "Zed",
      "Ziggs",
      "Zilean",
      "Zoe",
      "Zyra"
    ]
  }
}
