/ GUNRPG.Application / Backend / OfflineMissionEnvelope.cs
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  }