{
  "schemaVersion": 1,
  "site": "https://dfttk.com",
  "purpose": "Delta Force weapon TTK and BTK calculation in the browser",
  "calculatorUrl": "https://dfttk.com/ai/calculator",
  "manifestUrl": "https://dfttk.com/data/v3/manifest.json",
  "modes": {
    "sol": "烽火地带，支持弹药、护甲、头盔、耐久、配件与精校",
    "mp": "全面战场，无护甲和弹药选择"
  },
  "weaponData": {
    "allowedManifestField": "weaponPacks[weaponId].combat",
    "requiredKind": "weaponCombatRuntimePack",
    "forbiddenManifestFields": ["weaponPacks[weaponId].build", "weaponPacks[weaponId].sharedBuild"],
    "note": "战斗分析只读取并对外返回 combat 战斗包；selection 选择包只在页面内部校验合法配件和弹药，不对 AI 暴露。"
  },
  "customWeaponData": {
    "mode": "sol",
    "sourceType": "userCustom",
    "storage": "当前浏览器 localStorage: dfttk.customWeapons.v2",
    "note": "自定义枪械使用已保存的最终武器与绑定弹药数值，不属于 v3 manifest，不读取 selection、combat、build 或 sharedBuild 单枪包。"
  },
  "browserApi": {
    "global": "window.DFTTK_AI",
    "readyOn": "https://dfttk.com/ai/calculator",
    "methods": {
      "searchWeapons": "searchWeapons({ mode, query, limit })",
      "listCustomWeapons": "listCustomWeapons({ query, limit }) -> userCustom metadata[]",
      "getCombatData": "getCombatData({ mode, weaponId }) -> weaponCombatRuntimePack",
      "getCustomData": "getCustomData({ customPairId }) -> userCustomCombatData",
      "calculate": "calculate({ mode, sourceType, weaponId, customPairId, ammoItemId, distanceMeters, initialHealth, armorId, helmetId, armorDurability, helmetDurability, loadoutConfig, tunes, hitProbabilities, includeTriggerDelay, includeProjectileFlightTime })",
      "compare": "compare({ configs, distancesMeters })"
    }
  },
  "result": {
    "primaryFields": ["result.expectedTtkMs", "result.expectedBtk", "result.killProbability", "status"],
    "provenanceFields": ["provenance.sourceType", "provenance.customPairId", "provenance.dataVersion", "provenance.runtimeVersion", "provenance.calculatorContractVersion", "provenance.combatPackKind", "provenance.combatPackPath", "provenance.buildPackUsed"]
  }
}
