manifest: add optional format field for release dispatch

introduces an optional top-level "format" field on the signed manifest,
defaulting to legacy-json-blob when absent so existing installs keep
parsing unchanged. follow-up commits wire the release format factory
and the m2pack strategy against this value.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Jan Nedbal
2026-04-14 21:05:30 +02:00
parent 3d3129032a
commit 5edd0c5aea

View File

@@ -10,6 +10,17 @@ namespace Metin2Launcher.Manifest;
/// </summary>
public sealed class Manifest
{
[JsonPropertyName("format")]
public string? Format { get; set; }
/// <summary>
/// Effective release format. Defaults to <c>legacy-json-blob</c> when the
/// field is absent, which preserves backward compatibility with manifests
/// produced before the m2pack migration.
/// </summary>
public string EffectiveFormat =>
string.IsNullOrWhiteSpace(Format) ? "legacy-json-blob" : Format;
[JsonPropertyName("version")]
public string Version { get; set; } = "";