Debug Parse Breakdown
data class DebugParseBreakdown(val featureCount: Int, val clusteredFeatureCount: Int?, val decodeAllMs: Long, val convertMs: Long, val clusterMs: Long)
Demo/debug-only: breakdown of one parseVectorTile call. decodeAllMs is the initial whole-tile com.xweather.mapsgl.mvt.MvtReader.decode used only to discover layer names; convertMs is the per-layer decode-plus-Feature-conversion loop (usually the expensive part for point-heavy layers); clusterMs is only nonzero when point de-duplication (>3000 point features) ran.