feat(battlenode): SessionBattleEngine skeleton + types (Phase 2 N0)
SessionContentsCreator mirrors the test HeadlessContentsCreator fully (all IBattleMgrContentsCreator members) so it compiles; Setup/Receive throw pending the Task 3/4 probes. New files use the 'engine' extern alias. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
9
SVSim.BattleNode/Sessions/Engine/EngineIngestResult.cs
Normal file
9
SVSim.BattleNode/Sessions/Engine/EngineIngestResult.cs
Normal file
@@ -0,0 +1,9 @@
|
||||
namespace SVSim.BattleNode.Sessions.Engine;
|
||||
|
||||
/// <summary>Outcome of feeding one client frame to the engine (design ND6). A divergence/reject is a
|
||||
/// DETECTED-DESYNC EVENT surfaced to the caller — never silently absorbed. Phase-2 policy: log.</summary>
|
||||
internal sealed record EngineIngestResult(bool Accepted, bool Diverged, string? RejectReason)
|
||||
{
|
||||
public static EngineIngestResult Ok() => new(Accepted: true, Diverged: false, RejectReason: null);
|
||||
public static EngineIngestResult Reject(string reason) => new(Accepted: false, Diverged: true, RejectReason: reason);
|
||||
}
|
||||
Reference in New Issue
Block a user