What either side of the handshake claims about itself.
Not ClientVersions: a ServerHealth satisfies this structurally, and the
comparison below is symmetric, so naming it after one participant made the
local authority — which is a server to its own client — read as if it were
borrowing the client's type.
protocol is here and not in UniverseVersions because it answers a
different question. The protocol version says whether two peers can talk; the
universe versions say whether there is anything worth saying. A save file has
the second and not the first, which is why they are separate types rather
than one type with an optional field.
Members
catalogreadonly
The catalog manifest's version string, e.g. hyg-4.4+nea-2b24daf0.
generationreadonly
GENERATION_VERSIONS: which algorithms, at which revision.