6 struct no_class_specific_data {
8 struct smith_data_type;
9 struct force_trainer_data_type;
10 struct bluemage_data_type;
11 struct magic_eater_data_type;
12 struct bard_data_type;
13 struct mane_data_type;
15 struct samurai_data_type;
16 struct monk_data_type;
17 struct ninja_data_type;
18 struct spell_hex_data_type;
20 using ClassSpecificData = std::variant<
22 no_class_specific_data,
23 std::shared_ptr<smith_data_type>,
24 std::shared_ptr<force_trainer_data_type>,
25 std::shared_ptr<bluemage_data_type>,
26 std::shared_ptr<magic_eater_data_type>,
27 std::shared_ptr<bard_data_type>,
28 std::shared_ptr<mane_data_type>,
29 std::shared_ptr<SniperData>,
30 std::shared_ptr<samurai_data_type>,
31 std::shared_ptr<monk_data_type>,
32 std::shared_ptr<ninja_data_type>,
33 std::shared_ptr<spell_hex_data_type>