# Setup and Run

## Prerequisites

- Java 17 (JDK)
- Maven 3.9+
- MQTT broker reachable at `localhost:1883`
- Windows environment for bundled PowerShell/BAT process scripts

Optional:

- Python (for MQTT simulator startup)
- Unreal + Pixel Streaming environment (if enabled in config)

## Build

```powershell
mvn clean compile
```

## Run (CLI)

```powershell
mvn org.codehaus.mojo:exec-maven-plugin:3.5.0:java -Dexec.mainClass=vassistent.App
```

## Run (IDE)

Run the class:

- `vassistent.App`

## MQTT Payload Format

Publish payloads to configured topic (default `PREDICTION`) in this format:

```json
{
  "valid": true,
  "_id": 1,
  "prediction": 0
}
```

Rules:

- `valid` must be `true`
- `_id` must exist
- `prediction` must be `0` or `1`

## Shutdown Behavior

On shutdown, the app:

- disconnects MQTT
- stops managed external processes
- flushes logger queue
- deletes `data/health.db` (current implementation)
