# Lappy v0.1.1 — course selection and fitted maps

## Simulator course catalog

Track scenarios previously rebuilt their test catalog with only SIM CIRCUIT and SIM RUN. This hid the five factory courses when following the documented Track / no course → COURSES path. Every runtime Track scenario now initializes the five China templates; generic synthetic scenarios append the two SIM courses. COURSES shows Tianma, Zhejiang and Zhuhai, then MORE shows Shanghai GP, Ningbo and SIM CIRCUIT; a further MORE reaches SIM RUN. All five real courses can be selected with USE, disarmed.

Choosing a scenario still starts a fresh desktop Track test session/catalog, as before. Custom desktop courses and computed Track records are reset by a scenario change. The firmware catalog/storage behavior is unchanged. Use a matching China GPS lap scenario to drive that course: selecting a course in the device UI does not relocate the generic Live/SIM GPS stream. Explicit historical artboard fixtures remain isolated from runtime scenarios.

## Map layout

Real route maps now use centered bounds and uniform scale within their existing panels. A 1-degree search over 180 orientations chooses the largest fit, retaining north-up on ties. The transform is cached until the route or panel size changes; it does not follow vehicle heading or spin while driving. This also handles diagonal long shapes that a 0/90-only choice would leave unnecessarily small.

Routes, gate locations, gate direction strokes, the vehicle dot and real gate-edit cursor share this transform. Gate strokes remain readable and cross the route tangent. Review uses its own panel dimensions. Single-point and empty drafts are safe. Course coordinates, geometry identities, stored PBs, timing control lines and raw GPS are unchanged.

The Tianma outline is roughly 207 pixels wide in the driving panel, instead of approximately 93 pixels in the old renderer. Other shapes grow as far as their aspect ratio permits; they are never stretched. The generated five-course comparison image is in `design/screenshots/v0.1.1/map-comparison.png` (before on the left, after on the right).

## Validation

- Both ESP32-S3 board profiles compile; this patch has not been flashed or physically checked.
- Native interaction tests reproduce synthetic lap → no course → COURSES and select each of the five real courses, and verify factory entries survive all tested generic/recon/P2P/poor-GPS setups.
- Portable sanitizer checks cover empty/point/duplicate, vertical/horizontal/diagonal routes, exact bounds/centering, aspect preservation, deterministic rotation and all five China courses in driving/review panels.
- Existing decoder, Street, Drag, Track, persistence, shutdown, calendar, 13 Python checks, 45 real-geometry China replays and 63 Drag estimator cases pass.
- All 113 existing screens plus 13 new regression screens render with text-bound and shared-header checks (126 total). The new screens cover all three no-course catalog pages and the real gate/width editor for every China course. 106 prior screens are byte-identical to v0.1.0. Expected changes: the six engine-backed maps and Settings' version text. Street/Drag, other prior Track views, header and settings controls retain their prior appearance.
- The native app was checked through the reported no-course path: both catalog pages, selecting Ningbo, and a moving Tianma map.

## Satellite policy

Six used satellites remains policy 1 for both timing engines; no threshold is relaxed in this map/catalog fix. See [GPS quality review](GPS_QUALITY_REVIEW_v0.1.1.md). Source-reviewed/replay-tested China courses still require physical acceptance; their gates are approximate.
