static Header[] extractHeaders(AirborneEvent record) {

        //Kafka Header -VALUES-
        String ifrVfrStatus = record.pairedIfrVfrStatus().toString();
        String scoreAsString = Double.toString(record.score());
        String epochTimeMs = Long.toString(record.time().toEpochMilli());

        Headers headers = new RecordHeaders()
            .add("ifrVfrStatus", ifrVfrStatus.getBytes()) //IFR-IFR, IFR-VFR, or VFR-VFR
            .add("date", record.eventDate().getBytes()) //e.g. 2020-03-27, YYYY-MM-DD
            .add("time", record.eventTimeOfDay().getBytes()) //e.g. HH:mm:ss.SSS
            .add("callsign_0", record.callsign(0).getBytes())
            .add("callsign_1", record.callsign(1).getBytes())
            .add("eventScore", scoreAsString.getBytes()) //notice, this double is actually stored as a byte[] that encodes a String
            .add("epochTimeMs", epochTimeMs.getBytes())
            .add("conflictAngle", record.conflictAngle().toString().getBytes()) //e.g. CROSSING, SAME, or OPPOSITE
            .add("schemaVer", record.schemaVersion().getBytes());

        return headers.toArray();
    }
@Test
    public void kafkaHeaderContainCorrectSchemaNumber() throws Exception {

        AirborneEvent event = AirborneEvent.parse(
            new FileReader(getResourceFile("scaryTrackOutput.json"))
        );

        Header[] headers = extractHeaders(event);

        Predicate<Header> isSchemaVerHeader = header -> header.key().equals("schemaVer");

        boolean thereIsASchemaVersionHeader = Stream.of(headers).anyMatch(isSchemaVerHeader);

        assertThat(thereIsASchemaVersionHeader, is(true));

        byte[] schemaBytes = Stream.of(headers).filter(isSchemaVerHeader)
            .findFirst()
            .get()
            .value();

        //Eventually, this schema number will change, when that happens we'll update this test
        assertThat(schemaBytes, is("3".getBytes()));
    }