# Source Map

Package-level map of all Java source files in `src/main/java` and tests in `src/test/java`.

## Main Sources

### `vassistent`

- `App.java`: application entry point and shutdown hook logic

### `vassistent.bootstrap`

- `ApplicationContext.java`: container for shared services/state
- `ApplicationInitializer.java`: wiring and startup sequence
- `ApplicationShutdownManager.java`: managed shutdown sequence

### `vassistent.controller`

- `AppWindowController.java`: main window lifecycle and state-driven UI updates
- `DashboardController.java`: chart and level updates on state changes
- `StreamingController.java`: stream view actions (reload/focus)

### `vassistent.model`

- `AppState.java`: observable app state
- `DatabaseEntry.java`: persisted event value + timestamp
- `ProblemLevel.java`: risk level enum
- `RatioPoint.java`: chart point model

### `vassistent.service`

- `AnimationFileService.java`: writes animation state JSON file
- `BinaryEventService.java`: payload validation + dispatch
- `DataPersistenceService.java`: SQLite init and CRUD-like methods
- `EvaluationService.java`: ratio-to-problem-level mapping
- `MqttClientService.java`: MQTT connectivity and callbacks
- `ProcessManagerService.java`: optional process startup/shutdown
- `StatisticsService.java`: ratio and rolling-avg computations

### `vassistent.ui`

- `AppWindow.java`: root frame with tabbed layout
- `DashboardView.java`: chart + threshold markers + level display
- `PixelStreamingView.java`: JCEF browser panel for stream
- `ProblemLevelBar.java`: custom level visualization widget

### `vassistent.util`

- `ConfigLoader.java`: classpath properties loader
- `Logger.java`: async logger with file rotation

## Test Sources

### `vassistent.model`

- `AppStateTest.java`

### `vassistent.service`

- `AnimationFileServiceTest.java`
- `BinaryEventServiceTest.java`
- `DataPersistenceServiceTest.java`
- `EvaluationServiceTest.java`
- `MqttClientServiceTest.java`
- `ProcessManagerServiceTest.java`
- `StatisticsServiceTest.java`
