public int serialize(int offset, byte[] data) {
    int pos = 0;

    LittleEndian.putShort(data, 0 + offset, sid);
    LittleEndian.putShort(data, 2 + offset, (short) (getRecordSize() - 4));

    data[4 + offset + pos] = field_1_linkType;
    data[5 + offset + pos] = field_2_referenceType;
    LittleEndian.putShort(data, 6 + offset + pos, field_3_options);
    LittleEndian.putShort(data, 8 + offset + pos, field_4_indexNumberFmtRecord);
    pos += field_5_formulaOfLink.serializeField(pos + 10 + offset, data);

    return getRecordSize();
  }