95a26c9ef09eae3c8d6290eb92712a4c7f31d9c6
hiram
  Tue Nov 24 12:20:03 2020 -0800
prepare for future with different track types and different item data structures refs #21980

diff --git src/hg/hgTracks/wigTrack.c src/hg/hgTracks/wigTrack.c
index 488f7b1..9653a38 100644
--- src/hg/hgTracks/wigTrack.c
+++ src/hg/hgTracks/wigTrack.c
@@ -1426,43 +1426,46 @@
 struct wigMouseOver *mouseOverData = graphPreDrawContainer(preContainer,
     preDrawZero, width, tg, hvg, xOff, yOff,
     graphUpperLimit, graphLowerLimit, graphRange, vis, wigCart);
 
 drawZeroLine(vis, wigCart->horizontalGrid,
     graphUpperLimit, graphLowerLimit,
     hvg, xOff, yOff, width, tg->lineHeight);
 
 drawArbitraryYLine(vis, (enum wiggleGridOptEnum)wigCart->yLineOnOff,
     graphUpperLimit, graphLowerLimit,
     hvg, xOff, yOff, width, tg->lineHeight, wigCart->yLineMark, graphRange,
     wigCart->yLineOnOff);
 
 if (enableMouseOver && mouseOverData)
     {
-    jsonWriteListStart(mouseOverJson, tg->track);
+    jsonWriteObjectStart(mouseOverJson, tg->track);
+    jsonWriteString(mouseOverJson, "t", tg->tdb->type);
+    jsonWriteListStart(mouseOverJson, "d");
     slReverse(&mouseOverData);
     struct wigMouseOver *dataItem = mouseOverData;
     for (; dataItem; dataItem = dataItem->next)
         {
         jsonWriteObjectStart(mouseOverJson, NULL);
         jsonWriteNumber(mouseOverJson, "x1", (long long)dataItem->x1);
         jsonWriteNumber(mouseOverJson, "x2", (long long)dataItem->x2);
         jsonWriteDouble(mouseOverJson, "v", dataItem->value);
         jsonWriteNumber(mouseOverJson, "c", dataItem->valueCount);
         jsonWriteObjectEnd(mouseOverJson);
         }
     jsonWriteListEnd(mouseOverJson);
+    jsonWriteObjectEnd(mouseOverJson);
     slFreeList(&mouseOverData);
     // hidden element to pass along jsonUrl file name and also the trigger
     // that this track has data to display.
     hPrintf("<div id='mouseOver_%s' name='%s' class='hiddenText mouseOverData' jsonUrl='%s'></div>\n", tg->track, tg->track, mouseOverJsonFile->forCgi);
     }
 // Might need something like this later for other purposes
 // else if (enableMouseOver)       // system enabled, but no data for this track
 //     {
     /* signal to indicate zoom in required to see data */
 //     hPrintf("<div id='mouseOver_%s' name='%s' class='hiddenText mouseOverData'></div>\n", tg->track, tg->track);
 //     }
 
 wigMapSelf(tg, hvg, seqStart, seqEnd, xOff, yOff, width);
 }