encodeStringField function
Encode a string field (wire type 2): tag + varint(utf8_len) + utf8_bytes.
Proto3 rule: does not emit anything if value is empty.
Returns buffer with the field bytes appended.
Implementation
List<int> encodeStringField(List<int> buffer, int fieldNumber, String value) {
if (value.isEmpty) return buffer;
encodeTag(buffer, fieldNumber, _wireTypeLEN);
encodeString(buffer, value);
return buffer;
}