Wraps a handler with cross-cutting logic (logging, timing, validation, etc.).
Behaviors are typed to CqrsRequest so they can read request.type/request.data
type-safely without any.
TRequest extends CqrsRequest = CqrsRequest
The request type (must extend CqrsRequest)