pub const file = "CharacterTable.json";

pub const AttributeDataPack = struct {
    Attribute: AttributeData,
    breakStage: i32,
};

pub const AttributeData = struct {
    attrs: []const AttributePair,
};

pub const AttributePair = struct {
    attrType: AttributeType,
    attrValue: f64,
};

pub const AttributeType = enum(i32) {
    level = 0,
    max_hp = 1,
    atk = 2,
    def = 3,
    physical_damage_taken_scalar = 4,
    fire_damage_taken_scalar = 5,
    pulse_damage_taken_scalar = 6,
    cryst_damage_taken_scalar = 7,
    weight = 8,
    critical_rate = 9,
    critical_damage_increase = 10,
    hatred = 11,
    normal_attack_range = 12,
    move_speed_scalar = 13,
    turn_rate_scalar = 14,
    attack_rate = 15,
    skill_cooldown_scalar = 16,
    normal_attack_damage_increase = 17,
    hp_recovery_per_sec = 18,
    hp_recovery_per_sec_by_max_hp_ratio = 19,
    max_poise = 20,
    poise_rec_time = 21,
    max_ultimate_sp = 22,
    damage_taken_scalar_with_poise = 23,
    poise_damage_taken_scalar = 24,
    physical_infliction_damage_scalar = 25,
    poise_damage_output_scalar = 26,
    breaking_attack_damage_taken_scalar = 27,
    ultimate_skill_damage_increase = 28,
    heal_output_increase = 29,
    heal_taken_increase = 30,
    poise_rec_time_scalar = 31,
    normal_skill_damage_increase = 32,
    combo_skill_damage_increase = 33,
    knock_down_time_addition = 34,
    fire_burst_damage_increase = 35,
    pulse_burst_damage_increase = 36,
    cryst_burst_damage_increase = 37,
    natural_burst_damage_increase = 38,
    str = 39,
    agi = 40,
    wisd = 41,
    will = 42,
    life_steal = 43,
    ultimate_sp_gain_scalar = 44,
    atb_cost_addition = 45,
    skill_cooldown_addition = 46,
    combo_skill_cooldown_scalar = 47,
    natural_damage_taken_scalar = 48,
    ignite_damage_scalar = 49,
    physical_damage_increase = 50,
    fire_damage_increase = 51,
    pulse_damage_increase = 52,
    cryst_damage_increase = 53,
    natural_damage_increase = 54,
    ether_damage_increase = 55,
    fire_abnormal_damage_increase = 56,
    pulse_abnormal_damage_increase = 57,
    cryst_abnormal_damage_increase = 58,
    natural_abnormal_damage_increase = 59,
    ether_damage_taken_scalar = 60,
    damage_to_broken_unit_increase = 61,
    weakness_dmg_scalar = 62,
    shelter_dmg_scalar = 63,
    physical_enhanced_dmg_increase = 64,
    fire_enhanced_dmg_increase = 65,
    pulse_enhanced_dmg_increase = 66,
    cryst_enhanced_dmg_increase = 67,
    natural_enhanced_dmg_increase = 68,
    ether_enhanced_dmg_increase = 69,
    physical_vulnerable_dmg_increase = 70,
    fire_vulnerable_dmg_increase = 71,
    pulse_vulnerable_dmg_increase = 72,
    cryst_vulnerable_dmg_increase = 73,
    natural_vulnerable_dmg_increase = 74,
    ether_vulnerable_dmg_increase = 75,
    atk_increase_factor_from_str = 76,
    atk_increase_factor_from_agi = 77,
    atk_increase_factor_from_wisd = 78,
    atk_increase_factor_from_will = 79,
    physical_dmg_resist_scalar = 80,
    natural_dmg_resist_scalar = 81,
    cryst_dmg_resist_scalar = 82,
    pulse_dmg_resist_scalar = 83,
    fire_dmg_resist_scalar = 84,
    ether_dmg_resist_scalar = 85,
    slow_action_speed_scalar = 86,
    physical_and_spell_infliction_enhance = 87,
    shield_output_increase = 88,
    shield_taken_increase = 89,
};

attributes: []const AttributeDataPack,
charBattleTagIds: []const []const u8,
charId: []const u8,
mainAttrType: i32,
profession: u32,
rarity: u32,
resilienceDeductionFactor: f32,
sortOrder: u32,
subAttrType: i32,
superArmor: u32,
weaponType: u32,
