public record SimulationConfigResponse(
    bool Enabled,
    double? MaxSpeed = null,
    int? MaxConcurrentRuns = null);

public record ScenarioSummaryResponse(
    string Id,
    string Name,
    string? Description,
    int? DurationMinutes,
    IReadOnlyList<string>? Tags,
    string Department,
    int EventCount,
    int ExpectedOutcomeCount);

public record StartSimulationRunRequest(string ScenarioId, double Speed = 60);

public record SimulationRunResponse(
    Guid RunId,
    string ScenarioId,
    string ScenarioName,
    string Status,
    double Speed,
    Guid? PatientId,
    Guid? EncounterId,
    string PatientDisplayName,
    DateTimeOffset StartedAt,
    double ElapsedRealSeconds,
    double LastOffsetMinutes,
    double TotalOffsetMinutes,
    double ProgressPercent,
    int ObservationsSent,
    int MedicationsSent,
    int OrdersPlaced,
    string? FailureReason);
