Observer handler lacks two good things that Interfaced handler has
Without ExtendedHandler it's impossible to make observer handler asynchronous.
[ExtendedHandler]
async Task Say()
...
Filter is quite useful for interfaced handlers and expect same thing for observer handler.
[Log]
void ChatObserver.Say()
...