namespace SVSim.Database.Models.Config;
///
/// Asset-delivery tunables: where the client looks for the resource CDN (Akamai by default;
/// Wizard/SetUp.cs:48 hardcodes shadowverse.akamaized.net/) and what manifest
/// version to ask for. Currently a single field, will grow as we self-host content.
///
[ConfigSection("ResourceConfig")]
public class ResourceConfig
{
///
/// Pushed to the client as data_headers.required_res_ver. The client writes it to
/// PlayerPrefs["RES_VER"] and uses it as the version path component for asset
/// manifest lookups: https://<cdn>/dl/Manifest/<RES_VER>/<lang>/<Platform>/.
///
/// Default value is the prod-captured version from data_dumps/traffic_prod_tutorial.ndjson
/// (2026-05-28) — i.e., a path Akamai actually serves. When this rotates (or Akamai sunsets
/// ahead of June 2026), update via DB GameConfigs row, appsettings.json, or this
/// shipped default; no code change needed.
///
///
/// When the client has no cached RES_VER (e.g., a wiped/fresh install via
/// NukeIdentityOnStartup), it defaults to "00000000", which Akamai 404s. The
/// fetch failure surfaces as "Connection Error / Reconnect" before any tutorial UI loads,
/// so emitting a valid value here is required for fresh-account boot.
///
///
public string RequiredResVer { get; set; } = "4670rPsPMVlRTd2";
///
/// Inline-default tier for . Mirrors property initialisers
/// — kept as a separate factory because the framework requires every [ConfigSection] POCO to
/// expose one (see feedback_config_defaults memory for the collection-defaults rule
/// that motivated the convention).
///
public static ResourceConfig ShippedDefaults() => new();
}