/**
 * Domain Type: HostedSessionConfig
 *
 * Pure configuration shape for an iRacing hosted session.
 * This is a DTO-like domain type, not a value object or entity.
 */
export interface HostedSessionConfig {
  sessionName: string;
  trackId: string;
  carIds: string[];

  // Optional fields for extended configuration.
  serverName?: string;
  password?: string;
  adminPassword?: string;
  maxDrivers?: number;

  /** Search term for car selection (alternative to carIds) */
  carSearch?: string;
  /** Search term for track selection (alternative to trackId) */
  trackSearch?: string;

  weatherType?: 'static' | 'dynamic';
  timeOfDay?: 'morning' | 'afternoon' | 'evening' | 'night';
  sessionDuration?: number;
  practiceLength?: number;
  qualifyingLength?: number;
  warmupLength?: number;
  raceLength?: number;
  startType?: 'standing' | 'rolling';
  restarts?: 'single-file' | 'double-file';
  damageModel?: 'off' | 'limited' | 'realistic';
  trackState?: 'auto' | 'clean' | 'moderately-low' | 'moderately-high' | 'optimum';
}