/// <summary>
        /// Initializes a new instance of the <see cref="SpellDescription"/> class.
        /// </summary>
        /// <param name="metadata">Metadata for this <see cref="SpellDescription"/>.</param>
        /// <param name="school">The school of magic this spell belongs to.</param>
        /// <exception cref="ArgumentException">The <paramref name="school"/> parameter is not a valid school of magic.</exception>
        public SpellDescription(IRulesElementMetadata metadata, Trait school)
        {
            if (!school.IsSchoolTrait())
            {
                throw new ArgumentException($"{school} is not a valid school trait.", nameof(school));
            }

            Metadata = metadata;
            School   = school;
        }
        public void IsSchoolTrait_True(Trait trait)
        {
            // Arrange

            // Act
            bool result = trait.IsSchoolTrait();

            // Assert
            Assert.IsTrue(result);
        }