# Models — index Plain data types. No logic beyond what a property can carry. See [`schema.md`](../schema.md) for the memory-map conventions. | File | Purpose | |------|---------| | `Scene.cs` | A scene: `Name`, `IsHidden`, `IsChatScene`, `IsEditing`, `Sources` collection | | `Source.cs` | A source: `SourceType` enum (Image/Webcam/Screen/Background/Text), `X`/`Y`/`Width`/`Height`, `Opacity`, `IsEnabled`, `ImageSource`, asset identity | | `QualityOption.cs` | Resolution tier record `(Display, Fps, Bitrate, Width, Height)`; `Label` formats as `1080p60 (8Mbps)` — drives the bottom-bar dropdown and the output-rect math | | `StreamConfig.cs` | `StreamConfig` (note: `TargetBitrate`/`Resolution` defaults are stale — not yet wired to the dropdown), `StreamHealth` (bitrate/FPS/dropped/duration), `StreamStatus` enum | | `YouTube.cs` | `YouTubeChannel` and `ChatMessage` (chat feed) | Related: [`ViewModels/index.md`](../ViewModels/index.md) consume these; [`Services/LayoutStore.cs`](../Services/LayoutStore.cs) persists `Scene`/`Source`.