Maybe `public abstract CredentialType Type { get; }`?