data_transfer is mandatory, and specifies whether this transaction has a read or a write
transfer (see above).
stop is optional, and specifies whether this transaction is terminated by a stop condition (if
true) or by a repeated-start (if false or unspecified). If this transaction is the last in the
list then a stop condition is generated regardless of the value of stop.
If read_size is set: This is a read transfer, and read_size bytes will be read from the
target.
If write_data is set: This is a write transfer, and write_data will be written to the
target.
Clients should be aware of the max channel message size when using large transfers or many
transactions. It is possible to generate a message that uses values less than the limits below
but is still too big for the channel.