namespace SessionZero.SzfLib; [AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)] public class SzfObjectAttribute : Attribute { /// /// The unique identifier for the SzfObject type (e.g., "dataset", "character_template", "character"). /// This is used in the `!tpye` header of the SZF file to identify the type of SzfObject. /// public required string TypeIdentifier { get; set; } public SzfObjectAttribute(string typeIdentifier) { if (string.IsNullOrWhiteSpace(typeIdentifier)) { throw new ArgumentException("Type identifier cannot be null or whitespace.", nameof(typeIdentifier)); } TypeIdentifier = typeIdentifier; } }