Table of Contents

Struct VersionFetch

Namespace
FishMMO.Client
Assembly
FishMMO.Client.dll

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

string

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

bool

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

string

signature

Base64 Ed25519 signature over this document.

public string signature

Field Value

string

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

long

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

Field Value

bool