{
  /**
   * Metadata about some SMAPI mods used in compatibility, update, and dependency checks. This
   * field shouldn't be edited by players in most cases.
   *
   * Standard fields
   * ===============
   * The predefined fields are documented below (only 'ID' is required). Each entry's key is the
   * default display name for the mod if one isn't available (e.g. in dependency checks).
   *
   *   - ID: the mod's latest unique ID (if any).
   *
   *   - FormerIDs: uniquely identifies the mod across multiple versions, and supports matching
   *     other fields if no ID was specified. This doesn't include the latest ID, if any.
   *     Format rules:
   *       1. If the mod's ID changed over time, multiple variants can be separated by the '|'
   *          character.
   *       2. Each variant can take one of two forms:
   *          - A simple string matching the mod's UniqueID value.
   *          - A JSON structure containing any of four manifest fields (ID, Name, Author, and
   *            EntryDll) to match.
   *
   *   - MapLocalVersions and MapRemoteVersions correct local manifest versions and remote versions
   *     during update checks. For example, if the API returns version '1.1-1078' where '1078' is
   *     intended to be a build number, MapRemoteVersions can map it to '1.1' when comparing to the
   *     mod's current version. This is only meant to support legacy mods with injected update keys.
   *
   * Versioned metadata
   * ==================
   * Each record can also specify extra metadata using the field keys below.
   *
   * Each key consists of a field name prefixed with any combination of version range and 'Default',
   * separated by pipes (whitespace trimmed). For example, 'UpdateKey' will always override,
   * 'Default | UpdateKey' will only override if the mod has no update keys, and
   * '~1.1 | Default | Name' will do the same up to version 1.1.
   *
   * The version format is 'min~max' (where either side can be blank for unbounded), or a single
   * version number.
   *
   * These are the valid field names:
   *
   *   - UpdateKey: the update key to set in the mod's manifest. This is used to enable update
   *     checks for older mods that haven't been updated to use it yet.
   *
   *   - Status: overrides compatibility checks. The possible values are Obsolete (SMAPI won't load
   *     it because the mod should no longer be used), AssumeBroken (SMAPI won't load it because
   *     the specified version isn't compatible), or AssumeCompatible (SMAPI will try to load it
   *     even if it detects incompatible code).
   *
   *     Note that this shouldn't be set to 'AssumeBroken' if SMAPI can detect the incompatibility
   *     automatically, since that hides the details from trace logs.
   *
   *   - StatusReasonPhrase: a message to show to the player explaining why the mod can't be loaded
   *     (if applicable). If blank, will default to a generic not-compatible message.
   *
   *   - AlternativeUrl: a URL where the player can find an unofficial update or alternative if the
   *     mod is no longer compatible.
   */
  "ModData": {
    "AccessChestAnywhere": {
      "ID": "AccessChestAnywhere",
      "MapLocalVersions": { "1.1-1078": "1.1" },
      "Default | UpdateKey": "Nexus:257",
      "~1.1    | Status": "AssumeBroken"
    },

    "AdjustArtisanPrices": {
      "ID": "ThatNorthernMonkey.AdjustArtisanPrices",
      "FormerIDs": "1e36d4ca-c7ef-4dfb-9927-d27a6c3c8bdc", // changed in 0.0.2-pathoschild-update
      "MapRemoteVersions": { "0.01": "0.0.1" },
      "Default | UpdateKey": "Chucklefish:3532"
    },

    "Adjust Monster": {
      "ID": "mmanlapat.AdjustMonster",
      "Default | UpdateKey": "Nexus:1161"
    },

    "Advanced Location Loader": {
      "ID": "Entoarox.AdvancedLocationLoader",
      "~1.3.7  | UpdateKey": "Chucklefish:3619" // only enable update checks up to 1.3.7 by request (has its own update-check feature)
    },

    "Adventure Shop Inventory": {
      "ID": "HammurabiAdventureShopInventory",
      "Default | UpdateKey": "Chucklefish:4608"
    },

    "AgingMod": {
      "ID": "skn.AgingMod",
      "Default | UpdateKey": "Nexus:1129",
      "~1.0    | Status": "AssumeBroken" // broke in SMAPI 2.0
    },

    "All Crops All Seasons": {
      "ID": "cantorsdust.AllCropsAllSeasons",
      "FormerIDs": "29ee8246-d67b-4242-a340-35a9ae0d5dd7 | community.AllCropsAllSeasons", // changed in 1.3 and 1.5
      "Default | UpdateKey": "Nexus:170"
    },

    "All Professions": {
      "ID": "cantorsdust.AllProfessions",
      "FormerIDs": "8c37b1a7-4bfb-4916-9d8a-9533e6363ea3 | community.AllProfessions", // changed in 1.2 and 1.3.1
      "Default | UpdateKey": "Nexus:174"
    },

    "Almighty Farming Tool": {
      "ID": "439",
      "FormerIDs": "{EntryDll: 'AlmightyTool.dll'}", // changed in 1.2.1
      "MapRemoteVersions": { "1.21": "1.2.1" },
      "Default | UpdateKey": "Nexus:439"
    },

    "Animal Husbandry": {
      "ID": "DIGUS.ANIMALHUSBANDRYMOD",
      "FormerIDs": "DIGUS.BUTCHER", // changed in 2.0.1
      "Default | UpdateKey": "Nexus:1538"
    },

    "Animal Mood Fix": {
      "ID": "GPeters-AnimalMoodFix",
      "~ | Status": "Obsolete",
      "~ | StatusReasonPhrase": "the animal mood bugs were fixed in Stardew Valley 1.2."
    },

    "Animal Sitter": {
      "ID": "jwdred.AnimalSitter",
      "FormerIDs": "{EntryDll: 'AnimalSitter.dll'}", // changed in 1.0.9
      "Default | UpdateKey": "Nexus:581",
      "~1.0.8  | Status": "AssumeBroken" // broke in SMAPI 2.0
    },

    "Ashley Mod": {
      "FormerIDs": "{EntryDll: 'AshleyMod.dll'}",
      "~1.0.1 | Status": "AssumeBroken" // broke in SMAPI 2.0
    },

    "A Tapper's Dream": {
      "ID": "ddde5195-8f85-4061-90cc-0d4fd5459358",
      "Default | UpdateKey": "Nexus:260"
    },

    "Auto Animal Doors": {
      "ID": "AaronTaggart.AutoAnimalDoors",
      "Default | UpdateKey": "Nexus:1019"
    },

    "Auto-Eat": {
      "ID": "Permamiss.AutoEat",
      "FormerIDs": "BALANCEMOD_AutoEat", // changed in 1.1.1
      "Default | UpdateKey": "Nexus:643"
    },

    "AutoFish": {
      "ID": "WhiteMind.AF",
      "Default | UpdateKey": "Nexus:1895"
    },

    "AutoGate": {
      "ID": "AutoGate",
      "Default | UpdateKey": "Nexus:820"
    },

    "Automate": {
      "ID": "Pathoschild.Automate",
      "Default | UpdateKey": "Nexus:1063",
      "~1.9.1  | Status": "AssumeBroken" // broke in SDV 1.3
    },

    "Automated Doors": {
      "ID": "azah.automated-doors",
      "FormerIDs": "1abcfa07-2cf4-4dc3-a6e9-6068b642112b", // changed in 1.4.1
      "Default | UpdateKey": "GitHub:azah/AutomatedDoors" // added in 1.4.2
    },

    "AutoSpeed": {
      "ID": "Omegasis.AutoSpeed",
      "FormerIDs": "{ID:'4be88c18-b6f3-49b0-ba96-f94b1a5be890', Name:'AutoSpeed'}", // changed in 1.4; disambiguate from other Alpha_Omegasis mods
      "Default | UpdateKey": "Nexus:443" // added in 1.4.1
    },

    "Basic Sprinklers Improved": {
      "ID": "lrsk_sdvm_bsi.0117171308",
      "MapRemoteVersions": { "1.0.2": "1.0.1-release" }, // manifest not updated
      "Default | UpdateKey": "Nexus:833"
    },

    "Better Hay": {
      "ID": "cat.betterhay",
      "Default | UpdateKey": "Nexus:1430"
    },

    "Better Quality More Seasons": {
      "ID": "SB_BQMS",
      "Default | UpdateKey": "Nexus:935"
    },

    "Better Quarry": {
      "ID": "BetterQuarry",
      "Default | UpdateKey": "Nexus:771"
    },

    "Better Ranching": {
      "ID": "BetterRanching",
      "Default | UpdateKey": "Nexus:859"
    },

    "Better Shipping Box": {
      "ID": "Kithio:BetterShippingBox",
      "MapLocalVersions": { "1.0.1": "1.0.2" },
      "Default | UpdateKey": "Chucklefish:4302"
    },

    "Better Sprinklers": {
      "ID": "Speeder.BetterSprinklers",
      "FormerIDs": "SPDSprinklersMod", // changed in 2.3
      "Default | UpdateKey": "Nexus:41"
    },

    "Billboard Anywhere": {
      "ID": "Omegasis.BillboardAnywhere",
      "FormerIDs": "{ID:'7ad4f6f7-c3de-4729-a40f-7a11d2b2a358', Name:'Billboard Anywhere'}", // changed in 1.4; disambiguate from other mods by Alpha_Omegasis
      "Default | UpdateKey": "Nexus:492" // added in 1.4.1
    },

    "Birthday Mail": {
      "ID": "KathrynHazuka.BirthdayMail",
      "FormerIDs": "005e02dc-d900-425c-9c68-1ff55c5a295d", // changed in 1.2.3-pathoschild-update
      "Default | UpdateKey": "Nexus:276",
      "MapRemoteVersions": { "1.3.1": "1.3" } // manifest not updated
    },

    "Breed Like Rabbits": {
      "ID": "dycedarger.breedlikerabbits",
      "Default | UpdateKey": "Nexus:948"
    },

    "Build Endurance": {
      "ID": "Omegasis.BuildEndurance",
      "FormerIDs": "{ID:'4be88c18-b6f3-49b0-ba96-f94b1a5be890', Name:'BuildEndurance'}", // changed in 1.4; disambiguate from other Alpha_Omegasis mods
      "Default | UpdateKey": "Nexus:445" // added in 1.4.1
    },

    "Build Health": {
      "ID": "Omegasis.BuildHealth",
      "FormerIDs": "{ID:'4be88c18-b6f3-49b0-ba96-f94b1a5be890', Name:'BuildHealth'}", // changed in 1.4; disambiguate from other Alpha_Omegasis mods
      "Default | UpdateKey": "Nexus:446" // added in 1.4.1
    },

    "Buy Cooking Recipes": {
      "ID": "Denifia.BuyRecipes",
      "Default | UpdateKey": "Nexus:1126" // added in 1.0.1 (2017-10-04)
    },

    "Buy Back Collectables": {
      "ID": "Omegasis.BuyBackCollectables",
      "FormerIDs": "BuyBackCollectables", // changed in 1.4
      "Default | UpdateKey": "Nexus:507" // added in 1.4.1
    },

    "Carry Chest": {
      "ID": "spacechase0.CarryChest",
      "Default | UpdateKey": "Nexus:1333"
    },

    "Casks Anywhere": {
      "ID": "CasksAnywhere",
      "MapLocalVersions": { "1.1-alpha": "1.1" },
      "Default | UpdateKey": "Nexus:878"
    },

    "Categorize Chests": {
      "ID": "CategorizeChests",
      "Default | UpdateKey": "Nexus:1300"
    },

    "Chefs Closet": {
      "ID": "Duder.ChefsCloset",
      "MapLocalVersions": { "1.3-1": "1.3" },
      "Default | UpdateKey": "Nexus:1030"
    },

    "Chest Label System": {
      "ID": "Speeder.ChestLabel",
      "FormerIDs": "SPDChestLabel", // changed in 1.5.1-pathoschild-update
      "Default | UpdateKey": "Nexus:242"
    },

    "Chest Pooling": {
      "ID": "mralbobo.ChestPooling",
      "FormerIDs": "{EntryDll: 'ChestPooling.dll'}", // changed in 1.3
      "Default | UpdateKey": "GitHub:mralbobo/stardew-chest-pooling"
    },

    "Chests Anywhere": {
      "ID": "Pathoschild.ChestsAnywhere",
      "FormerIDs": "ChestsAnywhere", // changed in 1.9
      "Default   | UpdateKey": "Nexus:518",
      "~1.12.4   | Status": "AssumeBroken" // broke in SDV 1.3
    },

    "Choose Baby Gender": {
      "FormerIDs": "{EntryDll: 'ChooseBabyGender.dll'}",
      "Default | UpdateKey": "Nexus:590",
      "~1.0.2  | Status": "AssumeBroken" // broke in SMAPI 2.0
    },

    "CJB Automation": {
      "ID": "CJBAutomation",
      "Default | UpdateKey": "Nexus:211",
      "~1.4    | Status": "AssumeBroken", // broke in SDV 1.2
      "~1.4    | AlternativeUrl": "http://www.nexusmods.com/stardewvalley/mods/1063"
    },

    "CJB Cheats Menu": {
      "ID": "CJBok.CheatsMenu",
      "FormerIDs": "CJBCheatsMenu", // changed in 1.14
      "Default    | UpdateKey": "Nexus:4",
      "~1.18-beta | Status": "AssumeBroken" // broke in SDV 1.3, first beta causes significant friendship bugs
    },

    "CJB Item Spawner": {
      "ID": "CJBok.ItemSpawner",
      "FormerIDs": "CJBItemSpawner", // changed in 1.7
      "Default | UpdateKey": "Nexus:93",
      "~1.10   | Status": "AssumeBroken" // broke in SDV 1.3
    },

    "CJB Show Item Sell Price": {
      "ID": "CJBok.ShowItemSellPrice",
      "FormerIDs": "CJBShowItemSellPrice", // changed in 1.7
      "Default | UpdateKey": "Nexus:5",
      "~1.8    | Status": "AssumeBroken" // broke in SDV 1.3
    },

    "Clean Farm": {
      "ID": "tstaples.CleanFarm",
      "Default | UpdateKey": "Nexus:794"
    },

    "Climates of Ferngill": {
      "ID": "KoihimeNakamura.ClimatesOfFerngill",
      "Default | UpdateKey": "Nexus:604"
    },

    "Coal Regen": {
      "ID": "Blucifer.CoalRegen",
      "Default | UpdateKey": "Nexus:1664"
    },

    "Cobalt": {
      "ID": "spacechase0.Cobalt",
      "MapRemoteVersions": { "1.1.3": "1.1.2" } // not updated in manifest
    },

    "Cold Weather Haley": {
      "ID": "LordXamon.ColdWeatherHaleyPRO",
      "Default | UpdateKey": "Nexus:1169",
      "~1.0    | Status": "AssumeBroken" // broke in SMAPI 2.0
    },

    "Colored Chests": {
      "ID": "4befde5c-731c-4853-8e4b-c5cdf946805f",
      "~ | Status": "Obsolete",
      "~ | StatusReasonPhrase": "colored chests were added in Stardew Valley 1.1."
    },

    "Combat with Farm Implements": {
      "ID": "SPDFarmingImplementsInCombat",
      "Default | UpdateKey": "Nexus:313"
    },

    "Community Bundle Item Tooltip": {
      "ID": "musbah.bundleTooltip",
      "Default | UpdateKey": "Nexus:1329"
    },

    "Concentration on Farming": {
      "ID": "punyo.ConcentrationOnFarming",
      "Default | UpdateKey": "Nexus:1445"
    },

    "Configurable Machines": {
      "ID": "21da6619-dc03-4660-9794-8e5b498f5b97",
      "MapLocalVersions": { "1.2-beta": "1.2" },
      "Default | UpdateKey": "Nexus:280"
    },

    "Configurable Shipping Dates": {
      "ID": "ConfigurableShippingDates",
      "Default | UpdateKey": "Nexus:675",
      "~1.1.1  | Status": "AssumeBroken" // broke in SMAPI 2.0
    },

    "Content Patcher": {
      "ID": "Pathoschild.ContentPatcher",
      "Default | UpdateKey": "Nexus:1915",
      "~1.3.1  | Status": "AssumeBroken" // broke in SDV 1.3 (in-game errors)
    },

    "Cooking Skill": {
      "ID": "spacechase0.CookingSkill",
      "FormerIDs": "CookingSkill", // changed in 1.0.4–6
      "Default | UpdateKey": "Nexus:522"
    },

    "CrabNet": {
      "ID": "jwdred.CrabNet",
      "FormerIDs": "{EntryDll: 'CrabNet.dll'}", // changed in 1.0.5
      "Default | UpdateKey": "Nexus:584"
    },

    "Crafting Counter": {
      "ID": "lolpcgaming.CraftingCounter",
      "Default | UpdateKey": "Nexus:1585",
      "MapRemoteVersions": { "1.1": "1.0" } // not updated in manifest
    },

    "Current Location": {
      "ID": "CurrentLocation102120161203",
      "Default | UpdateKey": "Nexus:638"
    },

    "Custom Asset Modifier": {
      "ID": "Omegasis.CustomAssetModifier",
      "Default | UpdateKey": "1836"
    },

    "Custom Critters": {
      "ID": "spacechase0.CustomCritters",
      "Default | UpdateKey": "Nexus:1255"
    },

    "Custom Crops": {
      "ID": "spacechase0.CustomCrops",
      "Default | UpdateKey": "Nexus:1592"
    },

    "Custom Element Handler": {
      "ID": "Platonymous.CustomElementHandler",
      "Default | UpdateKey": "Nexus:1068" // added in 1.3.1
    },

    "Custom Farming Redux": {
      "ID": "Platonymous.CustomFarming",
      "Default | UpdateKey": "Nexus:991" // added in 0.6.1
    },

    "Custom Farming Automate Bridge": {
      "ID": "Platonymous.CFAutomate",
      "~1.0.1 | Status": "AssumeBroken", // no longer compatible with Automate
      "~1.0.1 | AlternativeUrl": "https://www.nexusmods.com/stardewvalley/mods/991"
    },

    "Custom Farm Types": {
      "ID": "spacechase0.CustomFarmTypes",
      "Default | UpdateKey": "Nexus:1140"
    },

    "Custom Furniture": {
      "ID": "Platonymous.CustomFurniture",
      "Default | UpdateKey": "Nexus:1254" // added in 0.4.1
    },

    "Customize Exterior": {
      "ID": "spacechase0.CustomizeExterior",
      "FormerIDs": "CustomizeExterior", // changed in 1.0.3
      "Default | UpdateKey": "Nexus:1099",
      "~1.0.2  | Status": "AssumeBroken" // broke in SMAPI 2.0
    },

    "Customizable Cart Redux": {
      "ID": "KoihimeNakamura.CCR",
      "MapLocalVersions": { "1.1-20170917": "1.1" },
      "Default | UpdateKey": "Nexus:1402"
    },

    "Customizable Traveling Cart Days": {
      "ID": "TravelingCartYyeahdude",
      "Default | UpdateKey": "Nexus:567"
    },

    "Custom Linens": {
      "ID": "Mevima.CustomLinens",
      "MapRemoteVersions": { "1.1": "1.0" }, // manifest not updated
      "Default | UpdateKey": "Nexus:1027"
    },

    "Custom NPC": {
      "ID": "Platonymous.CustomNPC",
      "Default | UpdateKey": "Nexus:1607"
    },

    "Custom Shops Redux": {
      "ID": "Omegasis.CustomShopReduxGui",
      "Default | UpdateKey": "Nexus:1378" // added in 1.4.1
    },

    "Custom TV": {
      "ID": "Platonymous.CustomTV",
      "Default | UpdateKey": "Nexus:1139" // added in 1.0.6
    },

    "Daily Luck Message": {
      "ID": "Schematix.DailyLuckMessage",
      "Default | UpdateKey": "Nexus:1327"
    },

    "Daily News": {
      "ID": "bashNinja.DailyNews",
      "Default | UpdateKey": "Nexus:1141",
      "~1.2    | Status": "AssumeBroken" // broke in Stardew Valley 1.3 (or depends on CustomTV which broke)
    },

    "Daily Quest Anywhere": {
      "ID": "Omegasis.DailyQuestAnywhere",
      "FormerIDs": "DailyQuest", // changed in 1.4
      "Default | UpdateKey": "Nexus:513" // added in 1.4.1
    },

    "Data Maps": {
      "ID": "Pathoschild.DataMaps",
      "Default | UpdateKey": "Nexus:1691",
      "~1.3    | Status": "AssumeBroken" // broke in SDV 1.3
    },

    "Debug Mode": {
      "ID": "Pathoschild.DebugMode",
      "FormerIDs": "Pathoschild.Stardew.DebugMode", // changed in 1.4
      "Default | UpdateKey": "Nexus:679",
      "~1.8    | Status": "AssumeBroken" // broke in SDV 1.3
    },

    "Did You Water Your Crops?": {
      "ID": "Nishtra.DidYouWaterYourCrops",
      "Default | UpdateKey": "Nexus:1583"
    },

    "Dynamic Checklist": {
      "ID": "gunnargolf.DynamicChecklist",
      "Default | UpdateKey": "Nexus:1145" // added in 1.0.1-pathoschild-update
    },

    "Dynamic Horses": {
      "ID": "Bpendragon-DynamicHorses",
      "MapRemoteVersions": { "1.2": "1.1-release" }, // manifest not updated
      "Default | UpdateKey": "Nexus:874"
    },

    "Dynamic Machines": {
      "ID": "DynamicMachines",
      "MapLocalVersions": { "1.1": "1.1.1" },
      "Default | UpdateKey": "Nexus:374",
      "~1.1.1  | Status": "AssumeBroken" // broke in SMAPI 2.0
    },

    "Dynamic NPC Sprites": {
      "ID": "BashNinja.DynamicNPCSprites",
      "Default | UpdateKey": "Nexus:1183"
    },

    "Easier Farming": {
      "ID": "cautiouswafffle.EasierFarming",
      "Default | UpdateKey": "Nexus:1426"
    },

    "Empty Hands": {
      "ID": "QuicksilverFox.EmptyHands",
      "Default | UpdateKey": "Nexus:1176" // added in 1.0.1-pathoschild-update
    },

    "Enemy Health Bars": {
      "ID": "Speeder.HealthBars",
      "FormerIDs": "SPDHealthBar", // changed in 1.7.1-pathoschild-update
      "Default | UpdateKey": "Nexus:193"
    },

    "Entoarox Framework": {
      "ID": "Entoarox.EntoaroxFramework",
      "FormerIDs": "eacdb74b-4080-4452-b16b-93773cda5cf9", // changed in ???
      "~2.0.6 | UpdateKey": "Chucklefish:4228", // only enable update checks up to 2.0.6 by request (has its own update-check feature)
      "~2.0.6 | Status": "AssumeBroken" // broke in SMAPI 2.5 (error reflecting into SMAPI internals)
    },

    "Expanded Fridge": {
      "ID": "Uwazouri.ExpandedFridge",
      "Default | UpdateKey": "Nexus:1191"
    },

    "Experience Bars": {
      "ID": "spacechase0.ExperienceBars",
      "FormerIDs": "ExperienceBars", // changed in 1.0.2
      "Default | UpdateKey": "Nexus:509"
    },

    "Extended Bus System": {
      "ID": "ExtendedBusSystem",
      "Default | UpdateKey": "Chucklefish:4373"
    },

    "Extended Fridge": {
      "ID": "Crystalmir.ExtendedFridge",
      "FormerIDs": "Mystra007ExtendedFridge", // changed in 1.0.1
      "Default | UpdateKey": "Nexus:485"
    },

    "Extended Greenhouse": {
      "ID": "ExtendedGreenhouse",
      "Default | UpdateKey": "Chucklefish:4303",
      "~1.0.2  | Status": "AssumeBroken" // broke in SDV 1.2
    },

    "Extended Minecart": {
      "ID": "Entoarox.ExtendedMinecart",
      "FormerIDs": "{ID:'EntoaroxFurnitureAnywhere', Name:'Extended Minecart'}", // changed in 1.6.1
      "~1.7.1 | UpdateKey": "Chucklefish:4359" // only enable update checks up to 1.7.1 by request (has its own update-check feature)
    },

    "Extended Reach": {
      "ID": "spacechase0.ExtendedReach",
      "Default | UpdateKey": "Nexus:1493"
    },

    "Fall 28 Snow Day": {
      "ID": "Omegasis.Fall28SnowDay",
      "FormerIDs": "{ID:'7ad4f6f7-c3de-4729-a40f-7a11d2b2a358', Name:'Fall28 Snow Day'}", // changed in 1.4; disambiguate from other mods by Alpha_Omegasis
      "Default | UpdateKey": "Nexus:486", // added in 1.4.1
      "~1.4.1  | Status": "AssumeBroken" // broke in SMAPI 2.0, and update for SMAPI 2.0 doesn't do anything
    },

    "Farm Automation: Barn Door Automation": {
      "FormerIDs": "{EntryDll: 'FarmAutomation.BarnDoorAutomation.dll'}",
      "~1.0 | Status": "AssumeBroken" // broke in SMAPI 2.0
    },

    "Farm Automation: Item Collector": {
      "FormerIDs": "{EntryDll: 'FarmAutomation.ItemCollector.dll'}",
      "~1.0 | Status": "AssumeBroken" // broke in SDV 1.2
    },

    "Farm Automation Unofficial: Item Collector": {
      "ID": "Maddy99.FarmAutomation.ItemCollector",
      "~0.5 | Status": "AssumeBroken" // broke in SMAPI 2.0
    },

    "Farm Expansion": {
      "ID": "Advize.FarmExpansion",
      "FormerIDs": "3888bdfd-73f6-4776-8bb7-8ad45aea1915 | AdvizeFarmExpansionMod-2-0 | AdvizeFarmExpansionMod-2-0-5", // changed in 2.0, 2.0.5, and 3.0
      "Default | UpdateKey": "Nexus:130"
    },

    "Farm Resource Generator": {
      "FormerIDs": "{EntryDll: 'FarmResourceGenerator.dll'}",
      "Default | UpdateKey": "Nexus:647",
      "~1.0.4  | Status": "AssumeBroken" // broke in SMAPI 2.0
    },

    "Fast Animations": {
      "ID": "Pathoschild.FastAnimations",
      "Default | UpdateKey": "Nexus:1089",
      "~1.5    | Status": "AssumeBroken" // broke in SDV 1.3
    },

    "Faster Grass": {
      "ID": "IceGladiador.FasterGrass",
      "Default | UpdateKey": "Nexus:1772"
    },

    "Faster Paths": {
      "ID": "Entoarox.FasterPaths",
      "FormerIDs": "{ID:'821ce8f6-e629-41ad-9fde-03b54f68b0b6', Name:'Faster Paths'} | 615f85f8-5c89-44ee-aecc-c328f172e413", // changed in 1.2 and 1.3; disambiguate from Shop Expander
      "~1.3.3 | UpdateKey": "Chucklefish:3641" // only enable update checks up to 1.3.3 by request (has its own update-check feature)
    },

    "Faster Run": {
      "ID": "KathrynHazuka.FasterRun",
      "FormerIDs": "{EntryDll: 'FasterRun.dll'}", // changed in 1.1.1-pathoschild-update
      "Default | UpdateKey": "Nexus:733" // added in 1.1.1-pathoschild-update
    },

    "Fishing Adjust": {
      "ID": "shuaiz.FishingAdjustMod",
      "Default | UpdateKey": "Nexus:1350"
    },

    "Fishing Tuner Redux": {
      "ID": "HammurabiFishingTunerRedux",
      "Default | UpdateKey": "Chucklefish:4578"
    },

    "Fixed Secret Woods Debris": {
      "ID": "f4iTh.WoodsDebrisFix",
      "Default | UpdateKey": "Nexus:1941"
    },

    "FlorenceMod": {
      "FormerIDs": "{EntryDll: 'FlorenceMod.dll'}",
      "MapLocalVersions": { "1.0.1": "1.1" },
      "Default | UpdateKey": "Nexus:591",
      "~1.1    | Status": "AssumeBroken" // broke in SMAPI 2.0
    },

    "Flower Color Picker": {
      "ID": "spacechase0.FlowerColorPicker",
      "Default | UpdateKey": "Nexus:1229"
    },

    "Forage at the Farm": {
      "ID": "Nishtra.ForageAtTheFarm",
      "FormerIDs": "ForageAtTheFarm", // changed in <=1.6
      "Default | UpdateKey": "Nexus:673"
    },

    "Furniture Anywhere": {
      "ID": "Entoarox.FurnitureAnywhere",
      "FormerIDs": "{ID:'EntoaroxFurnitureAnywhere', Name:'Furniture Anywhere'}", // changed in 1.1; disambiguate from Extended Minecart
      "~1.1.5 | UpdateKey": "Chucklefish:4324" // only enable update checks up to 1.1.5 by request (has its own update-check feature)
    },

    "Game Reminder": {
      "ID": "mmanlapat.GameReminder",
      "Default | UpdateKey": "Nexus:1153"
    },

    "Gate Opener": {
      "ID": "mralbobo.GateOpener",
      "FormerIDs": "{EntryDll: 'GateOpener.dll'}", // changed in 1.1
      "Default | UpdateKey": "GitHub:mralbobo/stardew-gate-opener"
    },

    "GenericShopExtender": {
      "ID": "GenericShopExtender",
      "Default | UpdateKey": "Nexus:814" // added in 0.1.3
    },

    "Geode Info Menu": {
      "ID": "cat.geodeinfomenu",
      "Default | UpdateKey": "Nexus:1448"
    },

    "Get Dressed": {
      "ID": "Advize.GetDressed",
      "FormerIDs": "{EntryDll: 'GetDressed.dll'}", // changed in 3.3
      "Default | UpdateKey": "Nexus:331"
    },

    "Giant Crop Ring": {
      "ID": "cat.giantcropring",
      "Default | UpdateKey": "Nexus:1182"
    },

    "Gift Taste Helper": {
      "ID": "tstaples.GiftTasteHelper",
      "FormerIDs": "8008db57-fa67-4730-978e-34b37ef191d6", // changed in 2.5
      "Default | UpdateKey": "Nexus:229"
    },

    "Grandfather's Gift": {
      "ID": "ShadowDragon.GrandfathersGift",
      "Default | UpdateKey": "Nexus:985"
    },

    "Happy Animals": {
      "ID": "HappyAnimals",
      "~1.0.3 | Status": "AssumeBroken" // broke in SMAPI 2.0
    },

    "Happy Birthday (Omegasis)": {
      "ID": "Omegasis.HappyBirthday",
      "FormerIDs": "{ID:'HappyBirthday', Author:'Alpha_Omegasis'}", // changed in 1.4; disambiguate from Oxyligen's fork
      "Default | UpdateKey": "Nexus:520" // added in 1.4.1
    },

    "Happy Birthday (Oxyligen fork)": {
      "FormerIDs": "{ID:'HappyBirthday', Author:'Alpha_Omegasis/Oxyligen'}", // disambiguate from Oxyligen's fork
      "Default | UpdateKey": "Nexus:1064" // missing key reported: https://www.nexusmods.com/stardewvalley/mods/1064?tab=bugs
    },

    "Hardcore Mines": {
      "ID": "kibbe.hardcore_mines",
      "Default | UpdateKey": "Nexus:1674"
    },

    "Harp of Yoba Redux": {
      "ID": "Platonymous.HarpOfYobaRedux",
      "Default | UpdateKey": "Nexus:914" // added in 2.0.3
    },

    "Harvest Moon Witch Princess": {
      "ID": "Sasara.WitchPrincess",
      "Default | UpdateKey": "Nexus:1157"
    },

    "Harvest With Scythe": {
      "ID": "965169fd-e1ed-47d0-9f12-b104535fb4bc",
      "Default | UpdateKey": "Nexus:236"
    },

    "Horse Whistle (icepuente)": {
      "ID": "icepuente.HorseWhistle",
      "Default | UpdateKey": "Nexus:1131",
      "~1.1.2-unofficial.1-pathoschild | Status": "AssumeBroken" // causes significant lag, fixed in unofficial.2
    },

    "Hunger (Yyeadude)": {
      "ID": "HungerYyeadude",
      "Default | UpdateKey": "Nexus:613"
    },

    "Hunger for Food (Tigerle)": {
      "ID": "HungerForFoodByTigerle",
      "Default | UpdateKey": "Nexus:810",
      "~0.1.2  | Status": "AssumeBroken" // broke in SMAPI 2.0
    },

    "Hunger Mod (skn)": {
      "ID": "skn.HungerMod",
      "MapRemoteVersions": { "1.2.1": "1.0" }, // manifest not updated
      "Default | UpdateKey": "Nexus:1127"
    },

    "Idle Pause": {
      "ID": "Veleek.IdlePause",
      "MapRemoteVersions": { "1.2": "1.1" }, // manifest not updated
      "Default | UpdateKey": "Nexus:1092"
    },

    "Improved Quality of Life": {
      "ID": "Demiacle.ImprovedQualityOfLife",
      "Default | UpdateKey": "Nexus:1025",
      "~1.1    | Status": "AssumeBroken" // broke in SMAPI 2.0
    },

    "Instant Geode": {
      "ID": "InstantGeode",
      "~1.12 | Status": "AssumeBroken" // broke in SDV 1.2
    },

    "Instant Grow Trees": {
      "ID": "cantorsdust.InstantGrowTrees",
      "FormerIDs": "dc50c58b-c7d8-4e60-86cc-e27b5d95ee59 | community.InstantGrowTrees", // changed in 1.2 and 1.3.1
      "Default | UpdateKey": "Nexus:173"
    },

    "Interaction Helper": {
      "ID": "HammurabiInteractionHelper",
      "Default | UpdateKey": "Chucklefish:4640" // added in 1.0.4-pathoschild-update
    },

    "Item Auto Stacker": {
      "ID": "cat.autostacker",
      "MapRemoteVersions": { "1.0.1": "1.0" }, // manifest not updated
      "Default | UpdateKey": "Nexus:1184"
    },

    "Jiggly Junimo Bundles": {
      "ID": "Greger.JigglyJunimoBundles",
      "FormerIDs": "{EntryDll: 'JJB.dll'}", // changed in 1.1.2-pathoschild-update
      "Default | UpdateKey": "GitHub:gr3ger/Stardew_JJB" // added in 1.0.4-pathoschild-update
    },

    "Json Assets": {
      "ID": "spacechase0.JsonAssets",
      "Default | UpdateKey": "Nexus:1720"
    },

    "Junimo Farm": {
      "ID": "Platonymous.JunimoFarm",
      "MapRemoteVersions": { "1.1.2": "1.1.1" }, // manifest not updated
      "Default | UpdateKey": "Nexus:984" // added in 1.1.3
    },

    "Less Strict Over-Exertion (AntiExhaustion)": {
      "ID": "BALANCEMOD_AntiExhaustion",
      "MapLocalVersions": { "0.0": "1.1" },
      "Default | UpdateKey": "Nexus:637",
      "~1.1 | Status": "AssumeBroken" // broke in SMAPI 2.0
    },

    "Level Extender": {
      "ID": "Devin Lematty.Level Extender",
      "MapRemoteVersions": { "1.1": "1.0" }, // manifest not updated
      "Default | UpdateKey": "Nexus:1471"
    },

    "Level Up Notifications": {
      "ID": "Level Up Notifications",
      "MapRemoteVersions": { "0.0.1a": "0.0.1" },
      "Default | UpdateKey": "Nexus:855"
    },

    "Location and Music Logging": {
      "ID": "Brandy Lover.LMlog",
      "Default | UpdateKey": "Nexus:1366"
    },

    "Longevity": {
      "ID": "RTGOAT.Longevity",
      "MapRemoteVersions": { "1.6.8h": "1.6.8" },
      "Default | UpdateKey": "Nexus:649"
    },

    "Lookup Anything": {
      "ID": "Pathoschild.LookupAnything",
      "FormerIDs": "LookupAnything", // changed in 1.10.1
      "Default | UpdateKey": "Nexus:541",
      "~1.18.1 | Status": "AssumeBroken" // broke in SDV 1.3
    },

    "Love Bubbles": {
      "ID": "LoveBubbles",
      "Default | UpdateKey": "Nexus:1318"
    },

    "Loved Labels": {
      "ID": "Advize.LovedLabels",
      "FormerIDs": "{EntryDll: 'LovedLabels.dll'}", // changed in 2.1
      "Default | UpdateKey": "Nexus:279"
    },

    "Luck Skill": {
      "ID": "spacechase0.LuckSkill",
      "FormerIDs": "LuckSkill", // changed in 0.1.4
      "Default | UpdateKey": "Nexus:521"
    },

    "Magic": {
      "ID": "spacechase0.Magic",
      "MapRemoteVersions": { "0.1.2": "0.1.1" } // not updated in manifest
    },

    "Mail Framework": {
      "ID": "DIGUS.MailFrameworkMod",
      "Default | UpdateKey": "Nexus:1536"
    },

    "MailOrderPigs": {
      "ID": "jwdred.MailOrderPigs",
      "FormerIDs": "{EntryDll: 'MailOrderPigs.dll'}", // changed in 1.0.2
      "Default | UpdateKey": "Nexus:632"
    },

    "Makeshift Multiplayer": {
      "ID": "spacechase0.StardewValleyMP",
      "FormerIDs": "StardewValleyMP", // changed in 0.3
      "Default | UpdateKey": "Nexus:501"
    },

    "Map Image Exporter": {
      "ID": "spacechase0.MapImageExporter",
      "FormerIDs": "MapImageExporter", // changed in 1.0.2
      "Default | UpdateKey": "Nexus:1073"
    },

    "Message Box [API]? (ChatMod)": {
      "ID": "Kithio:ChatMod",
      "Default | UpdateKey": "Chucklefish:4296",
      "~1.0    | Status": "AssumeBroken" // broke in SMAPI 2.0
    },

    "Mining at the Farm": {
      "ID": "Nishtra.MiningAtTheFarm",
      "FormerIDs": "MiningAtTheFarm", // changed in <=1.7
      "Default | UpdateKey": "Nexus:674"
    },

    "Mining With Explosives": {
      "ID": "Nishtra.MiningWithExplosives",
      "FormerIDs": "MiningWithExplosives", // changed in 1.1
      "Default | UpdateKey": "Nexus:770"
    },

    "Modder Serialization Utility": {
      "ID": "SerializerUtils-0-1",
      "~ | Status": "Obsolete",
      "~ | StatusReasonPhrase": "it's no longer maintained or used."
    },

    "Monster Level Tip": {
      "ID": "WhiteMind.MonsterLT",
      "Default | UpdateKey": "Nexus:1896"
    },

    "More Animals": {
      "ID": "Entoarox.MoreAnimals",
      "FormerIDs": "821ce8f6-e629-41ad-9fde-03b54f68b0b6MOREPETS | Entoarox.MorePets", // changed in 1.3 and 2.0
      "~2.0.2 | UpdateKey": "Chucklefish:4288" // only enable update checks up to 2.0.2 by request (has its own update-check feature)
    },

    "More Artifact Spots": {
      "ID": "451",
      "Default | UpdateKey": "Nexus:451"
    },

    "More Map Layers": {
      "ID": "Platonymous.MoreMapLayers",
      "Default | UpdateKey": "Nexus:1134" // added in 1.1.1
    },

    "More Rain": {
      "ID": "Omegasis.MoreRain",
      "FormerIDs": "{ID:'4108e859-333c-4fec-a1a7-d2e18c1019fe', Name:'More_Rain'}", // changed in 1.5; disambiguate from other mods by Alpha_Omegasis
      "Default | UpdateKey": "Nexus:441", // added in 1.5.1
      "~1.4    | Status": "AssumeBroken" // broke in SMAPI 2.0
    },

    "More Weapons": {
      "ID": "Joco80.MoreWeapons",
      "Default | UpdateKey": "Nexus:1168"
    },

    "Move Faster": {
      "ID": "shuaiz.MoveFasterMod",
      "Default | UpdateKey": "Nexus:1351",
      "1.0.1   | Status": "AssumeBroken" // doesn't do anything as of SDV 1.2.33 (bad Harmony patch?)
    },

    "Multiple Sprites and Portraits On Rotation (File Loading)": {
      "ID": "FileLoading",
      "MapLocalVersions": { "1.1": "1.12" },
      "Default | UpdateKey": "Nexus:1094",
      "~1.12   | Status": "AssumeBroken" // broke in SMAPI 2.0
    },

    "Museum Rearranger": {
      "ID": "Omegasis.MuseumRearranger",
      "FormerIDs": "{ID:'7ad4f6f7-c3de-4729-a40f-7a11d2b2a358', Name:'Museum Rearranger'}", // changed in 1.4; disambiguate from other mods by Alpha_Omegasis
      "Default | UpdateKey": "Nexus:428" // added in 1.4.1
    },

    "Mushroom Level Tip": {
      "ID": "WhiteMind.MLT",
      "Default | UpdateKey": "Nexus:1894"
    },

    "New Machines": {
      "ID": "F70D4FAB-0AB2-4B78-9F1B-AF2CA2236A59",
      "Default   | UpdateKey": "Chucklefish:3683",
      "~4.2.1343 | Status": "AssumeBroken" // broke in SMAPI 2.0
    },

    "Night Owl": {
      "ID": "Omegasis.NightOwl",
      "FormerIDs": "{ID:'SaveAnywhere', Name:'Stardew_NightOwl'}", // changed in 1.4; disambiguate from Save Anywhere
      "MapLocalVersions": { "2.1": "1.3" }, // 1.3 had wrong version in manifest
      "Default | UpdateKey": "Nexus:433" // added in 1.4.1
    },

    "No Crows": {
      "ID": "cat.nocrows",
      "Default | UpdateKey": "Nexus:1682"
    },

    "No Kids Ever": {
      "ID": "Hangy.NoKidsEver",
      "Default | UpdateKey": "Nexus:1464"
    },

    "No Debug Mode": {
      "ID": "NoDebugMode",
      "~ | Status": "Obsolete",
      "~ | StatusReasonPhrase": "debug mode was removed in SMAPI 1.0."
    },

    "No Fence Decay": {
      "ID": "cat.nofencedecay",
      "Default | UpdateKey": "Nexus:1180"
    },

    "No More Pets": {
      "ID": "Omegasis.NoMorePets",
      "FormerIDs": "NoMorePets", // changed in 1.4
      "Default | UpdateKey": "Nexus:506" // added in 1.4.1
    },

    "No Rumble Horse": {
      "ID": "Xangria.NoRumbleHorse",
      "Default | UpdateKey": "Nexus:1779"
    },

    "No Soil Decay": {
      "ID": "289dee03-5f38-4d8e-8ffc-e440198e8610",
      "Default | UpdateKey": "Nexus:237",
      "~0.5    | Status": "AssumeBroken" // broke in SDV 1.2 and uses Assembly.GetExecutingAssembly().Location
    },

    "No Soil Decay Redux": {
      "ID": "Platonymous.NoSoilDecayRedux",
      "Default | UpdateKey": "Nexus:1084" // added in 1.1.9
    },

    "NPC Map Locations": {
      "ID": "NPCMapLocationsMod",
      "Default   | UpdateKey": "Nexus:239"
    },

    "NPC Speak": {
      "FormerIDs": "{EntryDll: 'NpcEcho.dll'}",
      "Default | UpdateKey": "Nexus:694",
      "~1.0    | Status": "AssumeBroken" // broke in SMAPI 2.0
    },

    "Object Time Left": {
      "ID": "spacechase0.ObjectTimeLeft",
      "Default | UpdateKey": "Nexus:1315"
    },

    "OmniFarm": {
      "ID": "PhthaloBlue.OmniFarm",
      "FormerIDs": "BlueMod_OmniFarm", // changed in 2.0.2-pathoschild-update
      "Default | UpdateKey": "GitHub:lambui/StardewValleyMod_OmniFarm"
    },

    "One Click Shed": {
      "ID":  "BitwiseJonMods.OneClickShedReloader",
      "Default | UpdateKey": "Nexus:2052"
    },

    "Out of Season Bonuses (Seasonal Items)": {
      "ID": "midoriarmstrong.seasonalitems",
      "Default | UpdateKey": "Nexus:1452"
    },

    "Part of the Community": {
      "ID": "SB_PotC",
      "Default | UpdateKey": "Nexus:923"
    },

    "PelicanFiber": {
      "ID": "jwdred.PelicanFiber",
      "FormerIDs": "{EntryDll: 'PelicanFiber.dll'}", // changed in 3.0.1
      "Default | UpdateKey": "Nexus:631"
    },

    "PelicanTTS": {
      "ID": "Platonymous.PelicanTTS",
      "Default | UpdateKey": "Nexus:1079" // added in 1.6.1
    },

    "Persia the Mermaid - Standalone Custom NPC": {
      "ID": "63b9f419-7449-42db-ab2e-440b4d05c073",
      "Default | UpdateKey": "Nexus:1419"
    },

    "Persistent Game Options": {
      "ID": "Xangria.PersistentGameOptions",
      "Default | UpdateKey": "Nexus:1778"
    },

    "Persival's BundleMod": {
      "FormerIDs": "{EntryDll: 'BundleMod.dll'}",
      "Default | UpdateKey": "Nexus:438",
      "~1.0    | Status": "AssumeBroken" // broke in SDV 1.1
    },

    "Plant on Grass": {
      "ID": "Demiacle.PlantOnGrass",
      "Default | UpdateKey": "Nexus:1026"
    },

    "PyTK - Platonymous Toolkit": {
      "ID": "Platonymous.Toolkit",
      "Default | UpdateKey": "Nexus:1726"
    },

    "Point-and-Plant": {
      "ID": "jwdred.PointAndPlant",
      "FormerIDs": "{EntryDll: 'PointAndPlant.dll'}", // changed in 1.0.3
      "Default | UpdateKey": "Nexus:572",
      "MapRemoteVersions": { "1.0.3": "1.0.2" } // manifest not updated
    },

    "Pony Weight Loss Program": {
      "ID": "BadNetCode.PonyWeightLossProgram",
      "Default | UpdateKey": "Nexus:1232"
    },

    "Portraiture": {
      "ID": "Platonymous.Portraiture",
      "Default | UpdateKey": "Nexus:999" // added in 1.3.1
    },

    "Prairie King Made Easy": {
      "ID": "Mucchan.PrairieKingMadeEasy",
      "FormerIDs": "{EntryDll: 'PrairieKingMadeEasy.dll'}", // changed in 1.0.1
      "Default | UpdateKey": "Chucklefish:3594",
      "~1.0    | Status": "AssumeBroken" // broke in SDV 1.2
    },

    "Purchasable Recipes": {
      "ID": "Paracosm.PurchasableRecipes",
      "Default | UpdateKey": "Nexus:1722"
    },

    "Quest Delay": {
      "ID": "BadNetCode.QuestDelay",
      "Default | UpdateKey": "Nexus:1239"
    },

    "Rain Randomizer": {
      "FormerIDs": "{EntryDll: 'RainRandomizer.dll'}",
      "~1.0.3 | Status": "AssumeBroken" // broke in SMAPI 2.0
    },

    "Recatch Legendary Fish": {
      "ID": "cantorsdust.RecatchLegendaryFish",
      "FormerIDs": "b3af8c31-48f0-43cf-8343-3eb08bcfa1f9 | community.RecatchLegendaryFish", // changed in 1.3 and 1.5.1
      "Default | UpdateKey": "Nexus:172"
    },

    "Regeneration": {
      "ID": "HammurabiRegeneration",
      "Default | UpdateKey": "Chucklefish:4584"
    },

    "Relationship Bar UI": {
      "ID": "RelationshipBar",
      "Default | UpdateKey": "Nexus:1009"
    },

    "RelationshipsEnhanced": {
      "ID": "relationshipsenhanced",
      "Default | UpdateKey": "Chucklefish:4435",
      "~1.0    | Status": "AssumeBroken" // broke in SMAPI 2.0
    },

    "Relationship Status": {
      "ID": "relationshipstatus",
      "MapRemoteVersions": { "1.0.5": "1.0.4" }, // not updated in manifest
      "Default | UpdateKey": "Nexus:751",
      "~1.0.5  | Status": "AssumeBroken" // broke in SMAPI 2.0
    },

    "Rented Tools": {
      "ID": "JarvieK.RentedTools",
      "Default | UpdateKey": "Nexus:1307"
    },

    "Replanter": {
      "ID": "jwdred.Replanter",
      "FormerIDs": "{EntryDll: 'Replanter.dll'}", // changed in 1.0.5
      "Default | UpdateKey": "Nexus:589"
    },

    "ReRegeneration": {
      "ID": "lrsk_sdvm_rerg.0925160827",
      "MapLocalVersions": { "1.1.2-release": "1.1.2" },
      "Default | UpdateKey": "Chucklefish:4465"
    },

    "Reseed": {
      "ID": "Roc.Reseed",
      "Default | UpdateKey": "Nexus:887"
    },

    "Reusable Wallpapers and Floors (Wallpaper Retain)": {
      "ID": "dae1b553-2e39-43e7-8400-c7c5c836134b",
      "Default | UpdateKey": "Nexus:356",
      "~1.5    | Status": "AssumeBroken" // broke in SMAPI 2.0
    },

    "Ring of Fire": {
      "ID": "Platonymous.RingOfFire",
      "Default | UpdateKey": "Nexus:1166" // added in 1.0.1
    },

    "Rise and Shine": {
      "ID": "Yoshify.RiseAndShine",
      "FormerIDs": "{EntryDll: 'RiseAndShine.dll'}", // changed in 1.1.1-whisk-update
      "Default | UpdateKey": "Nexus:3"
    },

    "Rope Bridge": {
      "ID": "RopeBridge",
      "Default | UpdateKey": "Nexus:824"
    },

    "Rotate Toolbar": {
      "ID": "Pathoschild.RotateToolbar",
      "Default | UpdateKey": "Nexus:1100",
      "~1.2.1  | Status": "AssumeBroken" // broke in SDV 1.3
    },

    "Rush Orders": {
      "ID": "spacechase0.RushOrders",
      "FormerIDs": "RushOrders", // changed in 1.1
      "Default | UpdateKey": "Nexus:605"
    },

    "Save Anywhere": {
      "ID": "Omegasis.SaveAnywhere",
      "FormerIDs": "{ID:'SaveAnywhere', Name:'Save Anywhere'}", // changed in 2.5; disambiguate from Night Owl
      "Default | UpdateKey": "Nexus:444", // added in 2.6.1
      "MapRemoteVersions": { "2.6.2": "2.6.1" } // not updated in manifest
    },

    "Save Backup": {
      "ID": "Omegasis.SaveBackup",
      "FormerIDs": "{ID:'4be88c18-b6f3-49b0-ba96-f94b1a5be890', Name:'Stardew_Save_Backup'}", // changed in 1.3; disambiguate from other Alpha_Omegasis mods
      "Default | UpdateKey": "Nexus:435", // added in 1.3.1
      "~1.2    | Status": "AssumeBroken" // broke in SMAPI 2.0
    },

    "Scroll to Blank": {
      "ID": "caraxian.scroll.to.blank",
      "Default | UpdateKey": "Chucklefish:4405"
    },

    "Scythe Harvesting": {
      "ID": "mmanlapat.ScytheHarvesting",
      "FormerIDs": "ScytheHarvesting", // changed in 1.6
      "Default | UpdateKey": "Nexus:1106"
    },

    "SDV Twitch": {
      "ID": "MTD.SDVTwitch",
      "Default | UpdateKey": "Nexus:1760"
    },

    "Seasonal Immersion": {
      "ID": "Entoarox.SeasonalImmersion",
      "FormerIDs": "EntoaroxSeasonalHouse | EntoaroxSeasonalBuildings | EntoaroxSeasonalImmersion", // changed in 1.1, 1.6 or earlier, and 1.7
      "~1.11  | UpdateKey": "Chucklefish:4262" // only enable update checks up to 1.11 by request (has its own update-check feature)
    },

    "Seed Bag": {
      "ID": "Platonymous.SeedBag",
      "Default | UpdateKey": "Nexus:1133" // added in 1.1.2
    },

    "Seed Catalogue": {
      "ID": "spacechase0.SeedCatalogue",
      "Default | UpdateKey": "Nexus:1640"
    },

    "Self Service": {
      "ID": "JarvieK.SelfService",
      "MapRemoteVersions": { "0.2.1": "0.2" }, // manifest not updated
      "Default | UpdateKey": "Nexus:1304"
    },

    "Send Items": {
      "ID": "Denifia.SendItems",
      "Default | UpdateKey": "Nexus:1087" // added in 1.0.3 (2017-10-04)
    },

    "Shed Notifications (BuildingsNotifications)": {
      "ID": "TheCroak.BuildingsNotifications",
      "Default | UpdateKey": "Nexus:620",
      "~0.4.1  | Status": "AssumeBroken" // broke in SMAPI 2.0
    },

    "Shenandoah Project": {
      "ID": "Nishtra.ShenandoahProject",
      "FormerIDs": "Shenandoah Project", // changed in 1.2
      "MapRemoteVersions": { "1.1.1": "1.1" }, // not updated in manifest
      "Default | UpdateKey": "Nexus:756"
    },

    "Ship Anywhere": {
      "ID": "spacechase0.ShipAnywhere",
      "Default | UpdateKey": "Nexus:1379"
    },

    "Shipment Tracker": {
      "ID": "7e474181-e1a0-40f9-9c11-d08a3dcefaf3",
      "Default | UpdateKey": "Nexus:321"
    },

    "Shop Expander": {
      "ID": "Entoarox.ShopExpander",
      "FormerIDs": "{ID:'821ce8f6-e629-41ad-9fde-03b54f68b0b6', Name:'Shop Expander'} | EntoaroxShopExpander", // changed in 1.5 and 1.5.2; disambiguate from Faster Paths
      "MapRemoteVersions": { "1.6.0b": "1.6.0" },
      "~1.6   | UpdateKey": "Chucklefish:4381" // only enable update checks up to 1.6 by request (has its own update-check feature)
    },

    "Showcase Mod": {
      "ID": "Igorious.Showcase",
      "MapLocalVersions": { "0.9-500": "0.9" },
      "Default | UpdateKey": "Chucklefish:4487",
      "~0.9    | Status": "AssumeBroken" // broke in SMAPI 2.0
    },

    "Shroom Spotter": {
      "ID": "TehPers.ShroomSpotter",
      "Default | UpdateKey": "Nexus:908"
    },

    "Simple Crop Label": {
      "ID": "SimpleCropLabel",
      "Default | UpdateKey": "Nexus:314"
    },

    "Simple Sound Manager": {
      "ID": "Omegasis.SimpleSoundManager",
      "Default | UpdateKey": "Nexus:1410" // added in 1.0.1
    },

    "Simple Sprinklers": {
      "ID": "tZed.SimpleSprinkler",
      "FormerIDs": "{EntryDll: 'SimpleSprinkler.dll'}", // changed in 1.5
      "Default | UpdateKey": "Nexus:76"
    },

    "Siv's Marriage Mod": {
      "ID": "6266959802",
      "MapLocalVersions": { "0.0": "1.4" },
      "Default | UpdateKey": "Nexus:366"
    },

    "Skill Prestige": {
      "ID": "alphablackwolf.skillPrestige",
      "FormerIDs": "6b843e60-c8fc-4a25-a67b-4a38ac8dcf9b", // changed circa 1.2.3
      "Default | UpdateKey": "Nexus:569"
    },

    "Skill Prestige: Cooking Adapter": {
      "ID": "Alphablackwolf.CookingSkillPrestigeAdapter",
      "FormerIDs": "20d6b8a3-b6e7-460b-a6e4-07c2b0cb6c63", // changed circa 1.1
      "MapRemoteVersions": { "1.2.3": "1.1" }, // manifest not updated
      "Default | UpdateKey": "Nexus:569"
    },

    "Skip Intro": {
      "ID": "Pathoschild.SkipIntro",
      "FormerIDs": "SkipIntro", // changed in 1.4
      "Default | UpdateKey": "Nexus:533",
      "~1.7.2  | Status": "AssumeBroken" // broke in SDV 1.3
    },

    "Skull Cavern Elevator": {
      "ID": "SkullCavernElevator",
      "Default | UpdateKey": "Nexus:963"
    },

    "Skull Cave Saver": {
      "ID": "cantorsdust.SkullCaveSaver",
      "FormerIDs": "8ac06349-26f7-4394-806c-95d48fd35774 | community.SkullCaveSaver", // changed in 1.1 and 1.2.2
      "Default | UpdateKey": "Nexus:175"
    },

    "Sleepy Eye": {
      "ID": "spacechase0.SleepyEye",
      "Default | UpdateKey": "Nexus:1152"
    },

    "Slower Fence Decay": {
      "ID": "Speeder.SlowerFenceDecay",
      "FormerIDs": "SPDSlowFenceDecay", // changed in 0.5.2-pathoschild-update
      "Default | UpdateKey": "Nexus:252",
      "~0.5.1  | Status": "AssumeBroken" // broke in SMAPI 2.0
    },

    "Smart Mod": {
      "ID": "KuroBear.SmartMod",
      "~2.2 | Status": "AssumeBroken" // broke in SMAPI 2.0
    },

    "Solar Eclipse Event": {
      "ID": "KoihimeNakamura.SolarEclipseEvent",
      "Default | UpdateKey": "Nexus:897",
      "MapLocalVersions": { "1.3.1-20180131": "1.3.1" }
    },

    "SpaceCore": {
      "ID": "spacechase0.SpaceCore",
      "Default | UpdateKey": "Nexus:1348"
    },

    "Speedster": {
      "ID": "Platonymous.Speedster",
      "Default | UpdateKey": "Nexus:1102" // added in 1.3.1
    },

    "Sprinkler Range": {
      "ID": "cat.sprinklerrange",
      "Default | UpdateKey": "Nexus:1179"
    },

    "Sprinkles": {
      "ID": "Platonymous.Sprinkles",
      "Default | UpdateKey": "Chucklefish:4592"
    },

    "Sprint and Dash": {
      "ID": "SPDSprintAndDash",
      "Default | UpdateKey": "Chucklefish:3531",
      "~1.0    | Status": "AssumeBroken" // broke in SDV 1.2
    },

    "Sprint and Dash Redux": {
      "ID": "littleraskol.SprintAndDashRedux",
      "FormerIDs": "lrsk_sdvm_sndr.0921161059", // changed in 1.3
      "Default | UpdateKey": "Chucklefish:4201"
    },

    "Sprinting Mod": {
      "FormerIDs": "{EntryDll: 'SprintingMod.dll', Author: 'Patrick'}",
      "MapLocalVersions": { "2.0": "3.0" }, // not updated in manifest
      "Default | UpdateKey": "GitHub:oliverpl/SprintingMod",
      "~2.1    | Status": "AssumeBroken" // broke in SDV 1.2
    },

    "StackSplitX": {
      "ID": "tstaples.StackSplitX",
      "FormerIDs": "{EntryDll: 'StackSplitX.dll'}", // changed circa 1.3.1
      "Default | UpdateKey": "Nexus:798"
    },

    "StaminaRegen": {
      "FormerIDs": "{EntryDll: 'StaminaRegen.dll'}",
      "~1.0.3 | Status": "AssumeBroken" // broke in SMAPI 2.0
    },

    "Stardew Config Menu": {
      "ID": "Juice805.StardewConfigMenu",
      "Default | UpdateKey": "Nexus:1312"
    },

    "Stardew Content Compatibility Layer (SCCL)": {
      "ID": "SCCL",
      "Default | UpdateKey": "Nexus:889",
      "~0.1    | Status": "AssumeBroken" // broke in SDV 1.2
    },

    "Stardew Editor Game Integration": {
      "ID": "spacechase0.StardewEditor.GameIntegration",
      "Default | UpdateKey": "Nexus:1298"
    },

    "Stardew Notification": {
      "ID": "stardewnotification",
      "Default | UpdateKey": "GitHub:monopandora/StardewNotification"
    },

    "Stardew Symphony": {
      "ID": "Omegasis.StardewSymphony",
      "FormerIDs": "{ID:'4108e859-333c-4fec-a1a7-d2e18c1019fe', Name:'Stardew_Symphony'}", // changed in 1.4; disambiguate other mods by Alpha_Omegasis
      "Default | UpdateKey": "Nexus:425" // added in 1.4.1
    },

    "StarDustCore": {
      "ID": "StarDustCore",
      "~ | Status": "Obsolete",
      "~ | StatusReasonPhrase": "it was only used by earlier versions of Save Anywhere, and is no longer used or maintained."
    },

    "Starting Money": {
      "ID": "mmanlapat.StartingMoney",
      "FormerIDs": "StartingMoney", // changed in 1.1
      "Default | UpdateKey": "Nexus:1138"
    },

    "StashItemsToChest": {
      "ID": "BlueMod_StashItemsToChest",
      "Default | UpdateKey": "GitHub:lambui/StardewValleyMod_StashItemsToChest",
      "~1.0.1  | Status": "AssumeBroken" // broke in SMAPI 2.0
    },

    "Stephan's Lots of Crops": {
      "ID": "stephansstardewcrops",
      "MapRemoteVersions": { "1.41": "1.1" }, // manifest not updated
      "Default | UpdateKey": "Chucklefish:4314"
    },

    "Stone Bridge Over Pond (PondWithBridge)": {
      "FormerIDs": "{EntryDll: 'PondWithBridge.dll'}",
      "MapLocalVersions": { "0.0": "1.0" },
      "Default | UpdateKey": "Nexus:316",
      "~1.0    | Status": "AssumeBroken" // broke in SMAPI 2.0
    },

    "Stumps to Hardwood Stumps": {
      "ID": "StumpsToHardwoodStumps",
      "Default | UpdateKey": "Nexus:691"
    },

    "Summit Reborn": {
      "ID": "KoihimeNakamura.summitreborn",
      "FormerIDs": "emissaryofinfinity.summitreborn", // changed in 1.0.2
      "~1.0.2 | Status": "AssumeBroken" // broke in SDV 1.3 (runtime errors)
    },

    "Super Greenhouse Warp Modifier": {
      "ID": "SuperGreenhouse",
      "Default | UpdateKey": "Chucklefish:4334",
      "~1.0    | Status": "AssumeBroken" // broke in SMAPI 2.0
    },

    "Swim Almost Anywhere / Swim Suit": {
      "ID": "Platonymous.SwimSuit",
      "Default | UpdateKey": "Nexus:1215" // added in 0.5.1
    },

    "Tainted Cellar": {
      "ID": "TaintedCellar",
      "FormerIDs": "{EntryDll: 'TaintedCellar.dll'}" // changed in 1.1
    },

    "Tapper Ready": {
      "ID": "skunkkk.TapperReady",
      "Default | UpdateKey": "Nexus:1219"
    },

    "Teh's Fishing Overhaul": {
      "ID": "TehPers.FishingOverhaul",
      "Default | UpdateKey": "Nexus:866"
    },

    "Teleporter": {
      "ID": "Teleporter",
      "Default | UpdateKey": "Chucklefish:4374",
      "~1.0.2  | Status": "AssumeBroken" // broke in SDV 1.2
    },

    "The Long Night": {
      "ID": "Pathoschild.TheLongNight",
      "Default | UpdateKey": "Nexus:1369",
      "~1.1.1  | Status": "AssumeBroken" // broke in SDV 1.3
    },

    "Three-heart Dance Partner": {
      "ID": "ThreeHeartDancePartner",
      "Default | UpdateKey": "Nexus:500"
    },

    "TimeFreeze": {
      "ID": "Omegasis.TimeFreeze",
      "FormerIDs": "4108e859-333c-4fec-a1a7-d2e18c1019fe", // changed in 1.2
      "Default | UpdateKey": "Nexus:973" // added in 1.2.1
    },

    "Time Reminder": {
      "ID": "KoihimeNakamura.TimeReminder",
      "MapLocalVersions": { "1.0-20170314": "1.0.2" },
      "Default | UpdateKey": "Nexus:1000"
    },

    "TimeSpeed": {
      "ID": "cantorsdust.TimeSpeed",
      "FormerIDs": "{EntryDll: 'TimeSpeed.dll'} | {ID:'4108e859-333c-4fec-a1a7-d2e18c1019fe', Name:'TimeSpeed'} | {ID:'4108e859-333c-4fec-a1a7-d2e18c1019fe', Name:'TimeSpeed Mod (unofficial)'} | community.TimeSpeed", // changed in 2.0.3, 2.1, and 2.3.3; disambiguate other mods by Alpha_Omegasis
      "Default | UpdateKey": "Nexus:169"
    },

    "To Do List": {
      "ID": "eleanor.todolist",
      "Default | UpdateKey": "Nexus:1630"
    },

    "Tool Charging": {
      "ID": "mralbobo.ToolCharging",
      "Default | UpdateKey": "GitHub:mralbobo/stardew-tool-charging"
    },

    "TractorMod": {
      "ID": "Pathoschild.TractorMod",
      "FormerIDs": "BlueMod_TractorMod | PhthaloBlue.TractorMod | community.TractorMod", // changed in 3.2, 4.0 beta, and 4.0
      "Default | UpdateKey": "Nexus:1401",
      "~4.4.1  | Status": "AssumeBroken" // broke in SDV 1.3
    },

    "TrainerMod": {
      "ID": "SMAPI.TrainerMod",
      "~ | Status": "Obsolete",
      "~ | StatusReasonPhrase": "replaced by ConsoleCommands, which is added by the SMAPI installer."
    },

    "Tree Transplant": {
      "ID": "TreeTransplant",
      "Default | UpdateKey": "Nexus:1342"
    },

    "UI Info Suite": {
      "ID": "Cdaragorn.UiInfoSuite",
      "Default | UpdateKey": "Nexus:1150"
    },

    "UiModSuite": {
      "ID": "Demiacle.UiModSuite",
      "MapLocalVersions": { "0.5": "1.0" }, // not updated in manifest
      "Default | UpdateKey": "Nexus:1023",
      "~1.0    | Status": "AssumeBroken" // broke in SDV 1.2
    },

    "Variable Grass": {
      "ID": "dantheman999.VariableGrass",
      "Default | UpdateKey": "GitHub:dantheman999301/StardewMods"
    },

    "Vertical Toolbar": {
      "ID": "SB_VerticalToolMenu",
      "Default | UpdateKey": "Nexus:943"
    },

    "WakeUp": {
      "FormerIDs": "{EntryDll: 'WakeUp.dll'}",
      "~1.0.2 | Status": "AssumeBroken" // broke in SMAPI 2.0
    },

    "Wallpaper Fix": {
      "FormerIDs": "{EntryDll: 'WallpaperFix.dll'}",
      "Default | UpdateKey": "Chucklefish:4211",
      "~1.1    | Status": "AssumeBroken" // broke in SMAPI 2.0
    },

    "WarpAnimals": {
      "ID": "Symen.WarpAnimals",
      "Default | UpdateKey": "Nexus:1400"
    },

    "Weather Controller": {
      "FormerIDs": "{EntryDll: 'WeatherController.dll'}",
      "~1.0.2 | Status": "AssumeBroken" // broke in SDV 1.2
    },

    "What Farm Cave / WhatAMush": {
      "ID": "WhatAMush",
      "Default | UpdateKey": "Nexus:1097"
    },

    "WHats Up": {
      "ID": "wHatsUp",
      "Default | UpdateKey": "Nexus:1082"
    },

    "Winter Grass": {
      "ID": "cat.wintergrass",
      "Default | UpdateKey": "Nexus:1601"
    },

    "Wonderful Farm Life": {
      "FormerIDs": "{EntryDll: 'WonderfulFarmLife.dll'}"
    },

    "XmlSerializerRetool": {
      "FormerIDs": "{EntryDll: 'XmlSerializerRetool.dll'}",
      "~ | Status": "Obsolete",
      "~ | StatusReasonPhrase": "it's no longer maintained or used."
    },

    "Xnb Loader": {
      "ID": "Entoarox.XnbLoader",
      "~1.1.10 | UpdateKey": "Chucklefish:4506" // only enable update checks up to 1.1.10 by request (has its own update-check feature)
    },

    "zDailyIncrease": {
      "ID": "zdailyincrease",
      "MapRemoteVersions": { "1.3.5": "1.3.4" }, // not updated in manifest
      "Default | UpdateKey": "Chucklefish:4247"
    },

    "Zoom Out Extreme": {
      "ID": "RockinMods.ZoomMod",
      "FormerIDs": "ZoomMod", // changed circa 1.2.1
      "Default | UpdateKey": "Nexus:1326",
      "~0.1    | Status": "AssumeBroken" // broke in SDV 1.2
    },

    "Zoryn's Better RNG": {
      "ID": "Zoryn.BetterRNG",
      "FormerIDs": "76b6d1e1-f7ba-4d72-8c32-5a1e6d2716f6", // changed in 1.6
      "Default | UpdateKey": "GitHub:Zoryn4163/SMAPI-Mods",
      "~1.6    | Status": "AssumeBroken" // broke in SDV 1.2
    },

    "Zoryn's Calendar Anywhere": {
      "ID": "Zoryn.CalendarAnywhere",
      "FormerIDs": "a41c01cd-0437-43eb-944f-78cb5a53002a", // changed in 1.6
      "Default | UpdateKey": "GitHub:Zoryn4163/SMAPI-Mods",
      "~1.6    | Status": "AssumeBroken" // broke in SDV 1.2
    },

    "Zoryn's Durable Fences": {
      "ID": "Zoryn.DurableFences",
      "FormerIDs": "56d3439c-7b9b-497e-9496-0c4890e8a00e", // changed in 1.6
      "Default | UpdateKey": "GitHub:Zoryn4163/SMAPI-Mods"
    },

    "Zoryn's Health Bars": {
      "ID": "Zoryn.HealthBars",
      "FormerIDs": "{EntryDll: 'HealthBars.dll'}", // changed in 1.6
      "Default | UpdateKey": "GitHub:Zoryn4163/SMAPI-Mods",
      "~1.6    | Status": "AssumeBroken" // broke in SDV 1.2
    },

    "Zoryn's Fishing Mod": {
      "ID": "Zoryn.FishingMod",
      "FormerIDs": "fa277b1f-265e-47c3-a84f-cd320cc74949", // changed in 1.6
      "Default | UpdateKey": "GitHub:Zoryn4163/SMAPI-Mods"
    },

    "Zoryn's Junimo Deposit Anywhere": {
      "ID": "Zoryn.JunimoDepositAnywhere",
      "FormerIDs": "f93a4fe8-cade-4146-9335-b5f82fbbf7bc", // changed in 1.6
      "Default | UpdateKey": "GitHub:Zoryn4163/SMAPI-Mods",
      "~1.7    | Status": "AssumeBroken" // broke in SDV 1.2
    },

    "Zoryn's Movement Mod": {
      "ID": "Zoryn.MovementModifier",
      "FormerIDs": "8a632929-8335-484f-87dd-c29d2ba3215d", // changed in 1.6
      "Default | UpdateKey": "GitHub:Zoryn4163/SMAPI-Mods"
    },

    "Zoryn's Regen Mod": {
      "ID": "Zoryn.RegenMod",
      "FormerIDs": "dfac4383-1b6b-4f33-ae4e-37fc23e5252e", // changed in 1.6
      "Default | UpdateKey": "GitHub:Zoryn4163/SMAPI-Mods",
      "~1.6    | Status": "AssumeBroken" // broke in SDV 1.2
    }
  }
}