namespace SVSim.EmulatedEntrypoint.Models.Dtos.Story; /// /// What IStoryService.FinishAsync returns to StoryController.Finish. /// is the wire payload; and /// are controller-side signals for the class_level_up mission emit /// and are never serialized. is nullable because skip-shape finishes /// (no class chosen) don't grant XP and therefore can't level anything up. /// public sealed record StoryFinishOutcome(FinishResponse Response, bool LeveledUp, int? ClassId);