type IMessage[T any] interface {
// returns the sender of a message GetSender() uuid.UUID// calls the appropriate message handler method on the receiving agent InvokeMessageHandler(T)
}
base interface structure used for message - can be composed for more complex message structures