use std::fmt::{Display, Formatter};
use strum_macros::{EnumIter, IntoStaticStr};
use crate::block::Block;
use crate::db::Db;
#[cfg(doc)]
use crate::everything::Everything;
use crate::game::{Game, GameFlags};
use crate::pdxfile::PdxEncoding;
use crate::report::{Confidence, Severity};
use crate::token::Token;
#[derive(Copy, Clone, Debug, PartialEq, Eq, IntoStaticStr, Hash, PartialOrd, Ord, EnumIter)]
#[strum(serialize_all = "snake_case")]
#[non_exhaustive]
#[rustfmt::skip] pub enum Item {
    Accessory,
    AccessoryTag,
    AccessoryVariation,
    AccessoryVariationLayout,
    AccessoryVariationTextures,
    Asset,
    BlendShape,
    CharacterInteraction,
    Coa,
    CoaColorList,
    CoaColoredEmblemList,
    #[cfg(feature = "ck3")]
    CoaDesignerColorPalette,
    CoaDesignerColoredEmblem,
    #[cfg(feature = "ck3")]
    CoaDesignerEmblemLayout,
    CoaDesignerPattern,
    CoaPatternList,
    CoaTemplate,
    CoaTemplateList,
    CoaTexturedEmblemList,
    Culture,
    CustomLocalization,
    Decision,
    Define,
    Directory,
    Dlc,
    DlcFeature,
    EffectLocalization,
    Entity,
    Entry,
    Ethnicity,
    Event,
    EventNamespace,
    File,
    Font,
    Fontfiles,
    GameConcept,
    GameRule,
    GameRuleSetting,
    GeneAgePreset,
    GeneAttribute,
    GeneCategory,
    GovernmentType,
    GuiLayer,
    GuiTemplate,
    GuiType,
    LawGroup,
    Localization,
    MapEnvironment,
    MapMode,
    Modifier,
    NamedColor,
    OnAction,
    Pdxmesh,
    PortraitAnimation,
    PortraitCamera,
    PortraitEnvironment,
    PortraitModifierGroup,
    PortraitModifierPack,
    Province,
    Religion,
    ScriptedEffect,
    ScriptedGui,
    ScriptedList,
    ScriptedModifier,
    ScriptedRule,
    ScriptedTrigger,
    ScriptValue,
    Shortcut,
    Sound,
    Terrain,
    TextFormat,
    TextIcon,
    TextureFile,
    TriggerLocalization,
    WidgetName,
    #[cfg(any(feature = "ck3", feature = "imperator"))]
    Building,
    #[cfg(any(feature = "ck3", feature = "vic3"))]
    CharacterTemplate,
    #[cfg(any(feature = "vic3", feature = "imperator"))]
    CharacterTrait,
    #[cfg(any(feature = "vic3", feature = "imperator"))]
    Country,
    #[cfg(any(feature = "ck3", feature = "imperator"))]
    DeathReason,
    #[cfg(any(feature = "ck3", feature = "vic3"))]
    Dna,
    #[cfg(any(feature = "ck3", feature = "imperator"))]
    EventTheme,
    #[cfg(any(feature = "ck3", feature = "imperator"))]
    Law,
    #[cfg(any(feature = "ck3", feature = "vic3"))]
    Message,
    #[cfg(any(feature = "vic3", feature = "imperator"))]
    PopType,
    #[cfg(any(feature = "ck3", feature = "imperator"))]
    Region,
    #[cfg(any(feature = "vic3", feature = "imperator"))]
    SubjectType,
    #[cfg(any(feature = "ck3", feature = "vic3"))]
    TutorialLesson,
    #[cfg(any(feature = "ck3", feature = "vic3"))]
    TutorialLessonChain,
    #[cfg(any(feature = "ck3", feature = "vic3"))]
    TutorialLessonStep,
    #[cfg(any(feature = "vic3", feature = "imperator"))]
    Wargoal,
    #[cfg(feature = "ck3")] AccoladeCategory,
    #[cfg(feature = "ck3")] AccoladeIcon,
    #[cfg(feature = "ck3")] AccoladeName,
    #[cfg(feature = "ck3")] AccoladeParameter,
    #[cfg(feature = "ck3")] AccoladeType,
    #[cfg(feature = "ck3")] ActivityIntent,
    #[cfg(feature = "ck3")] ActivityLocale,
    #[cfg(feature = "ck3")] ActivityOption,
    #[cfg(feature = "ck3")] ActivityOptionCategory,
    #[cfg(feature = "ck3")] ActivityPhase,
    #[cfg(feature = "ck3")] ActivityState,
    #[cfg(feature = "ck3")] ActivityType,
    #[cfg(feature = "ck3")] AiWarStance,
    #[cfg(feature = "ck3")] Amenity,
    #[cfg(feature = "ck3")] ArtifactBlueprint,
    #[cfg(feature = "ck3")] ArtifactFeature,
    #[cfg(feature = "ck3")] ArtifactFeatureGroup,
    #[cfg(feature = "ck3")] ArtifactHistory,
    #[cfg(feature = "ck3")] ArtifactRarity,
    #[cfg(feature = "ck3")] ArtifactSlot,
    #[cfg(feature = "ck3")] ArtifactSlotType,
    #[cfg(feature = "ck3")] ArtifactTemplate,
    #[cfg(feature = "ck3")] ArtifactType,
    #[cfg(feature = "ck3")] ArtifactVisual,
    #[cfg(feature = "ck3")] Bookmark,
    #[cfg(feature = "ck3")] BookmarkGroup,
    #[cfg(feature = "ck3")] BookmarkPortrait,
    #[cfg(feature = "ck3")] BuildingFlag,
    #[cfg(feature = "ck3")] BuildingGfx,
    #[cfg(feature = "ck3")] CasusBelli,
    #[cfg(feature = "ck3")] CasusBelliGroup,
    #[cfg(feature = "ck3")] Catalyst,
    #[cfg(feature = "ck3")] Character,
    #[cfg(feature = "ck3")] CharacterBackground,
    #[cfg(feature = "ck3")] CharacterInteractionCategory,
    #[cfg(feature = "ck3")] Climate,
    #[cfg(feature = "ck3")] ClothingGfx,
    #[cfg(feature = "ck3")] CoaGfx,
    #[cfg(feature = "ck3")] CoaDynamicDefinition,
    #[cfg(feature = "ck3")] CombatEffect,
    #[cfg(feature = "ck3")] CombatPhaseEvent,
    #[cfg(feature = "ck3")] CouncilPosition,
    #[cfg(feature = "ck3")] CouncilTask,
    #[cfg(feature = "ck3")] CourtPosition,
    #[cfg(feature = "ck3")] CourtPositionCategory,
    #[cfg(feature = "ck3")] CourtSceneCulture,
    #[cfg(feature = "ck3")] CourtSceneGroup,
    #[cfg(feature = "ck3")] CourtSceneRole,
    #[cfg(feature = "ck3")] CourtSceneSetting,
    #[cfg(feature = "ck3")] CourtType,
    #[cfg(feature = "ck3")] CourtierGuestManagement,
    #[cfg(feature = "ck3")] CultureAesthetic,
    #[cfg(feature = "ck3")] CultureCreationName,
    #[cfg(feature = "ck3")] CultureEra,
    #[cfg(feature = "ck3")] CultureEthos,
    #[cfg(feature = "ck3")] CultureHeritage,
    #[cfg(feature = "ck3")] CultureHistory,
    #[cfg(feature = "ck3")] CultureParameter,
    #[cfg(feature = "ck3")] CulturePillar,
    #[cfg(feature = "ck3")] CultureTradition,
    #[cfg(feature = "ck3")] CultureTraditionCategory,
    #[cfg(feature = "ck3")] DangerType,
    #[cfg(feature = "ck3")] DiarchyMandate,
    #[cfg(feature = "ck3")] DiarchyParameter,
    #[cfg(feature = "ck3")] DiarchyType,
    #[cfg(feature = "ck3")] Doctrine,
    #[cfg(feature = "ck3")] DoctrineCategory,
    #[cfg(feature = "ck3")] DoctrineParameter,
    #[cfg(feature = "ck3")] Dynasty,
    #[cfg(feature = "ck3")] DynastyLegacy,
    #[cfg(feature = "ck3")] DynastyPerk,
    #[cfg(feature = "ck3")] EpidemicType,
    #[cfg(feature = "ck3")] EpidemicDeathReason,
    #[cfg(feature = "ck3")] EventBackground,
    #[cfg(feature = "ck3")] EventEffect2d,
    #[cfg(feature = "ck3")] EventTransition,
    #[cfg(feature = "ck3")] Faction,
    #[cfg(feature = "ck3")] Faith,
    #[cfg(feature = "ck3")] FaithIcon,
    #[cfg(feature = "ck3")] FervorModifier,
    #[cfg(feature = "ck3")] Flavorization,
    #[cfg(feature = "ck3")] Focus,
    #[cfg(feature = "ck3")] GeneticConstraint,
    #[cfg(feature = "ck3")] GovernmentFlag,
    #[cfg(feature = "ck3")] GraphicalFaith,
    #[cfg(feature = "ck3")] GuestInviteRule,
    #[cfg(feature = "ck3")] GuestSubset,
    #[cfg(feature = "ck3")] GuestSystem,
    #[cfg(feature = "ck3")] HoldingFlag,
    #[cfg(feature = "ck3")] HoldingType,
    #[cfg(feature = "ck3")] HolySite,
    #[cfg(feature = "ck3")] HolySiteFlag,
    #[cfg(feature = "ck3")] Hook,
    #[cfg(feature = "ck3")] House,
    #[cfg(feature = "ck3")] HouseUnity,
    #[cfg(feature = "ck3")] HouseUnityParameter,
    #[cfg(feature = "ck3")] HouseUnityStage,
    #[cfg(feature = "ck3")] ImportantAction,
    #[cfg(feature = "ck3")] Innovation,
    #[cfg(feature = "ck3")] InnovationFlag,
    #[cfg(feature = "ck3")] Inspiration,
    #[cfg(feature = "ck3")] Language,
    #[cfg(feature = "ck3")] LawFlag,
    #[cfg(feature = "ck3")] LeaseContract,
    #[cfg(feature = "ck3")] LegendChapter,
    #[cfg(feature = "ck3")] LegendChronicle,
    #[cfg(feature = "ck3")] LegendProperty,
    #[cfg(feature = "ck3")] LegendSeed,
    #[cfg(feature = "ck3")] LegendType,
    #[cfg(feature = "ck3")] LegitimacyFlag,
    #[cfg(feature = "ck3")] LegitimacyType,
    #[cfg(feature = "ck3")] Lifestyle,
    #[cfg(feature = "ck3")] MartialCustom,
    #[cfg(feature = "ck3")] MemoryCategory,
    #[cfg(feature = "ck3")] MemoryType,
    #[cfg(feature = "ck3")] MenAtArms,
    #[cfg(feature = "ck3")] MenAtArmsBase,
    #[cfg(feature = "ck3")] ModifierFormat,
    #[cfg(feature = "ck3")] MottoInsert,
    #[cfg(feature = "ck3")] Motto,
    #[cfg(feature = "ck3")] Music,
    #[cfg(feature = "ck3")] NameEquivalency,
    #[cfg(feature = "ck3")] NameList,
    #[cfg(feature = "ck3")] Nickname,
    #[cfg(feature = "ck3")] OpinionModifier,
    #[cfg(feature = "ck3")] Perk,
    #[cfg(feature = "ck3")] PerkTree,
    #[cfg(feature = "ck3")] PlayableDifficultyInfo,
    #[cfg(feature = "ck3")] PointOfInterest,
    #[cfg(feature = "ck3")] PoolSelector,
    #[cfg(feature = "ck3")] PrisonType,
    #[cfg(feature = "ck3")] PulseAction,
    #[cfg(feature = "ck3")] Relation,
    #[cfg(feature = "ck3")] RelationFlag,
    #[cfg(feature = "ck3")] ReligionFamily,
    #[cfg(feature = "ck3")] RewardItem,
    #[cfg(feature = "ck3")] Scheme,
    #[cfg(feature = "ck3")] ScriptedAnimation,
    #[cfg(feature = "ck3")] ScriptedCost,
    #[cfg(feature = "ck3")] ScriptedIllustration,
    #[cfg(feature = "ck3")] Secret,
    #[cfg(feature = "ck3")] Sexuality,
    #[cfg(feature = "ck3")] Skill,
    #[cfg(feature = "ck3")] SpecialBuilding,
    #[cfg(feature = "ck3")] SpecialGuest,
    #[cfg(feature = "ck3")] Story,
    #[cfg(feature = "ck3")] Struggle,
    #[cfg(feature = "ck3")] StrugglePhase,
    #[cfg(feature = "ck3")] StrugglePhaseParameter,
    #[cfg(feature = "ck3")] SuccessionElection,
    #[cfg(feature = "ck3")] Suggestion,
    #[cfg(feature = "ck3")] TaxSlotFlag,
    #[cfg(feature = "ck3")] TaxSlotObligation,
    #[cfg(feature = "ck3")] TaxSlotType,
    #[cfg(feature = "ck3")] Title,
    #[cfg(feature = "ck3")] TitleHistory,
    #[cfg(feature = "ck3")] TitleHistoryType,
    #[cfg(feature = "ck3")] Trait,
    #[cfg(feature = "ck3")] TraitCategory,
    #[cfg(feature = "ck3")] TraitFlag,
    #[cfg(feature = "ck3")] TraitTrack,
    #[cfg(feature = "ck3")] TravelOption,
    #[cfg(feature = "ck3")] UnitGfx,
    #[cfg(feature = "ck3")] VassalContract,
    #[cfg(feature = "ck3")] VassalContractFlag,
    #[cfg(feature = "ck3")] VassalObligationLevel,
    #[cfg(feature = "ck3")] VassalStance,
    #[cfg(feature = "vic3")] AiStrategy,
    #[cfg(feature = "vic3")] Alert,
    #[cfg(feature = "vic3")] AlertGroup,
    #[cfg(feature = "vic3")] Approval,
    #[cfg(feature = "vic3")] Attitude,
    #[cfg(feature = "vic3")] BattleCondition,
    #[cfg(feature = "vic3")] BuildingGroup,
    #[cfg(feature = "vic3")] BuildingType,
    #[cfg(feature = "vic3")] BuyPackage,
    #[cfg(feature = "vic3")] CanalType,
    #[cfg(feature = "vic3")] CharacterRole,
    #[cfg(feature = "vic3")] CombatUnit,
    #[cfg(feature = "vic3")] CombatUnitExperienceLevel,
    #[cfg(feature = "vic3")] CombatUnitGroup,
    #[cfg(feature = "vic3")] CommanderOrder,
    #[cfg(feature = "vic3")] CommanderRank,
    #[cfg(feature = "vic3")] CompanyType,
    #[cfg(feature = "vic3")] CountryCreation,
    #[cfg(feature = "vic3")] CountryFormation,
    #[cfg(feature = "vic3")] CountryRank,
    #[cfg(feature = "vic3")] CountryTier,
    #[cfg(feature = "vic3")] CountryType,
    #[cfg(feature = "vic3")] CultureGraphics,
    #[cfg(feature = "vic3")] Decree,
    #[cfg(feature = "vic3")] DiplomaticAction,
    #[cfg(feature = "vic3")] DiplomaticPlay,
    #[cfg(feature = "vic3")] DiscriminationTrait,
    #[cfg(feature = "vic3")] DynamicCompanyName,
    #[cfg(feature = "vic3")] DynamicCountryMapColor,
    #[cfg(feature = "vic3")] DynamicCountryName,
    #[cfg(feature = "vic3")] EventCategory,
    #[cfg(feature = "vic3")] FlagDefinition,
    #[cfg(feature = "vic3")] Goods,
    #[cfg(feature = "vic3")] GradientBorderSettings,
    #[cfg(feature = "vic3")] Ideology,
    #[cfg(feature = "vic3")] InfamyThreshold,
    #[cfg(feature = "vic3")] Institution,
    #[cfg(feature = "vic3")] InterestGroup,
    #[cfg(feature = "vic3")] InterestGroupTrait,
    #[cfg(feature = "vic3")] JournalEntry,
    #[cfg(feature = "vic3")] JournalEntryGroup,
    #[cfg(feature = "vic3")] LawType,
    #[cfg(feature = "vic3")] LegitimacyLevel,
    #[cfg(feature = "vic3")] Level,
    #[cfg(feature = "vic3")] MapLayer,
    #[cfg(feature = "vic3")] MapInteractionType,
    #[cfg(feature = "vic3")] MediaAlias,
    #[cfg(feature = "vic3")] MilitaryFormationFlag,
    #[cfg(feature = "vic3")] MobilizationOption,
    #[cfg(feature = "vic3")] ModifierType,
    #[cfg(feature = "vic3")] Objective,
    #[cfg(feature = "vic3")] ObjectiveSubgoal,
    #[cfg(feature = "vic3")] ObjectiveSubgoalCategory,
    #[cfg(feature = "vic3")] OldCombatUnit,
    #[cfg(feature = "vic3")] Party,
    #[cfg(feature = "vic3")] PoliticalMovement,
    #[cfg(feature = "vic3")] PopNeed,
    #[cfg(feature = "vic3")] ProductionMethod,
    #[cfg(feature = "vic3")] ProductionMethodGroup,
    #[cfg(feature = "vic3")] RelationsThreshold,
    #[cfg(feature = "vic3")] ScriptedButton,
    #[cfg(feature = "vic3")] SecretGoal,
    #[cfg(feature = "vic3")] StateRegion,
    #[cfg(feature = "vic3")] StateTrait,
    #[cfg(feature = "vic3")] Strata,
    #[cfg(feature = "vic3")] StrategicRegion,
    #[cfg(feature = "vic3")] Technology,
    #[cfg(feature = "vic3")] TechnologyEra,
    #[cfg(feature = "vic3")] TerrainLabel,
    #[cfg(feature = "vic3")] TerrainManipulator,
    #[cfg(feature = "vic3")] TerrainMask,
    #[cfg(feature = "vic3")] TerrainMaterial,
    #[cfg(feature = "vic3")] TransferOfPower,
    #[cfg(feature = "imperator")] Ambition,
    #[cfg(feature = "imperator")] AiPlanGoals,
    #[cfg(feature = "imperator")] Area,
    #[cfg(feature = "imperator")] CultureGroup,
    #[cfg(feature = "imperator")] CombatTactic,
    #[cfg(feature = "imperator")] Deity,
    #[cfg(feature = "imperator")] DeityCategory,
    #[cfg(feature = "imperator")] DiplomaticStance,
    #[cfg(feature = "imperator")] EconomicPolicy,
    #[cfg(feature = "imperator")] EventPicture,
    #[cfg(feature = "imperator")] GovernorPolicy,
    #[cfg(feature = "imperator")] GraphicalCultureType,
    #[cfg(feature = "imperator")] GreatWorkEffectTier,
    #[cfg(feature = "imperator")] GreatWorkEffect,
    #[cfg(feature = "imperator")] GreatWorkCategory,
    #[cfg(feature = "imperator")] GreatWorkMaterial,
    #[cfg(feature = "imperator")] GreatWorkModule,
    #[cfg(feature = "imperator")] GreatWorkTemplate,
    #[cfg(feature = "imperator")] Heritage,
    #[cfg(feature = "imperator")] Idea,
    #[cfg(feature = "imperator")] Invention,
    #[cfg(feature = "imperator")] InventionGroup,
    #[cfg(feature = "imperator")] LegionDistinction,
    #[cfg(feature = "imperator")] LevyTemplate,
    #[cfg(feature = "imperator")] Loyalty,
    #[cfg(feature = "imperator")] MilitaryTraditionTree,
    #[cfg(feature = "imperator")] MilitaryTradition,
    #[cfg(feature = "imperator")] Mission,
    #[cfg(feature = "imperator")] MissionTask,
    #[cfg(feature = "imperator")] Office,
    #[cfg(feature = "imperator")] Opinion,
    #[cfg(feature = "imperator")] PartyAgenda,
    #[cfg(feature = "imperator")] PartyType,
    #[cfg(feature = "imperator")] PostSetupCharacters,
    #[cfg(feature = "imperator")] Price,
    #[cfg(feature = "imperator")] ProvinceRank,
    #[cfg(feature = "imperator")] SetupCharacters,
    #[cfg(feature = "imperator")] SetupProvinces,
    #[cfg(feature = "imperator")] TechnologyTable,
    #[cfg(feature = "imperator")] TradeGood,
    #[cfg(feature = "imperator")] Treasure,
    #[cfg(feature = "imperator")] Unit,
    #[cfg(feature = "imperator")] UnitAbility,
}
impl Display for Item {
    fn fmt(&self, f: &mut Formatter) -> Result<(), std::fmt::Error> {
        let s: &'static str = self.into();
        write!(f, "{}", s.replace('_', " "))
    }
}
impl Item {
    pub fn path(self) -> &'static str {
        #[allow(clippy::match_same_arms)]
        match self {
            Item::Accessory => "gfx/portraits/accessories/",
            Item::AccessoryTag => "gfx/portraits/accessories/",
            Item::AccessoryVariation => "gfx/portraits/accessory_variations/",
            Item::AccessoryVariationLayout => "gfx/portraits/accessory_variations/",
            Item::AccessoryVariationTextures => "gfx/portraits/accessory_variations/",
            Item::Asset => "gfx/models/",
            Item::BlendShape => "gfx/models/",
            Item::CharacterInteraction => "common/character_interactions/",
            Item::Coa => "common/coat_of_arms/coat_of_arms/",
            Item::CoaColorList => "common/coat_of_arms/template_lists/",
            Item::CoaColoredEmblemList => "common/coat_of_arms/template_lists/",
            #[cfg(feature = "ck3")]
            Item::CoaDesignerColorPalette => "gfx/coat_of_arms/color_palettes/",
            Item::CoaDesignerColoredEmblem => "gfx/coat_of_arms/colored_emblems/",
            #[cfg(feature = "ck3")]
            Item::CoaDesignerEmblemLayout => "gfx/coat_of_arms/emblem_layouts/",
            Item::CoaDesignerPattern => "gfx/coat_of_arms/patterns/",
            Item::CoaPatternList => "common/coat_of_arms/template_lists/",
            Item::CoaTemplate => "common/coat_of_arms/coat_of_arms/",
            Item::CoaTemplateList => "common/coat_of_arms/template_lists/",
            Item::CoaTexturedEmblemList => "common/coat_of_arms/template_lists/",
            Item::Culture => match Game::game() {
                #[cfg(feature = "ck3")]
                Game::Ck3 => "common/culture/cultures/",
                #[cfg(feature = "vic3")]
                Game::Vic3 => "common/cultures/",
                #[cfg(feature = "imperator")]
                Game::Imperator => "common/cultures/",
            },
            Item::CustomLocalization => "common/customizable_localization/",
            Item::Decision => match Game::game() {
                #[cfg(feature = "ck3")]
                Game::Ck3 => "common/decisions/",
                #[cfg(feature = "vic3")]
                Game::Vic3 => "common/decisions/",
                #[cfg(feature = "imperator")]
                Game::Imperator => "decisions/",
            },
            Item::Define => "common/defines/",
            Item::Dlc => "",
            Item::DlcFeature => "",
            Item::Directory => "",
            Item::EffectLocalization => "common/effect_localization/",
            Item::Entity => "gfx/models/",
            Item::Entry => "",
            Item::Ethnicity => "common/ethnicities/",
            Item::Event => "events/",
            Item::EventNamespace => "events/",
            Item::File => "",
            Item::Font => "fonts/",
            Item::Fontfiles => "fonts/",
            Item::GameConcept => "common/game_concepts/",
            Item::GameRule => "common/game_rules/",
            Item::GameRuleSetting => "common/game_rules/",
            Item::GeneAgePreset => "common/genes/",
            Item::GeneAttribute => "gfx/models/",
            Item::GeneCategory => "common/genes/",
            Item::GovernmentType => match Game::game() {
                #[cfg(feature = "ck3")]
                Game::Ck3 => "common/governments/",
                #[cfg(feature = "vic3")]
                Game::Vic3 => "common/government_types/",
                #[cfg(feature = "imperator")]
                Game::Imperator => "common/governments/",
            },
            Item::GuiLayer => "gui/",
            Item::GuiTemplate => "gui/",
            Item::GuiType => "gui/",
            Item::Localization => "localization/",
            Item::MapEnvironment => "gfx/map/environment/",
            Item::MapMode => "gfx/map/map_modes/",
            Item::Modifier => "common/modifiers/",
            Item::NamedColor => "common/named_colors/",
            Item::OnAction => match Game::game() {
                #[cfg(feature = "ck3")]
                Game::Ck3 => "common/on_action/",
                #[cfg(feature = "vic3")]
                Game::Vic3 => "common/on_actions/",
                #[cfg(feature = "imperator")]
                Game::Imperator => "common/on_action/",
            },
            Item::Pdxmesh => "gfx/models/",
            Item::PortraitAnimation => "gfx/portraits/portrait_animations/",
            Item::PortraitCamera => "gfx/portraits/cameras/",
            Item::PortraitEnvironment => "gfx/portraits/environments/",
            Item::PortraitModifierGroup => "gfx/portraits/portrait_modifiers/",
            Item::PortraitModifierPack => "gfx/portraits/portrait_animations/",
            Item::Province => match Game::game() {
                #[cfg(feature = "ck3")]
                Game::Ck3 => "map_data/definition.csv",
                #[cfg(feature = "vic3")]
                Game::Vic3 => "map_data/provinces.png",
                #[cfg(feature = "imperator")]
                Game::Imperator => "map_data/provinces.png",
            },
            Item::Religion => match Game::game() {
                #[cfg(feature = "ck3")]
                Game::Ck3 => "common/religion/religions/",
                #[cfg(feature = "vic3")]
                Game::Vic3 => "common/religions/",
                #[cfg(feature = "imperator")]
                Game::Imperator => "common/religions/",
            },
            Item::ScriptedEffect => "common/scripted_effects/",
            Item::ScriptedGui => "common/scripted_guis/",
            Item::ScriptedList => "common/scripted_lists/",
            Item::ScriptedModifier => "common/scripted_modifiers/",
            Item::ScriptedRule => "common/scripted_rules/",
            Item::ScriptedTrigger => "common/scripted_triggers/",
            Item::ScriptValue => "common/script_values/",
            Item::Shortcut => "gui/shortcuts.shortcuts",
            Item::Sound => "",
            Item::Terrain => match Game::game() {
                #[cfg(feature = "ck3")]
                Game::Ck3 => "common/terrain_types/",
                #[cfg(feature = "vic3")]
                Game::Vic3 => "common/terrain/",
                #[cfg(feature = "imperator")]
                Game::Imperator => "common/terrain_types/",
            },
            Item::TextFormat => "gui/",
            Item::TextIcon => "gui/",
            Item::TextureFile => "gfx/models/",
            Item::TriggerLocalization => "common/trigger_localization/",
            Item::WidgetName => "gui/",
            #[cfg(any(feature = "ck3", feature = "imperator"))]
            Item::Building => "common/buildings/",
            #[cfg(any(feature = "ck3", feature = "vic3"))]
            Item::CharacterTemplate => match Game::game() {
                #[cfg(feature = "ck3")]
                Game::Ck3 => "common/scripted_character_templates/",
                #[cfg(feature = "vic3")]
                Game::Vic3 => "common/character_templates/",
            },
            #[cfg(any(feature = "vic3", feature = "imperator"))]
            Item::CharacterTrait => match Game::game() {
                #[cfg(feature = "vic3")]
                Game::Vic3 => "common/character_traits",
                #[cfg(feature = "imperator")]
                Game::Imperator => "common/traits",
            },
            #[cfg(any(feature = "vic3", feature = "imperator"))]
            Item::Country => match Game::game() {
                #[cfg(feature = "vic3")]
                Game::Vic3 => "common/country_definitions/",
                #[cfg(feature = "imperator")]
                Game::Imperator => "setup/countries/countries.txt",
            },
            #[cfg(any(feature = "ck3", feature = "imperator"))]
            Item::DeathReason => "common/deathreasons/",
            #[cfg(any(feature = "ck3", feature = "vic3"))]
            Item::Dna => "common/dna_data/",
            #[cfg(any(feature = "ck3", feature = "imperator"))]
            Item::EventTheme => "common/event_themes/",
            #[cfg(any(feature = "ck3", feature = "imperator"))]
            Item::Law => "common/laws/",
            Item::LawGroup => match Game::game() {
                #[cfg(feature = "ck3")]
                Game::Ck3 => "common/laws/",
                #[cfg(feature = "imperator")]
                Game::Imperator => "common/laws/",
                #[cfg(feature = "vic3")]
                Game::Vic3 => "common/law_groups/",
            },
            #[cfg(any(feature = "ck3", feature = "vic3"))]
            Item::Message => "common/messages",
            #[cfg(any(feature = "vic3", feature = "imperator"))]
            Item::PopType => "common/pop_types/",
            #[cfg(any(feature = "ck3", feature = "imperator"))]
            Item::Region => match Game::game() {
                #[cfg(feature = "ck3")]
                Game::Ck3 => "map_data/geographical_regions/",
                #[cfg(feature = "imperator")]
                Game::Imperator => "map_data/regions.txt",
            },
            #[cfg(any(feature = "vic3", feature = "imperator"))]
            Item::SubjectType => "common/subject_types/",
            #[cfg(any(feature = "ck3", feature = "vic3"))]
            Item::TutorialLesson => "common/tutorial_lessons",
            #[cfg(any(feature = "ck3", feature = "vic3"))]
            Item::TutorialLessonChain => "common/tutorial_lesson_chains",
            #[cfg(any(feature = "ck3", feature = "vic3"))]
            Item::TutorialLessonStep => "common/tutorial_lessons",
            #[cfg(any(feature = "vic3", feature = "imperator"))]
            Item::Wargoal => match Game::game() {
                #[cfg(feature = "vic3")]
                Game::Vic3 => "",
                #[cfg(feature = "imperator")]
                Game::Imperator => "common/wargoals",
            },
            #[cfg(feature = "ck3")]
            Item::AccoladeCategory => "common/accolade_types/",
            #[cfg(feature = "ck3")]
            Item::AccoladeIcon => "common/accolade_icons/",
            #[cfg(feature = "ck3")]
            Item::AccoladeName => "common/accolade_names/",
            #[cfg(feature = "ck3")]
            Item::AccoladeParameter => "common/accolade_types/",
            #[cfg(feature = "ck3")]
            Item::AccoladeType => "common/accolade_types/",
            #[cfg(feature = "ck3")]
            Item::ActivityIntent => "common/activities/intents/",
            #[cfg(feature = "ck3")]
            Item::ActivityLocale => "common/activities/activity_locales/",
            #[cfg(feature = "ck3")]
            Item::ActivityOption => "common/activities/activity_types/",
            #[cfg(feature = "ck3")]
            Item::ActivityOptionCategory => "common/activities/activity_types/",
            #[cfg(feature = "ck3")]
            Item::ActivityPhase => "common/activities/activity_types/",
            #[cfg(feature = "ck3")]
            Item::ActivityState => "",
            #[cfg(feature = "ck3")]
            Item::ActivityType => "common/activities/activity_types/",
            #[cfg(feature = "ck3")]
            Item::AiWarStance => "common/ai_war_stances/",
            #[cfg(feature = "ck3")]
            Item::Amenity => "common/court_amenities/",
            #[cfg(feature = "ck3")]
            Item::ArtifactBlueprint => "common/artifacts/blueprints/",
            #[cfg(feature = "ck3")]
            Item::ArtifactFeature => "common/artifacts/features/",
            #[cfg(feature = "ck3")]
            Item::ArtifactFeatureGroup => "common/artifacts/feature_groups/",
            #[cfg(feature = "ck3")]
            Item::ArtifactHistory => "",
            #[cfg(feature = "ck3")]
            Item::ArtifactRarity => "",
            #[cfg(feature = "ck3")]
            Item::ArtifactSlot => "common/artifacts/slots/",
            #[cfg(feature = "ck3")]
            Item::ArtifactSlotType => "common/artifacts/slots/",
            #[cfg(feature = "ck3")]
            Item::ArtifactTemplate => "common/artifacts/templates/",
            #[cfg(feature = "ck3")]
            Item::ArtifactType => "common/artifacts/types/",
            #[cfg(feature = "ck3")]
            Item::ArtifactVisual => "common/artifacts/visuals/",
            #[cfg(feature = "ck3")]
            Item::Bookmark => "common/bookmarks/bookmarks/",
            #[cfg(feature = "ck3")]
            Item::BookmarkGroup => "common/bookmarks/groups/",
            #[cfg(feature = "ck3")]
            Item::BookmarkPortrait => "common/bookmark_portraits/",
            #[cfg(feature = "ck3")]
            Item::BuildingFlag => "common/buildings/",
            #[cfg(feature = "ck3")]
            Item::BuildingGfx => "common/culture/cultures/",
            #[cfg(feature = "ck3")]
            Item::CasusBelli => "common/casus_belli_types/",
            #[cfg(feature = "ck3")]
            Item::CasusBelliGroup => "common/casus_belli_groups/",
            #[cfg(feature = "ck3")]
            Item::Catalyst => "common/struggle/catalysts/",
            #[cfg(feature = "ck3")]
            Item::Character => "history/characters/",
            #[cfg(feature = "ck3")]
            Item::CharacterBackground => "common/character_backgrounds/",
            #[cfg(feature = "ck3")]
            Item::CharacterInteractionCategory => "common/character_interaction_categories/",
            #[cfg(feature = "ck3")]
            Item::Climate => "map_data/climate.txt",
            #[cfg(feature = "ck3")]
            Item::ClothingGfx => "common/culture/cultures/",
            #[cfg(feature = "ck3")]
            Item::CoaGfx => "common/culture/cultures/",
            #[cfg(feature = "ck3")]
            Item::CoaDynamicDefinition => "common/coat_of_arms/dynamic_definitions/",
            #[cfg(feature = "ck3")]
            Item::CombatEffect => "common/combat_effects/",
            #[cfg(feature = "ck3")]
            Item::CombatPhaseEvent => "common/combat_phase_events/",
            #[cfg(feature = "ck3")]
            Item::CouncilPosition => "common/council_positions/",
            #[cfg(feature = "ck3")]
            Item::CouncilTask => "common/council_tasks/",
            #[cfg(feature = "ck3")]
            Item::CourtPosition => "common/court_positions/types/",
            #[cfg(feature = "ck3")]
            Item::CourtPositionCategory => "common/court_positions/categories/",
            #[cfg(feature = "ck3")]
            Item::CourtSceneCulture => "gfx/court_scene/scene_cultures/",
            #[cfg(feature = "ck3")]
            Item::CourtSceneGroup => "gfx/court_scene/character_groups/",
            #[cfg(feature = "ck3")]
            Item::CourtSceneRole => "gfx/court_scene/character_roles/",
            #[cfg(feature = "ck3")]
            Item::CourtSceneSetting => "gfx/court_scene/scene_settings/",
            #[cfg(feature = "ck3")]
            Item::CourtType => "common/court_types/",
            #[cfg(feature = "ck3")]
            Item::CourtierGuestManagement => "common/courtier_guest_management/",
            #[cfg(feature = "ck3")]
            Item::CultureAesthetic => "common/culture/aesthetics_bundles/",
            #[cfg(feature = "ck3")]
            Item::CultureCreationName => "common/culture/creation_names/",
            #[cfg(feature = "ck3")]
            Item::CultureEra => "common/culture/eras/",
            #[cfg(feature = "ck3")]
            Item::CultureEthos => "common/culture/pillars/",
            #[cfg(feature = "ck3")]
            Item::CultureHeritage => "common/culture/pillars/",
            #[cfg(feature = "ck3")]
            Item::CultureHistory => "history/cultures/",
            #[cfg(feature = "ck3")]
            Item::CultureParameter => "common/culture/",
            #[cfg(feature = "ck3")]
            Item::CulturePillar => "common/culture/pillars/",
            #[cfg(feature = "ck3")]
            Item::CultureTradition => "common/culture/traditions/",
            #[cfg(feature = "ck3")]
            Item::CultureTraditionCategory => "common/culture/traditions/",
            #[cfg(feature = "ck3")]
            Item::DangerType => "",
            #[cfg(feature = "ck3")]
            Item::DiarchyMandate => "common/diarchies/diarchy_mandates/",
            #[cfg(feature = "ck3")]
            Item::DiarchyParameter => "common/diarchies/diarchy_types/",
            #[cfg(feature = "ck3")]
            Item::DiarchyType => "common/diarchies/diarchy_types/",
            #[cfg(feature = "ck3")]
            Item::Doctrine => "common/religion/doctrines/",
            #[cfg(feature = "ck3")]
            Item::DoctrineCategory => "common/religion/doctrines/",
            #[cfg(feature = "ck3")]
            Item::DoctrineParameter => "common/religion/doctrines/",
            #[cfg(feature = "ck3")]
            Item::Dynasty => "common/dynasties/",
            #[cfg(feature = "ck3")]
            Item::DynastyLegacy => "common/dynasty_legacies/",
            #[cfg(feature = "ck3")]
            Item::DynastyPerk => "common/dynasty_perks/",
            #[cfg(feature = "ck3")]
            Item::EpidemicType => "common/epidemics/",
            #[cfg(feature = "ck3")]
            Item::EpidemicDeathReason => "common/deathreasons/",
            #[cfg(feature = "ck3")]
            Item::EventBackground => "common/event_backgrounds/",
            #[cfg(feature = "ck3")]
            Item::EventEffect2d => "common/event_2d_effects/",
            #[cfg(feature = "ck3")]
            Item::EventTransition => "common/event_transitions/",
            #[cfg(feature = "ck3")]
            Item::Faith => "common/religion/religions/",
            #[cfg(feature = "ck3")]
            Item::FaithIcon => "common/religion/religions/",
            #[cfg(feature = "ck3")]
            Item::FervorModifier => "common/religion/fervor_modifiers/",
            #[cfg(feature = "ck3")]
            Item::Faction => "common/factions/",
            #[cfg(feature = "ck3")]
            Item::Flavorization => "common/flavorization/",
            #[cfg(feature = "ck3")]
            Item::Focus => "common/focuses/",
            #[cfg(feature = "ck3")]
            Item::GeneticConstraint => "common/traits/",
            #[cfg(feature = "ck3")]
            Item::GovernmentFlag => "common/governments/",
            #[cfg(feature = "ck3")]
            Item::GraphicalFaith => "common/religion/religions/",
            #[cfg(feature = "ck3")]
            Item::GuestInviteRule => "common/activities/guest_invite_rules/",
            #[cfg(feature = "ck3")]
            Item::GuestSubset => "common/activities/activity_types/",
            #[cfg(feature = "ck3")]
            Item::GuestSystem => "common/guest_system/",
            #[cfg(feature = "ck3")]
            Item::HoldingFlag => "common/holdings/",
            #[cfg(feature = "ck3")]
            Item::HoldingType => "common/holdings/",
            #[cfg(feature = "ck3")]
            Item::HolySite => "common/religion/holy_sites/",
            #[cfg(feature = "ck3")]
            Item::HolySiteFlag => "common/religion/holy_sites/",
            #[cfg(feature = "ck3")]
            Item::Hook => "common/hook_types/",
            #[cfg(feature = "ck3")]
            Item::House => "common/dynasty_houses/",
            #[cfg(feature = "ck3")]
            Item::HouseUnity => "common/house_unities/",
            #[cfg(feature = "ck3")]
            Item::HouseUnityParameter => "common/house_unities",
            #[cfg(feature = "ck3")]
            Item::HouseUnityStage => "common/house_unities/",
            #[cfg(feature = "ck3")]
            Item::ImportantAction => "common/important_actions/",
            #[cfg(feature = "ck3")]
            Item::Innovation => "common/culture/innovations/",
            #[cfg(feature = "ck3")]
            Item::InnovationFlag => "common/culture/innovations/",
            #[cfg(feature = "ck3")]
            Item::Inspiration => "common/inspirations/",
            #[cfg(feature = "ck3")]
            Item::Language => "common/culture/pillars/",
            #[cfg(feature = "ck3")]
            Item::LawFlag => "common/laws/",
            #[cfg(feature = "ck3")]
            Item::LeaseContract => "common/lease_contracts/",
            #[cfg(feature = "ck3")]
            Item::LegendChapter => "common/legends/chronicles/",
            #[cfg(feature = "ck3")]
            Item::LegendChronicle => "common/legends/chronicles/",
            #[cfg(feature = "ck3")]
            Item::LegendProperty => "common/legends/chronicles/",
            #[cfg(feature = "ck3")]
            Item::LegendSeed => "common/legends/legend_seeds/",
            #[cfg(feature = "ck3")]
            Item::LegendType => "common/legends/legend_types/",
            #[cfg(feature = "ck3")]
            Item::LegitimacyFlag => "common/legitimacy/",
            #[cfg(feature = "ck3")]
            Item::LegitimacyType => "common/legitimacy/",
            #[cfg(feature = "ck3")]
            Item::Lifestyle => "common/lifestyles/",
            #[cfg(feature = "ck3")]
            Item::MartialCustom => "common/culture/pillars/",
            #[cfg(feature = "ck3")]
            Item::MemoryCategory => "common/character_memory_types/",
            #[cfg(feature = "ck3")]
            Item::MemoryType => "common/character_memory_types/",
            #[cfg(feature = "ck3")]
            Item::MenAtArms => "common/men_at_arms_types/",
            #[cfg(feature = "ck3")]
            Item::MenAtArmsBase => "common/men_at_arms_types/",
            #[cfg(feature = "ck3")]
            Item::ModifierFormat => "common/modifier_definition_formats/",
            #[cfg(feature = "ck3")]
            Item::MottoInsert => "common/dynasty_house_motto_inserts/",
            #[cfg(feature = "ck3")]
            Item::Motto => "common/dynasty_house_mottos/",
            #[cfg(feature = "ck3")]
            Item::Music => "music/",
            #[cfg(feature = "ck3")]
            Item::NameEquivalency => "common/culture/name_equivalency/",
            #[cfg(feature = "ck3")]
            Item::NameList => "common/culture/name_lists/",
            #[cfg(feature = "ck3")]
            Item::Nickname => "common/nicknames/",
            #[cfg(feature = "ck3")]
            Item::OpinionModifier => "common/opinion_modifiers/",
            #[cfg(feature = "ck3")]
            Item::Perk => "common/lifestyle_perks/",
            #[cfg(feature = "ck3")]
            Item::PerkTree => "common/lifestyle_perks/",
            #[cfg(feature = "ck3")]
            Item::PlayableDifficultyInfo => "common/playable_difficulty_infos/",
            #[cfg(feature = "ck3")]
            Item::PointOfInterest => "common/travel/point_of_interest_types/",
            #[cfg(feature = "ck3")]
            Item::PoolSelector => "common/pool_character_selectors/",
            #[cfg(feature = "ck3")]
            Item::PrisonType => "",
            #[cfg(feature = "ck3")]
            Item::PulseAction => "common/activities/pulse_actions/",
            #[cfg(feature = "ck3")]
            Item::Relation => "common/scripted_relations/",
            #[cfg(feature = "ck3")]
            Item::RelationFlag => "common/scripted_relations/",
            #[cfg(feature = "ck3")]
            Item::ReligionFamily => "common/religion/religion_families/",
            #[cfg(feature = "ck3")]
            Item::RewardItem => "",
            #[cfg(feature = "ck3")]
            Item::Scheme => "common/schemes/",
            #[cfg(feature = "ck3")]
            Item::ScriptedAnimation => "common/scripted_animations/",
            #[cfg(feature = "ck3")]
            Item::ScriptedCost => "common/scripted_costs/",
            #[cfg(feature = "ck3")]
            Item::ScriptedIllustration => "gfx/interface/illustrations/scripted_illustrations/",
            #[cfg(feature = "ck3")]
            Item::Secret => "common/secret_types/",
            #[cfg(feature = "ck3")]
            Item::Sexuality => "",
            #[cfg(feature = "ck3")]
            Item::Skill => "",
            #[cfg(feature = "ck3")]
            Item::SpecialBuilding => "common/buildings/",
            #[cfg(feature = "ck3")]
            Item::SpecialGuest => "common/activities/activity_types/",
            #[cfg(feature = "ck3")]
            Item::Story => "common/story_cycles/",
            #[cfg(feature = "ck3")]
            Item::Struggle => "common/struggle/struggles/",
            #[cfg(feature = "ck3")]
            Item::StrugglePhase => "common/struggle/struggles/",
            #[cfg(feature = "ck3")]
            Item::StrugglePhaseParameter => "common/struggle/struggles/",
            #[cfg(feature = "ck3")]
            Item::SuccessionElection => "common/succession_election/",
            #[cfg(feature = "ck3")]
            Item::Suggestion => "common/suggestions/",
            #[cfg(feature = "ck3")]
            Item::TaxSlotFlag => "common/tax_slots/obligations",
            #[cfg(feature = "ck3")]
            Item::TaxSlotObligation => "common/tax_slots/obligations",
            #[cfg(feature = "ck3")]
            Item::TaxSlotType => "common/tax_slots/types",
            #[cfg(feature = "ck3")]
            Item::Title => "common/landed_titles/",
            #[cfg(feature = "ck3")]
            Item::TitleHistory => "history/titles/",
            #[cfg(feature = "ck3")]
            Item::TitleHistoryType => "",
            #[cfg(feature = "ck3")]
            Item::Trait => "common/traits/",
            #[cfg(feature = "ck3")]
            Item::TraitCategory => "",
            #[cfg(feature = "ck3")]
            Item::TraitFlag => "common/traits/",
            #[cfg(feature = "ck3")]
            Item::TraitTrack => "common/traits/",
            #[cfg(feature = "ck3")]
            Item::TravelOption => "common/travel/travel_options/",
            #[cfg(feature = "ck3")]
            Item::UnitGfx => "common/culture/cultures/",
            #[cfg(feature = "ck3")]
            Item::VassalContract => "common/vassal_contracts/",
            #[cfg(feature = "ck3")]
            Item::VassalContractFlag => "common/vassal_contracts/",
            #[cfg(feature = "ck3")]
            Item::VassalObligationLevel => "common/vassal_contracts/",
            #[cfg(feature = "ck3")]
            Item::VassalStance => "common/vassal_stances/",
            #[cfg(feature = "vic3")]
            Item::AiStrategy => "common/ai_strategies/",
            #[cfg(feature = "vic3")]
            Item::Alert => "common/alert_types",
            #[cfg(feature = "vic3")]
            Item::AlertGroup => "common/alert_groups",
            #[cfg(feature = "vic3")]
            Item::Approval => "",
            #[cfg(feature = "vic3")]
            Item::Attitude => "",
            #[cfg(feature = "vic3")]
            Item::BattleCondition => "common/battle_conditions/",
            #[cfg(feature = "vic3")]
            Item::BuildingGroup => "common/building_groups/",
            #[cfg(feature = "vic3")]
            Item::BuildingType => "common/buildings/",
            #[cfg(feature = "vic3")]
            Item::BuyPackage => "common/buy_packages/",
            #[cfg(feature = "vic3")]
            Item::CanalType => "common/canals/",
            #[cfg(feature = "vic3")]
            Item::CharacterRole => "",
            #[cfg(feature = "vic3")]
            Item::CombatUnit => "common/combat_unit_types/",
            #[cfg(feature = "vic3")]
            Item::CombatUnitExperienceLevel => "common/combat_unit_experience_levels/",
            #[cfg(feature = "vic3")]
            Item::CombatUnitGroup => "common/combat_unit_groups/",
            #[cfg(feature = "vic3")]
            Item::CommanderOrder => "common/commander_orders/",
            #[cfg(feature = "vic3")]
            Item::CommanderRank => "common/commander_ranks/",
            #[cfg(feature = "vic3")]
            Item::CompanyType => "common/company_types/",
            #[cfg(feature = "vic3")]
            Item::CountryCreation => "common/country_creation/",
            #[cfg(feature = "vic3")]
            Item::CountryFormation => "common/country_formation/",
            #[cfg(feature = "vic3")]
            Item::CountryRank => "common/country_ranks/",
            #[cfg(feature = "vic3")]
            Item::CountryTier => "",
            #[cfg(feature = "vic3")]
            Item::CountryType => "common/country_types/",
            #[cfg(feature = "vic3")]
            Item::CultureGraphics => "common/culture_graphics/",
            #[cfg(feature = "vic3")]
            Item::Decree => "common/decrees/",
            #[cfg(feature = "vic3")]
            Item::DiplomaticAction => "common/diplomatic_actions/",
            #[cfg(feature = "vic3")]
            Item::DiplomaticPlay => "common/diplomatic_plays/",
            #[cfg(feature = "vic3")]
            Item::DiscriminationTrait => "common/discrimination_traits/",
            #[cfg(feature = "vic3")]
            Item::DynamicCompanyName => "common/dynamic_company_names/",
            #[cfg(feature = "vic3")]
            Item::DynamicCountryMapColor => "common/dynamic_country_map_colors/",
            #[cfg(feature = "vic3")]
            Item::DynamicCountryName => "common/dynamic_country_names/",
            #[cfg(feature = "vic3")]
            Item::EventCategory => "",
            #[cfg(feature = "vic3")]
            Item::FlagDefinition => "common/flag_definitions/",
            #[cfg(feature = "vic3")]
            Item::Goods => "common/goods/",
            #[cfg(feature = "vic3")]
            Item::GradientBorderSettings => "gfx/map/gradient_border_settings/",
            #[cfg(feature = "vic3")]
            Item::Ideology => "common/ideologies/",
            #[cfg(feature = "vic3")]
            Item::InfamyThreshold => "",
            #[cfg(feature = "vic3")]
            Item::Institution => "common/institutions/",
            #[cfg(feature = "vic3")]
            Item::InterestGroup => "common/interest_groups/",
            #[cfg(feature = "vic3")]
            Item::InterestGroupTrait => "common/interest_group_traits/",
            #[cfg(feature = "vic3")]
            Item::JournalEntry => "common/journal_entries/",
            #[cfg(feature = "vic3")]
            Item::JournalEntryGroup => "common/journal_entry_groups/",
            #[cfg(feature = "vic3")]
            Item::LawType => "common/laws/",
            #[cfg(feature = "vic3")]
            Item::LegitimacyLevel => "common/legitimacy_levels/",
            #[cfg(feature = "vic3")]
            Item::Level => "",
            #[cfg(feature = "vic3")]
            Item::MapLayer => "gfx/map/map_object_data/layers.txt",
            #[cfg(feature = "vic3")]
            Item::MapInteractionType => "common/map_interaction_types/",
            #[cfg(feature = "vic3")]
            Item::MediaAlias => "gfx/media_aliases/",
            #[cfg(feature = "vic3")]
            Item::MilitaryFormationFlag => "common/military_formation_flags/",
            #[cfg(feature = "vic3")]
            Item::MobilizationOption => "common/mobilization_options/",
            #[cfg(feature = "vic3")]
            Item::ModifierType => "common/modifier_types/",
            #[cfg(feature = "vic3")]
            Item::Objective => "common/objectives/",
            #[cfg(feature = "vic3")]
            Item::ObjectiveSubgoal => "common/objective_subgoals/",
            #[cfg(feature = "vic3")]
            Item::ObjectiveSubgoalCategory => "common/objective_subgoal_categories/",
            #[cfg(feature = "vic3")]
            Item::OldCombatUnit => "common/old_combat_unit_types/",
            #[cfg(feature = "vic3")]
            Item::Party => "common/parties/",
            #[cfg(feature = "vic3")]
            Item::PoliticalMovement => "",
            #[cfg(feature = "vic3")]
            Item::PopNeed => "common/pop_needs",
            #[cfg(feature = "vic3")]
            Item::ProductionMethod => "common/production_methods/",
            #[cfg(feature = "vic3")]
            Item::ProductionMethodGroup => "common/production_method_groups/",
            #[cfg(feature = "vic3")]
            Item::RelationsThreshold => "",
            #[cfg(feature = "vic3")]
            Item::ScriptedButton => "common/scripted_buttons/",
            #[cfg(feature = "vic3")]
            Item::SecretGoal => "common/secret_goals/",
            #[cfg(feature = "vic3")]
            Item::StateRegion => "map_data/state_regions/",
            #[cfg(feature = "vic3")]
            Item::StateTrait => "common/state_traits/",
            #[cfg(feature = "vic3")]
            Item::Strata => "",
            #[cfg(feature = "vic3")]
            Item::StrategicRegion => "common/strategic_regions/",
            #[cfg(feature = "vic3")]
            Item::Technology => "common/technology/technologies/",
            #[cfg(feature = "vic3")]
            Item::TechnologyEra => "common/technology/eras/",
            #[cfg(feature = "vic3")]
            Item::TerrainLabel => "common/labels",
            #[cfg(feature = "vic3")]
            Item::TerrainManipulator => "common/terrain_manipulators/",
            #[cfg(feature = "vic3")]
            Item::TerrainMask => "gfx/map/masks/",
            #[cfg(feature = "vic3")]
            Item::TerrainMaterial => "gfx/map/terrain/materials.settings",
            #[cfg(feature = "vic3")]
            Item::TransferOfPower => "",
            #[cfg(feature = "imperator")]
            Item::AiPlanGoals => "common/ai_plan_goals/",
            #[cfg(feature = "imperator")]
            Item::Ambition => "common/ambitions/",
            #[cfg(feature = "imperator")]
            Item::Area => "map_data/areas.txt",
            #[cfg(feature = "imperator")]
            Item::CombatTactic => "common/combat_tactics/",
            #[cfg(feature = "imperator")]
            Item::CultureGroup => "common/cultures/",
            #[cfg(feature = "imperator")]
            Item::Deity => "common/deities/",
            #[cfg(feature = "imperator")]
            Item::DeityCategory => "common/deity_categories/",
            #[cfg(feature = "imperator")]
            Item::DiplomaticStance => "common/diplomatic_stances/",
            #[cfg(feature = "imperator")]
            Item::EconomicPolicy => "common/economic_policies/",
            #[cfg(feature = "imperator")]
            Item::EventPicture => "common/event_pictures/",
            #[cfg(feature = "imperator")]
            Item::GovernorPolicy => "common/governor_policies/",
            #[cfg(feature = "imperator")]
            Item::GraphicalCultureType => "common/graphical_culture_types/",
            #[cfg(feature = "imperator")]
            Item::GreatWorkEffect => "common/great_work_effects/",
            #[cfg(feature = "imperator")]
            Item::GreatWorkEffectTier => "common/great_work_effect_tiers/",
            #[cfg(feature = "imperator")]
            Item::GreatWorkCategory => "common/great_work_categories/",
            #[cfg(feature = "imperator")]
            Item::GreatWorkMaterial => "common/great_work_materials/",
            #[cfg(feature = "imperator")]
            Item::GreatWorkModule => "common/great_work_modules/",
            #[cfg(feature = "imperator")]
            Item::GreatWorkTemplate => "common/great_work_templates/",
            #[cfg(feature = "imperator")]
            Item::Heritage => "common/heritage/",
            #[cfg(feature = "imperator")]
            Item::Idea => "common/ideas/",
            #[cfg(feature = "imperator")]
            Item::Invention => "common/inventions/",
            #[cfg(feature = "imperator")]
            Item::InventionGroup => "common/inventions/",
            #[cfg(feature = "imperator")]
            Item::LegionDistinction => "common/legion_distinctions/",
            #[cfg(feature = "imperator")]
            Item::LevyTemplate => "common/levy_templates/",
            #[cfg(feature = "imperator")]
            Item::Loyalty => "common/loyalty/",
            #[cfg(feature = "imperator")]
            Item::MilitaryTraditionTree => "common/military_traditions/",
            #[cfg(feature = "imperator")]
            Item::MilitaryTradition => "common/military_traditions/",
            #[cfg(feature = "imperator")]
            Item::Mission => "common/missions/",
            #[cfg(feature = "imperator")]
            Item::MissionTask => "common/missions/",
            #[cfg(feature = "imperator")]
            Item::Office => "common/offices/",
            #[cfg(feature = "imperator")]
            Item::Opinion => "common/opinions/",
            #[cfg(feature = "imperator")]
            Item::PartyAgenda => "common/party_agendas",
            #[cfg(feature = "imperator")]
            Item::PartyType => "common/party_types/",
            #[cfg(feature = "imperator")]
            Item::PostSetupCharacters => "setup/post_character/",
            #[cfg(feature = "imperator")]
            Item::Price => "common/prices/",
            #[cfg(feature = "imperator")]
            Item::ProvinceRank => "common/province_ranks/",
            #[cfg(feature = "imperator")]
            Item::TechnologyTable => "common/technology_tables/",
            #[cfg(feature = "imperator")]
            Item::SetupCharacters => "setup/characters/",
            #[cfg(feature = "imperator")]
            Item::SetupProvinces => "setup/provinces/",
            #[cfg(feature = "imperator")]
            Item::TradeGood => "common/trade_goods/",
            #[cfg(feature = "imperator")]
            Item::Treasure => "setup/main/",
            #[cfg(feature = "imperator")]
            Item::Unit => "common/units/",
            #[cfg(feature = "imperator")]
            Item::UnitAbility => "common/unit_abilities/",
        }
    }
    pub fn confidence(self) -> Confidence {
        match self {
            Item::AccessoryTag
            | Item::GuiType
            | Item::GuiTemplate
            | Item::Sound => Confidence::Weak,
            #[cfg(feature = "ck3")]
            Item::AccoladeCategory
            | Item::BuildingGfx
            | Item::ClothingGfx
            | Item::CoaGfx
            | Item::MemoryCategory
            | Item::UnitGfx => Confidence::Weak,
            #[cfg(feature = "ck3")]
            Item::SpecialBuilding => Confidence::Reasonable,
            _ => Confidence::Strong,
        }
    }
    pub fn severity(self) -> Severity {
        match self {
            Item::GuiType | Item::GuiTemplate => Severity::Untidy,
            Item::Accessory
            | Item::AccessoryTag
            | Item::AccessoryVariation
            | Item::AccessoryVariationLayout
            | Item::AccessoryVariationTextures
            | Item::Coa
            | Item::CoaColorList
            | Item::CoaColoredEmblemList
            | Item::CoaPatternList
            | Item::CoaTemplate
            | Item::CoaTemplateList
            | Item::CoaTexturedEmblemList
            | Item::CustomLocalization
            | Item::EffectLocalization
            | Item::Ethnicity
            | Item::File
            | Item::GameConcept
            | Item::Localization
            | Item::MapEnvironment
            | Item::NamedColor
            | Item::PortraitAnimation
            | Item::PortraitCamera
            | Item::PortraitEnvironment
            | Item::Sound
            | Item::TextFormat
            | Item::TextIcon
            | Item::TextureFile
            | Item::TriggerLocalization => Severity::Warning,
            #[cfg(feature = "ck3")]
            Item::AccoladeIcon
            | Item::ArtifactVisual
            | Item::BuildingGfx
            | Item::ClothingGfx
            | Item::CoaDynamicDefinition
            | Item::CoaGfx
            | Item::CultureAesthetic
            | Item::CultureCreationName
            | Item::EventBackground
            | Item::EventTheme
            | Item::EventTransition
            | Item::Flavorization
            | Item::GraphicalFaith
            | Item::ModifierFormat
            | Item::MottoInsert
            | Item::Motto
            | Item::Music
            | Item::Nickname
            | Item::ScriptedIllustration
            | Item::UnitGfx => Severity::Warning,
            #[cfg(feature = "vic3")]
            Item::MapLayer
            | Item::ModifierType
            | Item::TerrainManipulator
            | Item::TerrainMask
            | Item::TerrainMaterial => Severity::Warning,
            _ => Severity::Error,
        }
    }
}
pub(crate) type ItemAdder = fn(&mut Db, Token, Block);
pub(crate) enum ItemLoader {
    Normal(GameFlags, Item, ItemAdder),
    Full(GameFlags, Item, PdxEncoding, &'static str, bool, ItemAdder),
}
inventory::collect!(ItemLoader);
impl ItemLoader {
    pub fn for_game(&self, game: Game) -> bool {
        let game_flags = match self {
            ItemLoader::Normal(game_flags, _, _) | ItemLoader::Full(game_flags, _, _, _, _, _) => {
                game_flags
            }
        };
        game_flags.contains(GameFlags::from(game))
    }
    pub fn itype(&self) -> Item {
        match self {
            ItemLoader::Normal(_, itype, _) | ItemLoader::Full(_, itype, _, _, _, _) => *itype,
        }
    }
    pub fn encoding(&self) -> PdxEncoding {
        match self {
            ItemLoader::Normal(_, _, _) => PdxEncoding::Utf8Bom,
            ItemLoader::Full(_, _, encoding, _, _, _) => *encoding,
        }
    }
    pub fn extension(&self) -> &'static str {
        match self {
            ItemLoader::Normal(_, _, _) => ".txt",
            ItemLoader::Full(_, _, _, extension, _, _) => extension,
        }
    }
    pub fn whole_file(&self) -> bool {
        match self {
            ItemLoader::Normal(_, _, _) => false,
            ItemLoader::Full(_, _, _, _, whole_file, _) => *whole_file,
        }
    }
    pub fn adder(&self) -> ItemAdder {
        match self {
            ItemLoader::Normal(_, _, adder) | ItemLoader::Full(_, _, _, _, _, adder) => *adder,
        }
    }
}