# Map Renderer Phase Plan ## Phase 1 Goal: tighten the current viewer flow without changing the map semantics. - remove the explicit manual build button because map selection and filter changes already trigger builds automatically - hide the viewport's "choose a detected map" message as soon as a map is selected and a build starts - add build feedback in the side panel with a spinner and a simple phase-based loading bar - remove visible tile seam lines and the synthetic background grid so the map reads as one surface - use a more efficient streamed visualization format for interactive tiles while keeping PNG as the final export format Phase 1 implementation choice: - interactive tiles switch from PNG to lossless WebP because it is broadly supported in current browsers and is more bandwidth-efficient for repeated server-rendered tile delivery - full-map download remains PNG so export quality and compatibility stay unchanged ## Phase 2 Goal: promote editor-only content from "baked into the raster" to interactive overlay objects. - keep the base map rendered as a flat server-generated tile surface - extract editor-only objects into a standalone overlay data stream - render those overlay items in the client as positioned interactive markers or sprites above the base map - on hover, slightly scale the hovered item and show a tooltip with its decoded metadata payload - improve roof detection before or during the overlay split because the current roof filtering still lets some roofs render when they should not - identify occluding helper geometry such as invisible walls and render those semitransparently so they remain legible without hiding too much of the map beneath them - fix pipe rendering because pipes currently are not showing up correctly - investigate force-field rendering because they appear yellow instead of the expected blue semitransparent look; this may be a debug-shape choice issue or a palette/color-rendering issue - likely revisit ScummVM Crusader handling in `D:\source\scummvm` to confirm what editor/debug records carry and how best to decode them for display Open questions for phase 2: - which editor-only families should become interactive overlays versus remain baked into the base render - what exact metadata fields are reliable enough to expose in the tooltip - whether some editor-only entries should be clustered, filtered, or toggled by family to keep dense maps usable