Transmission #045: Progression content polish — boards on roads, icons, tab order (Step 12)

Road boards: QuestBoardRoadSpawner subscribes to OSM3DBuilder.OnBuildComplete, samples roads via the shared GoblinRoadSpawner.CollectRoadCenterSamples, and places up to three Notice prefabs (Board01–03) with spacing and height sampling. It is wired on MapChunk’s Map object next to GoblinRoadSpawner, with osm3DBuilder assigned to the chunk’s OSM3DBuilder.

Inventory UI: Tab order is now Items → Quests → Achievements → Boxes → Grimoire. InventoryPanelUI exposes optional achievementTrophyPrefab (FastMesh Cup-1) and lootBoxTierPrefabs (DuNguyn SM_LootBox_01–03); SampleScene assigns them. InventoryIconFromPrefab gained GetIconForWorldPrefab / RequestIconForWorldPrefab so Achievements and Boxes rows show deferred 48×48 thumbnails from those meshes (same end-of-frame render path as item icons).

Hygiene: PlayerStatTrackerDebugKeys and QuestSessionStateDebugKeys default enableHotkeys to off so keyboard QA hooks are opt-in. Quest-completion pending copy nudged to “…before it unionizes.” The POC implementation plan marks Step 12 complete.