using System; namespace axXez.TS3.Bot { /// Marks a class as a bot module and configures its display name, description, and namespace. [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)] public class ModuleAttribute : Attribute { /// Human-readable name shown in module listings. Falls back to the class name if not set. public string DisplayName { get; set; } = string.Empty; /// Short description of what the module does. public string Description { get; set; } = string.Empty; /// Namespace prefix used to construct the module's full name. Falls back to the type's CLR namespace if not set. public string Namespace { get; set; } = null; /// Server versions this module is compatible with. Modules are skipped on connect if the server version is not included. public ModuleCompatibility Compatibility { get; set; } = ModuleCompatibility.Any; /// Initializes the attribute with default values. public ModuleAttribute() { } } }