/// <summary>
        /// Marks a target with the Include attribute. 
        /// Attribute doesn't handle enforcing.
        /// </summary>
        /// <param name="includeIndex">A valid unique <see cref="GladNetIncludeIndex"/> for the target <see cref="Type"/>.</param>
        /// <param name="type">Type of the derived or base Type to associate with. (Unenforced to be a derived or subtype)</param>
        /// <exception cref="ArgumentOutOfRangeException">Throws if tagID is 0 or negative.</exception>
        public GladNetSerializationIncludeAttribute(GladNetIncludeIndex includeIndex, Type type, bool isForDerived = true)
            : base()
        {
            //uint is not CLS compliant. We have no reason to use uint in .Net
            Throw<ArgumentException>.If.IsTrue(!Enum.IsDefined(typeof(GladNetIncludeIndex), includeIndex))?.Now();
            Throw<ArgumentNullException>.If.IsNull(type)
                ?.Now(nameof(type), $"DerivedType cannot be null in {nameof(GladNetSerializationIncludeAttribute)}.ctor(...).");

            IncludeForDerived = isForDerived;
            TypeToWireTo = type;
            TagID = (int)includeIndex;
        }
 public TestClindAttribute(GladNetIncludeIndex includeIndex, Type type, bool isForDerived = true)
     : base(includeIndex, type, isForDerived)
 {
 }