OfflineMissionEnvelope.cs
1 using GUNRPG.Application.Dtos; 2 3 namespace GUNRPG.Application.Backend; 4 5 public sealed class OfflineMissionEnvelope 6 { 7 public string Id { get; set; } = Guid.NewGuid().ToString(); 8 public string OperatorId { get; set; } = string.Empty; 9 public long SequenceNumber { get; set; } 10 public int RandomSeed { get; set; } 11 12 /// <summary>Canonical JSON snapshot of operator state immediately before mission execution.</summary> 13 public string InitialSnapshotJson { get; set; } = string.Empty; 14 15 /// <summary>Canonical JSON snapshot of operator state immediately after mission execution.</summary> 16 public string ResultSnapshotJson { get; set; } = string.Empty; 17 18 public string InitialOperatorStateHash { get; set; } = string.Empty; 19 public string ResultOperatorStateHash { get; set; } = string.Empty; 20 21 /// <summary>Full deterministic battle log; sufficient to replay the mission from InitialSnapshotJson + RandomSeed.</summary> 22 public List<BattleLogEntryDto> FullBattleLog { get; set; } = new(); 23 24 public DateTime ExecutedUtc { get; set; } 25 public bool Synced { get; set; } 26 }