@Test void skipsIncompleteEndpoint() {
    String json =
        """
        {
          "traceId": "6b221d5bc9e6496c",
          "id": "6b221d5bc9e6496c",
          "binaryAnnotations": [
            {
              "key": "lc",
              "value": "",
              "endpoint": {
                "serviceName": null,
                "ipv4": null,
                "ipv6": null,
                "port": null
              }
            }
          ]
        }
        """;
    assertThat(SpanBytesDecoder.JSON_V1.decodeOne(json.getBytes(UTF_8)).localEndpoint()).isNull();
    json =
      """
      {
        "traceId": "6b221d5bc9e6496c",
        "id": "6b221d5bc9e6496c",
        "binaryAnnotations": [
          {
            "key": "lc",
            "value": "",
            "endpoint": {
            }
          }
        ]
      }
      """;
    assertThat(SpanBytesDecoder.JSON_V1.decodeOne(json.getBytes(UTF_8)).localEndpoint()).isNull();
  }
Particular, thrift can mistake malformed content as a huge list. Let's not blow up.
zipkin/src/test/java/zipkin2/codec/V1SpanBytesDecoderTest.java