public bool Equals(TraitDefinition other)
        {
            if (other == null)
                return false;

            return other.Equals(Definition);
        }
        public bool Equals(TraitRequirement other)
        {
            if (ReferenceEquals(null, other))
                return false;

            if (ReferenceEquals(this, other))
                return true;

            return Required == other.Required && Definition.Equals(other.Definition);
        }