using System;
namespace StardewModdingAPI.Toolkit.Framework.ModData
{
/// Indicates a detected non-error mod issue.
[Flags]
public enum ModWarning
{
/// No issues detected.
None = 0,
/// SMAPI detected incompatible code in the mod, but was configured to load it anyway.
BrokenCodeLoaded = 1,
/// The mod affects the save serializer in a way that may make saves unloadable without the mod.
ChangesSaveSerializer = 2,
/// The mod patches the game in a way that may impact stability.
PatchesGame = 4,
#if SMAPI_FOR_WINDOWS
/// The mod uses the dynamic keyword which won't work on Linux/macOS.
[Obsolete("This value is no longer used by SMAPI and will be removed in the upcoming SMAPI 4.0.0.")]
UsesDynamic = 8,
#endif
/// The mod references specialized 'unvalidated update tick' events which may impact stability.
UsesUnvalidatedUpdateTick = 16,
/// The mod has no update keys set.
NoUpdateKeys = 32,
/// Uses .NET APIs for reading and writing to the console.
AccessesConsole = 64,
/// Uses .NET APIs for filesystem access.
AccessesFilesystem = 128,
/// Uses .NET APIs for shell or process access.
AccessesShell = 256,
#if SMAPI_DEPRECATED
/// References the legacy System.Configuration.ConfigurationManager assembly and doesn't include a copy in the mod folder, so it'll break in SMAPI 4.0.0.
DetectedLegacyConfigurationDll = 512,
/// References the legacy System.Runtime.Caching assembly and doesn't include a copy in the mod folder, so it'll break in SMAPI 4.0.0.
DetectedLegacyCachingDll = 1024,
/// References the legacy System.Security.Permissions assembly and doesn't include a copy in the mod folder, so it'll break in SMAPI 4.0.0.
DetectedLegacyPermissionsDll = 2048
#endif
}
}