See https://github.com/tendermint/tendermint/blob/v0.34.8/proto/tendermint/abci/types.proto#L282-L289
These are various Tendermint Consensus Params that can be adjusted by EndBlockers
If any of them are set to Some, then the blockchain will set those as new parameter for tendermint consensus.
See https://github.com/tendermint/tendermint/blob/v0.34.8/proto/tendermint/abci/types.proto#L229-L235
A EndWithValidatorUpdate{} call may return a JSON-encoded ValidatorDiff in Response.data
if it wishes to change the validator set.
A number of Custom messages that can be returned by ‘privileged’ contracts.
Returning them from any other contract will return an error and abort the transaction.