# Feature Matrix

This matrix tracks the benign functionality identified from the analyzed WT Live Map resource and the corresponding clean-room Ehwrj implementation.

| Feature | Ehwrj status | Notes |
| --- | --- | --- |
| Local War Thunder map polling | Implemented | Reads `map_info.json`, `map_obj.json`, and `map.img` from loopback. |
| Map image preview | Implemented | Drawn by `MapCanvas`. |
| Aircraft/object markers | Implemented | Uses `MapObjectKind` classification for player, ally, squad, enemy, and objective colors. |
| Ally/enemy aircraft counters | Implemented | Derived from parsed object kind and aircraft flags. |
| Player info panel | Implemented | Shows detected player name, map position, Mach, and heading when available. |
| Flight telemetry | Implemented | Optional `/state` support for TAS/IAS, altitude, vertical speed, Mach, and climb angle. |
| Battle timer | Implemented | Session-local timer starts on first live snapshot. |
| Battle log panel | Implemented | Reads optional `/hudmsg` and `/gamechat` when available, and also logs local snapshot events. |
| Labels | Implemented | Toggle-controlled map labels. |
| Aircraft Mach labels | Implemented | Uses tracked motion estimates or state-derived values when present in parsed data. |
| Follow player | Implemented | Main map zoom/pan centers the detected player. |
| Rotate with player | Implemented | The map bitmap, grid, markers, range rings, and delivery tracker rotate around the view center using detected player heading. |
| Range rings | Implemented | Drawn around detected player. |
| Delivery tracker | Implemented | Draws projected approach lines from friendly/player aircraft to enemy objective targets when heading alignment passes the configured threshold. |
| Transparent overlay | Implemented | Avalonia transparent window with Windows click-through interop. |
| Overlay minimap | Implemented | Includes aircraft scale and minimum Mach filtering. |
| Overlay spot radar | Implemented | Includes range, spread, vertical scale/offset, opacity, arrow size/outline/color, and distance/Mach/closure labels. |
| Settings persistence | Implemented | Stored in `%LOCALAPPDATA%\Ehwrj\settings.json`. |
| Local API capture/replay | Implemented | `Ehwrj.Tools.Capture` records fixtures and writes a validation report; `LocalApiStub --fixture-dir` replays them. |
| Language selection | Implemented | English and Korean UI text can be selected from the main control panel and persists in settings. |
| WebView2 host | Intentionally not used | Avalonia was chosen so Ubuntu ARM64 can build and publish Windows x64 artifacts without WindowsDesktop SDK support. |

## Known Data Gaps

Real War Thunder `map_obj.json`, `map_info.json`, `/state`, `/hudmsg`, and `/gamechat` captures are still needed to tune distance scale, object classification edge cases, and mode-specific fields. The local API stub covers development and UI testing but is not a replacement for game-mode validation.
