An upload as the app writes it: the events entries, and the identities whose
checksums it echoes, in the order of the logger's identity list (one pair per
identity, however many batches or entries it has). An identity in identities
is an echo by kind: its tokens and viewer come from the batch of that kind.
An upload has at least one entry, and an entry at least one batch, so an
upload with nothing to write cannot be built.
An upload as the app writes it: the events entries, and the identities whose checksums it echoes, in the order of the logger's identity list (one pair per identity, however many batches or entries it has). An identity in
identitiesis an echo by kind: its tokens and viewer come from the batch of that kind. An upload has at least one entry, and an entry at least one batch, so an upload with nothing to write cannot be built.