@Test void ignoresNull_endpoint_topLevelFields() {
    String json =
        """
        {
          "traceId": "6b221d5bc9e6496c",
          "id": "6b221d5bc9e6496c",
          "binaryAnnotations": [
            {
              "key": "lc",
              "value": "",
              "endpoint": {
                "serviceName": null,
            "ipv4": "127.0.0.1",
                "ipv6": null,
                "port": null
              }
            }
          ]
        }
        """;

    assertThat(SpanBytesDecoder.JSON_V1.decodeOne(json.getBytes(UTF_8)).localEndpoint())
        .isEqualTo(Endpoint.newBuilder().ip("127.0.0.1").build());
  }
Particular, thrift can mistake malformed content as a huge list. Let's not blow up.
zipkin/src/test/java/zipkin2/codec/V1SpanBytesDecoderTest.java