myDiagram.nodeTemplate =
$(go.Node, "Spot",
{ selectionObjectName: "BODY" },
$(go.Panel, "Spot",
{ alignmentFocusName: "MAIN", background: "lightgray", pickable: false },
$(go.Shape, { name: "MAIN", opacity: 0.0 },
new go.Binding("desiredSize", "size", go.Size.parse)),
$(go.TextBlock,
{ alignment: go.Spot.TopLeft, alignmentFocus: go.Spot.BottomRight, margin: 8 },
new go.Binding("text")),
$(go.TextBlock,
{ alignment: go.Spot.BottomRight, alignmentFocus: go.Spot.TopLeft },
new go.Binding("text", "text2"))
),
$(go.Shape,
{ isPanelMain: true, name: "BODY", fill: "lightgreen" },
new go.Binding("fill", "color"),
new go.Binding("desiredSize", "size", go.Size.parse)),
);
with this data:
{ key: 1, text: "Alpha", color: "lightblue", text2: "at bottom right", size: "100 50" },
produces:

with what I believe is the non-interactive behavior that you’re looking for with the non-pickable Panel that has two TextBlocks and a lightgray background.
Note how the main element of the “Spot” Node is not the first element, so that it is in front of the nested “Spot” Panel. This requires setting GraphObject.isPanelMain to true.
In order to line up the nested “Spot” Panel with the Node’s main element, note how it uses the new-in-version-1.7 property Panel.alignmentFocusName, so that the default go.Spot.Center
alignment focus is centered in the “MAIN” element rather than in the whole “Spot” Panel.