# Source Map

Package-level source overview for `src/main/java` and `src/test/java`.

## Main Sources

### `vassistent`

- `App.java`  
  Application entry point.

### `vassistent.bootstrap`

- `ApplicationContext.java`  
  In-memory container for shared services/state.
- `ApplicationInitializer.java`  
  Service wiring, startup orchestration, process startup reporting.
- `ApplicationShutdownManager.java`  
  Graceful shutdown: MQTT disconnect, process stop, DB cleanup, logger shutdown.

### `vassistent.controller`

- `AppWindowController.java`  
  Main window lifecycle and cross-view coordination.
- `DashboardController.java`  
  Updates chart/level view from app state.
- `StreamingController.java`  
  Controls stream view actions.

### `vassistent.model`

- `AppState.java`  
  Observable application state.
- `DatabaseEntry.java`  
  Persisted event value + timestamp.
- `ProblemLevel.java`  
  Risk-level enum.
- `RatioPoint.java`  
  Time-series point for chart data.

### `vassistent.service`

- `AnimationFileService.java`  
  Writes current animation state JSON.
- `BinaryEventService.java`  
  Validates payloads and triggers persistence/evaluation.
- `DataPersistenceService.java`  
  SQLite schema setup and event read/write methods.
- `EvaluationService.java`  
  Ratio-to-level mapping and state update.
- `MqttClientService.java`  
  MQTT connect/subscribe/publish and callback routing.
- `ProcessManagerService.java`  
  Optional simulator/Unreal process startup, health checks, shutdown.
- `StatisticsService.java`  
  Ratio and rolling-average calculations from persisted events.

### `vassistent.ui`

- `AppWindow.java`  
  Root frame with tabbed layout.
- `DashboardView.java`  
  Chart and current-level visualization.
- `PixelStreamingView.java`  
  JCEF browser panel for stream URL.
- `ProblemLevelBar.java`  
  Custom UI component for level display.

### `vassistent.util`

- `AppConfigValidator.java`  
  Startup configuration validation.
- `ConfigLoader.java`  
  Classpath properties loading.
- `Logger.java`  
  Asynchronous logger with file rotation support.

## Resource Files

- `src/main/resources/config/application.properties`
- `src/main/resources/config/logger.properties`
- `src/main/resources/scripts/mqtt_simulator.py`
- `src/main/resources/scripts/start_avatar.ps1`

## Test Sources

### `vassistent.model`

- `AppStateTest.java`

### `vassistent.service`

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