Decodes from byteOffset. First byte is the hasValue flag.
byteOffset
T? read(ByteData bytes, int byteOffset);