using SPTarkov.Server.Core.Models.Common; namespace SPTarkov.Server.Core.Models.Spt.Mod; /// /// Represents a collection of metadata used to determine things such as author, version, /// pre-defined load order and incompatibilities. This record is required to be overriden by all mods. /// All properties must be overridden. For properties, that you don't need, just assign null. /// public abstract record AbstractModMetadata { /// /// A unique ID value for the mod to distinguish it from others /// public abstract MongoId ModId { get; set; } /// /// Name of this mod /// public abstract string Name { get; set; } /// /// Your username /// public abstract string Author { get; set; } /// /// People who have contributed to this mod /// public abstract List? Contributors { get; set; } /// /// Semantic version of this mod, this uses the semver standard /// public abstract string Version { get; set; } /// /// SPT version this mod was built for /// public abstract string SptVersion { get; set; } /// /// List of mods this mod should load before /// public abstract List? LoadBefore { get; set; } /// /// List of mods this mod should load after /// public abstract List? LoadAfter { get; set; } /// /// List of mods not compatible with this mod /// public abstract List? Incompatibilities { get; set; } /// /// Dictionary of mods this mod depends on. /// /// Mod dependency is the key, version is the value /// public abstract Dictionary? ModDependencies { get; set; } /// /// Link to this mod's mod page, or GitHub page /// public abstract string? Url { get; set; } /// /// Does this mod load bundles /// public abstract bool? IsBundleMod { get; set; } /// /// Name of the license this mod uses /// public abstract string? Licence { get; set; } }