namespace SVSim.Database.Models.Config;
///
/// Tunables for serving the card-master payload at POST /immutable_data/card_master.
/// V1 ships the captured prod blob verbatim; the hash here pins to that capture's prod hash
/// so any client whose cardmaster/card_master_1 was seeded from a prod dump skips
/// re-download.
///
[ConfigSection("CardMasterConfig")]
public class CardMasterConfig
{
///
/// Emitted on /load/index response's inner data.card_master_hash when the
/// request's card_master_hash body field doesn't match this value. Client treats
/// the string as opaque (presence-only check, value is echoed back unchanged on the next
/// /immutable_data/card_master request). Format <sha1 hex>:<CardMasterId>.
///
/// Default value is the prod-captured hash paired with the blob at
/// SVSim.EmulatedEntrypoint/Data/card_master_2026-06-03.txt. When swapping the
/// blob, update this string in lockstep — the hash is otherwise free-form (the client
/// never validates its structure).
///
///
public string CurrentHash { get; set; } = "94b5c44edc51ff76c0af8fcc894af12f979dd38c:1";
///
/// Kill switch. When false, /immutable_data/card_master returns 503 and
/// /load/index never emits card_master_hash. Useful for shaving the 1.27 MB
/// download out of test-only deployments where the test viewers already have a seeded
/// local cache.
///
public bool EnableServing { get; set; } = true;
public static CardMasterConfig ShippedDefaults() => new();
}