namespace ytLive.Models; public enum SourceType { DisplayCapture, WindowCapture, Webcam, Image, TextOverlay } public class Source { public string Id { get; init; } = Guid.NewGuid().ToString(); public string Name { get; set; } = string.Empty; public SourceType Type { get; set; } public bool IsEnabled { get; set; } = true; // Display/Window capture public int? MonitorIndex { get; set; } public IntPtr? WindowHandle { get; set; } // Webcam public string? DeviceId { get; set; } // Image public string? FilePath { get; set; } // Position/transform public double X { get; set; } public double Y { get; set; } public double Width { get; set; } public double Height { get; set; } public double Opacity { get; set; } = 1.0; }