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(SFieldConverter))]
public ISemanticVersion Version { get; set; }
/// The minimum SMAPI version required by this mod, if any.
[JsonConverter(typeof(SFieldConverter))]
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(SFieldConverter))]
public IManifestDependency[] Dependencies { get; set; }
/// The mod's unique ID in Nexus Mods (if any), used for update checks.
public string NexusID { get; set; }
/// The mod's organisation and project name on GitHub (if any), used for update checks.
public string GitHubProject { get; set; }
/// The unique mod ID.
public string UniqueID { get; set; }
/// Any manifest fields which didn't match a valid field.
[JsonExtensionData]
public IDictionary ExtraFields { get; set; }
}
}