{
  "schema_version": 1,
  "article": "attack-article.md",
  "title": "Strength, Agility and Attack Power in WoW Forever",
  "created_date": "2026-10-04",
  "ruleset": "WoW Forever beta",
  "build": "1.60.1.70205",
  "observation_scope": "Public native client snapshot and matching UI source; no live beta play or combat logs.",
  "confidence_definitions": {
    "high_for_client_snapshot": "Direct row/code inspected, exact build/source hash preserved; not a server measurement.",
    "high_for_stated_model_only": "Math verified for declared assumptions; applicability not independently measured.",
    "high_for_declared_assumptions": "Invented worked example, no real spell/buff recommendation.",
    "high_for_official_published_statement": "Official dated published change, separately scoped from native client rows and observed combat."
  },
  "sources": [
    {
      "id": "native-classes",
      "url": "https://wago.tools/db2/ChrClasses/csv?build=1.60.1.70205",
      "type": "native_client_table_public_export",
      "retrieved_date": "2026-10-04",
      "build": "1.60.1.70205",
      "sha256": "140b8ecf36832e9bedffdaebaa434707fdc344d11bb10645d47ef2b31a2e4aac",
      "table": "ChrClasses",
      "publisher": "Blizzard game data; wago.tools export"
    },
    {
      "id": "native-expected-stats",
      "url": "https://wago.tools/db2/PlayerExpectedStat/csv?build=1.60.1.70205",
      "type": "native_client_table_public_export",
      "retrieved_date": "2026-10-04",
      "build": "1.60.1.70205",
      "sha256": "df348b2129187399065cbf2b3a1da9bc2f30eaf757906110aed16a9d198d02fe",
      "table": "PlayerExpectedStat",
      "publisher": "Blizzard game data; wago.tools export"
    },
    {
      "id": "native-ui-stats",
      "url": "https://github.com/Gethe/wow-ui-source/blob/e3ecc27b64d30fdc735a3f6579b866858f9f9df1/Interface/AddOns/Blizzard_UIPanels_Game/Camelot/PaperDollFrameStats.lua",
      "type": "native_client_ui_source_public_mirror",
      "retrieved_date": "2026-10-04",
      "build": "1.60.1.70205",
      "sha256": "9621698227696d297f936705b581a0ea40753391d2b1924853ce74605eda4a49",
      "commit": "e3ecc27b64d30fdc735a3f6579b866858f9f9df1",
      "commit_label": "1.60.1 (70205)",
      "commit_date": "2026-10-03T02:01:07Z",
      "publisher": "Blizzard UI source; Gethe mirror"
    },
    {
      "id": "native-ui-damage",
      "url": "https://github.com/Gethe/wow-ui-source/blob/e3ecc27b64d30fdc735a3f6579b866858f9f9df1/Interface/AddOns/Blizzard_UIPanels_Game/Camelot/PaperDollFrame.lua",
      "type": "native_client_ui_source_public_mirror",
      "retrieved_date": "2026-10-04",
      "build": "1.60.1.70205",
      "sha256": "20980a035c36e7690b6e500286d0cd201fcd6037a901e7f0276a9cb683f0535a",
      "commit": "e3ecc27b64d30fdc735a3f6579b866858f9f9df1",
      "publisher": "Blizzard UI source; Gethe mirror"
    },
    {
      "id": "native-effects",
      "url": "https://wago.tools/db2/SpellEffect/csv?build=1.60.1.70205",
      "type": "native_client_table_public_export",
      "retrieved_date": "2026-10-04",
      "build": "1.60.1.70205",
      "sha256": "4df9522a8c8ae84ff3454642b5d2925124974b700ece2d13053ad90405a02416",
      "table": "SpellEffect",
      "publisher": "Blizzard game data; wago.tools export"
    },
    {
      "id": "dbdefs-classes",
      "url": "https://github.com/wowdev/WoWDBDefs/blob/master/definitions/ChrClasses.dbd",
      "type": "community_native_layout_definitions",
      "retrieved_date": "2026-10-04",
      "build": "1.60.1.70205",
      "confidence": "field names cross-check; mutable branch; numerical values independently read from native CSV"
    },
    {
      "id": "foreverdb-crosscheck",
      "url": "https://foreverdb.net/stats",
      "type": "original_author_native_data_explanation",
      "retrieved_date": "2026-10-04",
      "build": "1.60.1.70205",
      "used_as": "cross-check and lead only; not sole support for native numerical article claims"
    },
    {
      "id": "classic-conflict",
      "url": "https://www.warcrafttavern.com/forever/guides/stats/",
      "type": "published_author_guide",
      "retrieved_date": "2026-10-04",
      "build": null,
      "used_as": "conflicting guide only; not support for article conversions"
    },
    {
      "id": "blizzard-oct1",
      "url": "https://us.forums.blizzard.com/en/wow/t/wow-forever-beta-development-notes-%E2%80%93-updated-october-1/2360696/4",
      "type": "official_blizzard_beta_development_notes",
      "published_date": "2026-10-01",
      "retrieved_date": "2026-10-04",
      "build": null,
      "author": "Kaivax",
      "scope": "Official published beta changes; post gives no numeric client build."
    },
    {
      "id": "native-ui-load-order",
      "url": "https://github.com/Gethe/wow-ui-source/blob/e3ecc27b64d30fdc735a3f6579b866858f9f9df1/Interface/AddOns/Blizzard_UIPanels_Game/Blizzard_UIPanels_Game.toc",
      "type": "native_client_ui_source_public_mirror",
      "retrieved_date": "2026-10-04",
      "build": "1.60.1.70205",
      "sha256": "c4f57e9b6df5597c134f8434391e71f8019d9bd7a2f7682d87f3b893449ba7b1",
      "commit": "e3ecc27b64d30fdc735a3f6579b866858f9f9df1",
      "publisher": "Blizzard UI source; Gethe mirror"
    },
    {
      "id": "native-ui-paperdoll-xml",
      "url": "https://github.com/Gethe/wow-ui-source/blob/e3ecc27b64d30fdc735a3f6579b866858f9f9df1/Interface/AddOns/Blizzard_UIPanels_Game/Camelot/PaperDollFrame.xml",
      "type": "native_client_ui_source_public_mirror",
      "retrieved_date": "2026-10-04",
      "build": "1.60.1.70205",
      "sha256": "5cd4d2ba855a87c6ae3d83aee462d14d1f9677f72d5cf9a43f2b5f2cff8956fc",
      "commit": "e3ecc27b64d30fdc735a3f6579b866858f9f9df1",
      "publisher": "Blizzard UI source; Gethe mirror"
    }
  ],
  "claims": [
    {
      "claim_id": "ATTACK-001",
      "claim": "Direct baseline AP conversions differ by class.",
      "applies_to": {
        "classes": [
          "Warrior",
          "Paladin",
          "Hunter",
          "Rogue",
          "Priest",
          "Shaman",
          "Mage",
          "Warlock",
          "Druid"
        ],
        "forms": "class baseline; form overrides separately required"
      },
      "ruleset": "WoW Forever beta",
      "build": "1.60.1.70205",
      "units": "AP points per attribute point",
      "formula": {
        "melee_delta": "delta_strength * AttackPowerPerStrength + delta_agility * AttackPowerPerAgility",
        "ranged_agility_delta": "delta_agility * RangedAttackPowerPerAgility"
      },
      "source_ids": [
        "native-classes"
      ],
      "source_urls": [
        "https://wago.tools/db2/ChrClasses/csv?build=1.60.1.70205"
      ],
      "checked_date": "2026-10-04",
      "evidence_status": "native_client_config",
      "confidence": "high_for_client_snapshot",
      "evidence": {
        "rows": [
          {
            "class_id": 1,
            "name": "Warrior",
            "melee_ap_per_strength": 2,
            "melee_ap_per_agility": 0,
            "ranged_ap_per_agility": 2
          },
          {
            "class_id": 2,
            "name": "Paladin",
            "melee_ap_per_strength": 2,
            "melee_ap_per_agility": 0,
            "ranged_ap_per_agility": 0
          },
          {
            "class_id": 3,
            "name": "Hunter",
            "melee_ap_per_strength": 1,
            "melee_ap_per_agility": 1,
            "ranged_ap_per_agility": 2
          },
          {
            "class_id": 4,
            "name": "Rogue",
            "melee_ap_per_strength": 1,
            "melee_ap_per_agility": 1,
            "ranged_ap_per_agility": 2
          },
          {
            "class_id": 5,
            "name": "Priest",
            "melee_ap_per_strength": 1,
            "melee_ap_per_agility": 0,
            "ranged_ap_per_agility": 0
          },
          {
            "class_id": 7,
            "name": "Shaman",
            "melee_ap_per_strength": 2,
            "melee_ap_per_agility": 0,
            "ranged_ap_per_agility": 0
          },
          {
            "class_id": 8,
            "name": "Mage",
            "melee_ap_per_strength": 1,
            "melee_ap_per_agility": 0,
            "ranged_ap_per_agility": 0
          },
          {
            "class_id": 9,
            "name": "Warlock",
            "melee_ap_per_strength": 1,
            "melee_ap_per_agility": 0,
            "ranged_ap_per_agility": 0
          },
          {
            "class_id": 11,
            "name": "Druid",
            "melee_ap_per_strength": 2,
            "melee_ap_per_agility": 0,
            "ranged_ap_per_agility": 0
          }
        ]
      },
      "limits": [
        "Client configuration/source is not a combat-log measurement or proof of unchanged server behaviour."
      ]
    },
    {
      "claim_id": "ATTACK-002",
      "claim": "Warrior, Rogue and Hunter native ranged conversion is 2 AP per Agility.",
      "applies_to": {
        "classes": [
          "Warrior",
          "Rogue",
          "Hunter"
        ],
        "attack": "ranged"
      },
      "ruleset": "WoW Forever beta",
      "build": "1.60.1.70205",
      "units": "ranged AP points per Agility point",
      "formula": "delta_RAP = 2 * delta_agility",
      "source_ids": [
        "native-classes",
        "native-ui-stats"
      ],
      "source_urls": [
        "https://wago.tools/db2/ChrClasses/csv?build=1.60.1.70205",
        "https://github.com/Gethe/wow-ui-source/blob/e3ecc27b64d30fdc735a3f6579b866858f9f9df1/Interface/AddOns/Blizzard_UIPanels_Game/Camelot/PaperDollFrameStats.lua"
      ],
      "checked_date": "2026-10-04",
      "evidence_status": "native_client_config",
      "confidence": "high_for_client_snapshot",
      "evidence": {
        "native_class_ids": [
          1,
          3,
          4
        ],
        "ui_lines": [
          288,
          309
        ]
      },
      "limits": [
        "Conflicts with common Classic-derived Warrior/Rogue guides; label exact beta build.",
        "Native UI calls GetRangedAttackPowerForStat rather than implementing its server result."
      ]
    },
    {
      "claim_id": "ATTACK-003",
      "claim": "Cat Form must be separated from Druid class-baseline Agility conversion.",
      "applies_to": {
        "classes": [
          "Druid"
        ],
        "forms": [
          "Cat Form"
        ]
      },
      "ruleset": "WoW Forever beta",
      "build": "1.60.1.70205",
      "units": "melee AP per Agility point",
      "formula": "cat tooltip: catFormAgility = effectiveStat",
      "source_ids": [
        "native-classes",
        "native-ui-stats"
      ],
      "source_urls": [
        "https://wago.tools/db2/ChrClasses/csv?build=1.60.1.70205",
        "https://github.com/Gethe/wow-ui-source/blob/e3ecc27b64d30fdc735a3f6579b866858f9f9df1/Interface/AddOns/Blizzard_UIPanels_Game/Camelot/PaperDollFrameStats.lua"
      ],
      "checked_date": "2026-10-04",
      "evidence_status": "native_client_config",
      "confidence": "high_for_client_snapshot",
      "evidence": {
        "ui_lines": [
          303,
          305
        ],
        "class_baseline_melee_ap_per_agility": 0,
        "cat_tooltip_melee_ap_per_agility": 1
      },
      "limits": [
        "UI tooltip supports Cat conversion; no live form-swap measurement performed.",
        "Do not apply Cat Agility conversion to bear/caster or assume equipped weapon damage drives form attacks."
      ]
    },
    {
      "claim_id": "ATTACK-004",
      "claim": "Paladin +10 Strength adds 20 baseline melee AP; +10 Agility adds zero direct baseline AP.",
      "applies_to": {
        "classes": [
          "Paladin"
        ],
        "forms": "unmodified class baseline"
      },
      "ruleset": "WoW Forever beta",
      "build": "1.60.1.70205",
      "units": "AP points",
      "formula": "10 * 2 = 20; 10 * 0 = 0",
      "source_ids": [
        "native-classes"
      ],
      "source_urls": [
        "https://wago.tools/db2/ChrClasses/csv?build=1.60.1.70205"
      ],
      "checked_date": "2026-10-04",
      "evidence_status": "derived_from_native_client_config",
      "confidence": "high_for_client_snapshot",
      "evidence": {
        "class_id": 2
      },
      "limits": [
        "Client configuration/source is not a combat-log measurement or proof of unchanged server behaviour."
      ]
    },
    {
      "claim_id": "ATTACK-005",
      "claim": "Hunter +10 Agility adds 10 melee AP and 20 ranged AP at class baseline.",
      "applies_to": {
        "classes": [
          "Hunter"
        ],
        "forms": "unmodified class baseline"
      },
      "ruleset": "WoW Forever beta",
      "build": "1.60.1.70205",
      "units": "AP points",
      "formula": "10 * 1 = 10 melee; 10 * 2 = 20 ranged",
      "source_ids": [
        "native-classes"
      ],
      "source_urls": [
        "https://wago.tools/db2/ChrClasses/csv?build=1.60.1.70205"
      ],
      "checked_date": "2026-10-04",
      "evidence_status": "derived_from_native_client_config",
      "confidence": "high_for_client_snapshot",
      "evidence": {
        "class_id": 3
      },
      "limits": [
        "Client configuration/source is not a combat-log measurement or proof of unchanged server behaviour."
      ]
    },
    {
      "claim_id": "ATTACK-006",
      "claim": "Direct Agility crit conversion is class- and level-specific; rates are probabilities per point, not percentages.",
      "applies_to": {
        "classes": [
          "Paladin"
        ],
        "levels": [
          10,
          30
        ],
        "attack": "weapon crit"
      },
      "ruleset": "WoW Forever beta",
      "build": "1.60.1.70205",
      "units": "percentage points of crit per 10 Agility",
      "formula": "delta_crit_percentage_points = delta_agility * CritPerAgility * 100",
      "source_ids": [
        "native-expected-stats",
        "native-ui-stats"
      ],
      "source_urls": [
        "https://wago.tools/db2/PlayerExpectedStat/csv?build=1.60.1.70205",
        "https://github.com/Gethe/wow-ui-source/blob/e3ecc27b64d30fdc735a3f6579b866858f9f9df1/Interface/AddOns/Blizzard_UIPanels_Game/Camelot/PaperDollFrameStats.lua"
      ],
      "checked_date": "2026-10-04",
      "evidence_status": "derived_from_native_client_config",
      "confidence": "high_for_client_snapshot",
      "evidence": {
        "rows": [
          {
            "ID": "133",
            "Level": "10",
            "ClassID": "2",
            "ContentSetID": "0",
            "BaseMana": "192",
            "Field_1_60_1_69876_005": "10",
            "Field_1_60_1_69876_006": "13",
            "CritPerAgility": "0.00171999994",
            "SpellCritPerIntellect": "0.00060000003"
          },
          {
            "ID": "153",
            "Level": "30",
            "ClassID": "2",
            "ContentSetID": "0",
            "BaseMana": "702",
            "Field_1_60_1_69876_005": "10",
            "Field_1_60_1_69876_006": "123",
            "CritPerAgility": "0.00093500002",
            "SpellCritPerIntellect": "0.000313"
          }
        ],
        "results": {
          "10": 1.71999994,
          "30": 0.93500002
        },
        "ui_lines": [
          286,
          287
        ]
      },
      "limits": [
        "Not total crit; excludes base crit and modifiers.",
        "Not a relative percentage increase and not direct spell-crit conversion."
      ]
    },
    {
      "claim_id": "ATTACK-007",
      "claim": "The matching beta AP tooltip divides effective AP by 14 for weapon DPS contribution.",
      "applies_to": {
        "classes": "player classes with applicable weapon/AP attacks",
        "attack": "client AP tooltip"
      },
      "ruleset": "WoW Forever beta",
      "build": "1.60.1.70205",
      "units": "weapon DPS per AP point",
      "formula": "max(base_AP + positive_AP + negative_AP, 0) / 14",
      "source_ids": [
        "native-ui-stats",
        "native-ui-load-order",
        "native-ui-paperdoll-xml"
      ],
      "source_urls": [
        "https://github.com/Gethe/wow-ui-source/blob/e3ecc27b64d30fdc735a3f6579b866858f9f9df1/Interface/AddOns/Blizzard_UIPanels_Game/Camelot/PaperDollFrameStats.lua",
        "https://github.com/Gethe/wow-ui-source/blob/e3ecc27b64d30fdc735a3f6579b866858f9f9df1/Interface/AddOns/Blizzard_UIPanels_Game/Blizzard_UIPanels_Game.toc",
        "https://github.com/Gethe/wow-ui-source/blob/e3ecc27b64d30fdc735a3f6579b866858f9f9df1/Interface/AddOns/Blizzard_UIPanels_Game/Camelot/PaperDollFrame.xml"
      ],
      "checked_date": "2026-10-04",
      "evidence_status": "native_client_config",
      "confidence": "high_for_client_snapshot",
      "evidence": {
        "constant_line": 8,
        "formula_line": 369,
        "ranged_setter_lines": [
          406,
          407
        ],
        "declared_load_order": {
          "main_file_line": 53,
          "later_stats_module_line": 58,
          "final_xml_line": 60,
          "earlier_constant": 3.5,
          "later_constant": 14,
          "xml_external_loaders": []
        }
      },
      "limits": [
        "Tooltip model; not total final DPS, off-hand treatment, hit table or a complete combat engine.",
        "Static declared Camelot addon order corroborates the client-tooltip basis; no live client execution or server damage test performed."
      ]
    },
    {
      "claim_id": "ATTACK-008",
      "claim": "The character-sheet average damage DPS calculation divides average range by speed.",
      "applies_to": {
        "classes": "weapon user",
        "attack": "character-sheet weapon damage display"
      },
      "ruleset": "WoW Forever beta",
      "build": "1.60.1.70205",
      "units": "damage per second",
      "formula": "(minimum_damage + maximum_damage) / (2 * speed_seconds)",
      "source_ids": [
        "native-ui-damage"
      ],
      "source_urls": [
        "https://github.com/Gethe/wow-ui-source/blob/e3ecc27b64d30fdc735a3f6579b866858f9f9df1/Interface/AddOns/Blizzard_UIPanels_Game/Camelot/PaperDollFrame.lua"
      ],
      "checked_date": "2026-10-04",
      "evidence_status": "native_client_config",
      "confidence": "high_for_client_snapshot",
      "evidence": {
        "lines": [
          953,
          958
        ]
      },
      "limits": [
        "Character sheet reads UnitDamage/UnitRangedDamage; underlying server computation is external."
      ]
    },
    {
      "claim_id": "ATTACK-009",
      "claim": "A conditional ordinary unhasted single-weapon model gives +56 damage per 2.8-second swing or +28 per 1.4-second swing from 280 AP.",
      "applies_to": {
        "classes": "ordinary weapon user",
        "attack": "unhasted single-weapon illustrative model"
      },
      "ruleset": "WoW Forever beta",
      "build": "1.60.1.70205",
      "units": "damage per swing; damage per second",
      "formula": "bonus_hit = (280 / 14) * base_weapon_speed; bonus_DPS = bonus_hit / base_weapon_speed",
      "source_ids": [
        "native-ui-stats",
        "native-ui-damage"
      ],
      "source_urls": [
        "https://github.com/Gethe/wow-ui-source/blob/e3ecc27b64d30fdc735a3f6579b866858f9f9df1/Interface/AddOns/Blizzard_UIPanels_Game/Camelot/PaperDollFrameStats.lua",
        "https://github.com/Gethe/wow-ui-source/blob/e3ecc27b64d30fdc735a3f6579b866858f9f9df1/Interface/AddOns/Blizzard_UIPanels_Game/Camelot/PaperDollFrame.lua"
      ],
      "checked_date": "2026-10-04",
      "evidence_status": "conditional_mathematical_model",
      "confidence": "high_for_stated_model_only",
      "evidence": {
        "AP": 280,
        "speeds_seconds": [
          2.8,
          1.4
        ],
        "bonus_damage": [
          56,
          28
        ],
        "bonus_DPS": 20
      },
      "limits": [
        "Assumes per-swing AP bonus follows ordinary weapon model; not a live-beta measurement.",
        "No mitigation, misses, haste, off-hand penalties, shapeshift rules, abilities or procs."
      ]
    },
    {
      "claim_id": "ATTACK-010",
      "claim": "A hypothetical 10% Strength-only modifier makes +10 Strength worth 22 AP at 2 AP/Strength while +20 flat AP stays 20.",
      "applies_to": {
        "classes": [
          "Paladin"
        ],
        "modifiers": "hypothetical 10% Strength-only modifier; no AP/damage modifier"
      },
      "ruleset": "WoW Forever beta",
      "build": "1.60.1.70205",
      "units": "AP points",
      "formula": "10 * 1.10 * 2 = 22",
      "source_ids": [
        "native-classes"
      ],
      "source_urls": [
        "https://wago.tools/db2/ChrClasses/csv?build=1.60.1.70205"
      ],
      "checked_date": "2026-10-04",
      "evidence_status": "hypothetical_arithmetic_example",
      "confidence": "high_for_declared_assumptions",
      "evidence": {
        "unmodified_AP": 20,
        "modified_AP": 22
      },
      "limits": [
        "Not an assertion of an actual buff/talent, stacking order or rounding policy."
      ]
    },
    {
      "claim_id": "ATTACK-011",
      "claim": "Coefficient type cannot be inferred solely from a nonzero raw EffectBonusCoefficient.",
      "applies_to": {
        "classes": [
          "Rogue",
          "Druid"
        ],
        "spells": [
          1752,
          768
        ]
      },
      "ruleset": "WoW Forever beta",
      "build": "1.60.1.70205",
      "units": "raw coefficient; effect type IDs",
      "formula": null,
      "source_ids": [
        "native-effects"
      ],
      "source_urls": [
        "https://wago.tools/db2/SpellEffect/csv?build=1.60.1.70205"
      ],
      "checked_date": "2026-10-04",
      "evidence_status": "native_client_config",
      "confidence": "high_for_client_snapshot",
      "evidence": {
        "examples": [
          {
            "spell_id": 1752,
            "effect_id": 680897,
            "Effect": 121,
            "EffectBonusCoefficient": 1
          },
          {
            "spell_id": 768,
            "effect_id": 679880,
            "Effect": 6,
            "EffectAura": 23,
            "EffectBonusCoefficient": 1
          }
        ]
      },
      "limits": [
        "Raw records are not effective spell scaling.",
        "Interpret effect type, traits, triggers, rank, periodic scope and overrides before calculation."
      ]
    },
    {
      "claim_id": "ATTACK-012",
      "claim": "AP/SP conversion overrides exist in the client character-sheet handling.",
      "applies_to": {
        "classes": "conditional override; not asserted active for every class"
      },
      "ruleset": "WoW Forever beta",
      "build": "1.60.1.70205",
      "units": "AP and SP points",
      "formula": null,
      "source_ids": [
        "native-ui-stats"
      ],
      "source_urls": [
        "https://github.com/Gethe/wow-ui-source/blob/e3ecc27b64d30fdc735a3f6579b866858f9f9df1/Interface/AddOns/Blizzard_UIPanels_Game/Camelot/PaperDollFrameStats.lua"
      ],
      "checked_date": "2026-10-04",
      "evidence_status": "native_client_config",
      "confidence": "high_for_client_snapshot",
      "evidence": {
        "GetOverrideAPBySpellPower_lines": [
          372,
          379
        ],
        "GetOverrideSpellPowerByAP_lines": [
          395,
          396
        ]
      },
      "limits": [
        "An API branch does not establish that a particular class/spec has the override.",
        "Reject blanket claims that AP always/never contributes to spell power."
      ]
    },
    {
      "claim_id": "ATTACK-013",
      "claim": "Higher damage per cast does not establish higher damage per mana.",
      "applies_to": {
        "classes": "all mana users",
        "spells": "invented comparison, not a real rank recommendation"
      },
      "ruleset": "WoW Forever beta",
      "build": "1.60.1.70205",
      "units": "damage per cast; damage per mana",
      "formula": "damage = base + coefficient * SP; efficiency = damage / mana_cost",
      "source_ids": [],
      "source_urls": [],
      "checked_date": "2026-10-04",
      "evidence_status": "hypothetical_arithmetic_example",
      "confidence": "high_for_declared_assumptions",
      "evidence": {
        "SP": 100,
        "lower": {
          "base": 90,
          "coefficient": 0.2,
          "cost": 30,
          "damage": 110,
          "damage_per_mana": 3.6666666666666665
        },
        "higher": {
          "base": 120,
          "coefficient": 0.4,
          "cost": 60,
          "damage": 160,
          "damage_per_mana": 2.6666666666666665
        }
      },
      "limits": [
        "Not actual spell values.",
        "No cast time/cooldown, overkill, overhealing, resource recovery or target adjustment."
      ]
    },
    {
      "claim_id": "ATTACK-014",
      "claim": "Five-second regeneration display units are not proof of five-second physical ticks.",
      "applies_to": {
        "classes": "mana users",
        "ui": "PaperDollFrame_SetManaRegen"
      },
      "ruleset": "WoW Forever beta",
      "build": "1.60.1.70205",
      "units": "mana per 5 seconds displayed from mana/second API",
      "formula": "floor(GetManaRegen_rate * 5)",
      "source_ids": [
        "native-ui-damage"
      ],
      "source_urls": [
        "https://github.com/Gethe/wow-ui-source/blob/e3ecc27b64d30fdc735a3f6579b866858f9f9df1/Interface/AddOns/Blizzard_UIPanels_Game/Camelot/PaperDollFrame.lua"
      ],
      "checked_date": "2026-10-04",
      "evidence_status": "native_client_config",
      "confidence": "high_for_client_snapshot",
      "evidence": {
        "function": "PaperDollFrame_SetManaRegen"
      },
      "limits": [
        "No continuous/tick behaviour claim; physical timing needs beta observation.",
        "UI names combat/out-of-combat are not evidence of the five-second spending-rule semantics."
      ]
    },
    {
      "claim_id": "ATTACK-015",
      "claim": "Official October1 notes state Bloodthirst45% AP ratio and Swipe3% AP scaling; Swipe tooltip fix is deferred.",
      "applies_to": {
        "classes": [
          "Warrior",
          "Druid"
        ],
        "abilities": [
          "Bloodthirst",
          "Swipe"
        ]
      },
      "ruleset": "WoW Forever beta",
      "build": null,
      "units": "AP fraction contributing to named ability damage",
      "formula": {
        "Bloodthirst": "0.45 * AP contribution",
        "Swipe": "0.03 * AP contribution"
      },
      "source_ids": [
        "blizzard-oct1"
      ],
      "source_urls": [
        "https://us.forums.blizzard.com/en/wow/t/wow-forever-beta-development-notes-%E2%80%93-updated-october-1/2360696/4"
      ],
      "checked_date": "2026-10-04",
      "evidence_status": "official_dated_beta_statement",
      "confidence": "high_for_official_published_statement",
      "evidence": {
        "published_date": "2026-10-01",
        "post_number": 4,
        "web_excerpt_lines": [
          284,
          285,
          376
        ]
      },
      "limits": [
        "No independent live combat measurement.",
        "Ability acquisition/talent level, target mitigation and modifiers are separate; no complete effective damage formula asserted.",
        "Numeric client build is unstated in post; do not relabel it as native build70205 evidence."
      ]
    }
  ],
  "contradictions": [
    {
      "id": "CONFLICT-001",
      "topic": "Warrior/Rogue ranged AP per Agility",
      "native_value": 2,
      "published_guide_value": 1,
      "source_ids": [
        "native-classes",
        "classic-conflict"
      ],
      "resolution": "Use native build70205 configuration with explicit scope. Do not silently inherit Classic value or call either live server-confirmed."
    }
  ],
  "unresolved": [
    "Live server attribute-to-AP checks, including low-level offsets/rounding.",
    "Current ability normalisation constants and exception list.",
    "Feral form damage and equipped-weapon interactions.",
    "Haste/autoattack and proc rules for each current ability.",
    "Effective talent rank/trigger/override coefficients and costs."
  ]
}
