using System; namespace UXAssist.Common.ModFeatures; /// /// Marks a class as a mod feature so that can discover it. /// Lifecycle methods (Init, Start, Uninit, OnInputUpdate, OnUpdate) are optional. /// [AttributeUsage(AttributeTargets.Class, Inherited = false)] public sealed class ModFeatureAttribute : Attribute { /// /// Optional display name of the feature. /// public string Name { get; } /// /// Execution order among discovered static features. Lower values run first. /// public int Order { get; set; } /// /// Initializes a new instance of the class. /// /// Optional display name of the feature. public ModFeatureAttribute(string name = null) { Name = name; } }