Go's object API writes empty strings into the binary - this is different than the behavior of the C++ object api, which only writes strings if they are not empty. Strings do not support = null to become optional, since they're offsets anyway. I propose updating the behavior for Go to match C++. This would be a relatively simple change - is there any opposition to updating the behavior? I can make a PR.