Exchange is the basic units of protocol tests
the triggers and expects in the arrays are run immediately and asynchronously
thus one cannot have multiple expects for the SAME peer with DIFFERENT message types
because it's unpredictable which expect will receive which message
(with expect #1 and #2, messages might be sent #2 and #1, and both expects will complain about wrong message code)
an exchange is defined on a session

type Trigger struct {
Msg interface{} // type of message to be sentCodeuint64// code of message is givenPeerenode.ID// the peer to send the message toTimeouttime.Duration// timeout duration for the sending
}

Trigger is part of the exchange, incoming message for the pivot node
sent by a peer