From 5edd0c5aeaf9cfe9113d135808a462019ab6ab3f Mon Sep 17 00:00:00 2001 From: Jan Nedbal Date: Tue, 14 Apr 2026 21:05:30 +0200 Subject: [PATCH] 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) --- src/Metin2Launcher/Manifest/Manifest.cs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/Metin2Launcher/Manifest/Manifest.cs b/src/Metin2Launcher/Manifest/Manifest.cs index 955195e..4c19b28 100644 --- a/src/Metin2Launcher/Manifest/Manifest.cs +++ b/src/Metin2Launcher/Manifest/Manifest.cs @@ -10,6 +10,17 @@ namespace Metin2Launcher.Manifest; /// public sealed class Manifest { + [JsonPropertyName("format")] + public string? Format { get; set; } + + /// + /// Effective release format. Defaults to legacy-json-blob when the + /// field is absent, which preserves backward compatibility with manifests + /// produced before the m2pack migration. + /// + public string EffectiveFormat => + string.IsNullOrWhiteSpace(Format) ? "legacy-json-blob" : Format; + [JsonPropertyName("version")] public string Version { get; set; } = "";