In the current implementation, users manually manipulate object fields, because that was quicker to implement.
Ideally, it should be more protobuf-style, with getters, setters, and existence checkers.
This will also make it easier to provide things such as optionals and one-ofs