using System.Collections.Generic;
using Newtonsoft.Json;
using StardewModdingAPI.Toolkit.Serialisation.Converters;
namespace StardewModdingAPI.Toolkit.Serialisation.Models
{
/// A manifest which describes a mod for SMAPI.
public class Manifest
{
/*********
** 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.
public SemanticVersion Version { get; set; }
/// The minimum SMAPI version required by this mod, if any.
public SemanticVersion MinimumApiVersion { get; set; }
/// The name of the DLL in the directory that has the Entry method. Mutually exclusive with .
public string EntryDll { get; set; }
/// The mod which will read this as a content pack. Mutually exclusive with .
[JsonConverter(typeof(ManifestContentPackForConverter))]
public ManifestContentPackFor ContentPackFor { get; set; }
/// The other mods that must be loaded before this mod.
[JsonConverter(typeof(ManifestDependencyArrayConverter))]
public ManifestDependency[] Dependencies { get; set; }
/// The namespaced mod IDs to query for updates (like Nexus:541).
public string[] UpdateKeys { 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; }
}
}