public static IEnumerable <T> GetTraits <T>(this ICharacterTraitContainer traitContainer) where T : class, ICharacterTrait => traitContainer.Traits.Select(a => a as T).Where(a => a != null);
public static bool HasTrait <T>(this ICharacterTraitContainer traitContainer, T trait) where T : ICharacterTrait => traitContainer.Traits.Contains(trait);
public static T GetTrait <T>(this ICharacterTraitContainer traitContainer) where T : class, ICharacterTrait => traitContainer.Traits.First(a => a is T) as T;