public abstract void SendMessage(Message m);
 protected void OnMessageReceived(Message message) => MessageReceived?.Invoke(this, message);
 protected void OnSerializationError(Message message) => SerializationError?.Invoke(message);