using System; using System.Collections.Immutable; using JetBrains.Annotations; namespace Content.Server.GameTicking.Presets { /// /// Attribute that marks a game preset. /// The id and aliases are registered in lowercase in . /// A duplicate id or alias will throw an exception. /// [AttributeUsage(AttributeTargets.Class, Inherited = false)] [BaseTypeRequired(typeof(GamePreset))] [MeansImplicitUse] public class GamePresetAttribute : Attribute { public string Id { get; } public ImmutableList Aliases { get; } public GamePresetAttribute(string id, params string[] aliases) { Id = id; Aliases = aliases.ToImmutableList(); } } }