using System;
using System.Collections.Generic;
using Newtonsoft.Json;
using StardewModdingAPI.Framework.Serialisation;
namespace StardewModdingAPI.Framework.Models
{
/// A manifest which describes a mod for SMAPI.
internal class Manifest : IManifest
{
/*********
** Accessors
*********/
/// The mod name.
public string Name { get; set; }
/// A brief description of the mod.
public string Description { get; set; }
/// The mod author's name.
public string Author { get; set; }
/// The mod version.
[JsonConverter(typeof(ManifestFieldConverter))]
public ISemanticVersion Version { get; set; }
/// The minimum SMAPI version required by this mod, if any.
[JsonConverter(typeof(ManifestFieldConverter))]
public ISemanticVersion MinimumApiVersion { get; set; }
/// The name of the DLL in the directory that has the method.
public string EntryDll { get; set; }
/// The other mods that must be loaded before this mod.
[JsonConverter(typeof(ManifestFieldConverter))]
public IManifestDependency[] Dependencies { get; set; }
/// The unique mod ID.
public string UniqueID { get; set; }
/// Whether the mod uses per-save config files.
[Obsolete("Use " + nameof(Mod) + "." + nameof(Mod.Helper) + "." + nameof(IModHelper.ReadConfig) + " instead")]
public bool PerSaveConfigs { get; set; }
/// Any manifest fields which didn't match a valid field.
[JsonExtensionData]
public IDictionary ExtraFields { get; set; }
}
}