internal SmtpState this[SmtpStateId stateId] => _states[stateId];
 internal void Add(string command, Func <SmtpSessionContext, bool> canAcceptDelegate, SmtpStateId state)
 {
     Transitions.Add(command, new SmtpStateTransition(canAcceptDelegate, context => state));
 }
 internal SmtpState(SmtpStateId stateId)
 {
     StateId = stateId;
 }
 internal void Add(string command, SmtpStateId state)
 {
     Transitions.Add(command, new SmtpStateTransition(context => true, context => state));
 }