ReleaseManifest Data Contract

Namespace: Decnet.PatchProof.Core
Assembly: Decnet.PatchProof.Core.dll

The ReleaseManifest class represents an immutable, cryptographically validated snapshot of a software and content release.


Class Definition

[Serializable]
public class ReleaseManifest
{
    public string releaseId;           // Primary unique key (e.g., "v1.0.0")
    public string releaseName;         // Human-readable title
    public TargetPlatform platform;    // WindowsStandalone, Android, etc.
    public string unityVersion;        // Engine version string (e.g., "6000.5.4f1")
    public string addressablesVersion; // Addressables package version (e.g., "2.9.1")
    public string catalogRelativePath; // Path to catalog file relative to content directory
    public string contentDirectory;    // Absolute or project-relative folder containing bundles
    public string executablePath;      // Path to compiled standalone player binary
    public List<ArtifactEntry> artifacts = new List<ArtifactEntry>();
}

ArtifactEntry Structure

Represents a single physical file within the release’s content closure:

[Serializable]
public class ArtifactEntry
{
    public string relativePath;   // e.g., "hero_knight_assets.bundle"
    public long fileSizeBytes;    // Exact byte size
    public string sha256Checksum; // Hexadecimal SHA-256 digest
    public bool isCatalog;        // True if this is the Addressables catalog
    public bool isHashFile;       // True if this is the primary .hash metadata
}

Example: Programmatic Manifest Generation

using Decnet.PatchProof.Core;
using Decnet.PatchProof.Core.Validation;

var manifest = new ReleaseManifest
{
    releaseId = "v2.1.0-hotfix",
    releaseName = "Patch 2.1.0 Hotfix",
    platform = TargetPlatform.WindowsStandalone,
    unityVersion = Application.unityVersion,
    addressablesVersion = "2.9.1",
    catalogRelativePath = "catalog_v2.1.0.json",
    contentDirectory = "ServerData/StandaloneWindows64",
    executablePath = "Builds/Game_v2.1.0.exe"
};

// Compute SHA-256 hashes for all files in the content directory
ArtifactValidator.PopulateArtifactEntries(manifest);

// Save manifest to disk
string json = JsonUtility.ToJson(manifest, true);
File.WriteAllText("Assets/PatchProof_Registry/Manifests/v2.1.0.json", json);

Back to top

Copyright © 2026 Decnet Games. PatchProof — Addressables Release Rehearsal Lab. Available on the Unity Asset Store (Short link: u3d.as/4g0P). Tested on Unity 6000.5.4f1 LTS with Addressables 2.9.1. All rights reserved.

This site uses Just the Docs, a documentation theme for Jekyll.