# V2 Bot Coverage Mapping

`V2BotCoverageMapping` covers `TODOS.phase-72.72.19.1.3`: it tracks which world
positions bots have visited, generates a coverage heatmap, and identifies
unexplored areas from bot result samples.

## Runtime Surface

- `FV2BotCoverageSample` stores the bot id, frame number, and visited world
  position emitted from a bot result.
- `FV2BotCoverageArea` defines the world-space bounds and heatmap cell size.
- `AnalyzeBotCoverage` projects visited positions into grid cells, increments
  visit counts, computes heatmap intensity, and marks unvisited cells as
  unexplored areas.
- `FV2BotCoverageMappingResult` returns samples, heatmap cells, unexplored
  cells, total and visited cell counts, coverage percentage, and verification
  flags proving the run tracked positions, generated a heatmap, and identified
  unexplored areas.

## QA Behavior

Coverage mapping is intentionally data-first. It does not render an image in
automation; it creates heatmap cells that UI, reports, or later bot result
reporting can visualize. The default sample adapter consumes
`V2RandomExplorationBot` movement steps so random exploration immediately
produces coverage evidence.

Required capabilities: track which world positions bots have visited, generate
coverage heatmap, identify unexplored areas, visited cells, heatmap intensity,
and unexplored cells.

It can generate coverage heatmap data for reports.

## Validation Commands

```bash
python3 V2/ue/Tools/check-v2-bot-coverage-mapping.py
python3 V2/ue/Tools/check-v2-random-exploration-bot.py
python3 V2/ue/Tools/check-v2-bot-harness.py
python3 V2/ue/Tools/check-v2-tests-module.py
python3 V2/ue/Tools/check-v2-ci-workflow.py
python3 -m json.tool V2/ue/Content/V2/QA/BotCoverageMapping_V2_Contract.json
python3 -m json.tool V2/ue/Build/Horde/v2-buildgraph-job.json
python3 V2/tools/validate-v2-docs.py
```
