pub fn read_string(buf: &mut impl Buf) -> Result<String, ProtocolError>
Read a Minecraft protocol string (VarInt-prefixed UTF-8).
Returns an error if the string length is invalid or UTF-8 decoding fails.