Fixtype of messages.
This is a tagged union type, introduced by fty::deftagsum.
A proposal message consists of a proposal and a destination address. When a validator creates a proposal, it broadcasts it to other validators, one message per validator, with the same proposal but different destination (i.e. receiver). In a proposal message, the sender is the author of the proposal.
An endorsement message consists of a proposal and an endorser address. When a validator receives a valid proposal from another validator, it endorses it by sending an endorsement back to the proposal author. The endorser's address represents a signature of the endorser in our model. The endorser is the sender, while the receiver is the author of the proposal. In AleoBFT, endorsements only include cryptographically unique references to proposals, but in our model we use the whole proposal for modeling simplicity.
A certificate message consists of a certificate and a destination address. When a validator, after creating and broadcasting a proposal, receives enough endorsements, it creates and broadcasts a certificate. Thus a certificate message is similar to a proposal message, but with a certificate instead of a proposal. The sender of a certificate is the author of the proposal/certificate.