Struct VersionFetch
Structure to parse the JSON response from the /latest_version endpoint.
NOTE: The fields below use snake_case naming as a deliberate JSON contract exception. JsonUtility.FromJson maps directly to these field names; renaming them to PascalCase would break deserialization of the server response.
[Serializable]
public struct VersionFetch
- Inherited Members
Fields
latest_version
The latest version string returned by the /latest_version endpoint.
public string latest_version
Field Value
patch_available
Optional: true when the server has an applicable patch for the client's
reported version. Present only when the client sent a from query parameter.
public bool patch_available
Field Value
sha256
Optional: lowercase hexadecimal SHA-256 of the patch zip the server will return for the reported client version. Present only when a patch is available.
public string sha256
Field Value
signature
Base64 Ed25519 signature over this document.
public string signature
Field Value
Remarks
S4. Every other field here is trusted absolutely — sha256 in particular
is the ONLY integrity check applied to the patch archive, so whoever writes this
document chooses which bytes the updater installs. It travelled over pinned TLS and
nothing more, which the project's own TODO called out: TLS authenticates the
transport, and says nothing about a compromised gateway, a mis-issued certificate or
a hostile CDN edge.
The signed form is this document with the value of signature replaced by an
empty string, with the base64 signature appended — byte-identical handling to the pin
manifest, so one signing tool serves both. See
FishMMO.Client.Security.Ed25519ManifestVerifier.
Absent when the deployment has not configured signing. The client reports that loudly rather than treating it as normal; once a verification key is embedded, an unsigned or wrongly-signed manifest is refused.
size
Optional: size in bytes of the patch zip the server will return for the reported client version. Present only when a patch is available.
public long size
Field Value
up_to_date
Optional: true when the server indicates the client is already at the latest
version. Present only when the client sent a from query parameter.
public bool up_to_date