@Test void niceErrorOnNonStringTagValue() {
    String json = """
      {
        "traceId": "6b221d5bc9e6496c",
        "name": "get-traces",
        "id": "6b221d5bc9e6496c",
        "tags": {
          "error": true
        }
      }
      """;

    assertThatThrownBy(() -> SpanBytesDecoder.JSON_V2.decodeOne(json.getBytes(UTF_8)))
      .hasMessageContaining("Expected a string but was BOOLEAN");
  }
Particular, thrift can mistake malformed content as a huge list. Let's not blow up.
zipkin/src/test/java/zipkin2/codec/SpanBytesDecoderTest.java