We have to use `read_property` and `write_property` for all property accessors, otherwise we'll end up with inconsistent behavior (like these timestamp methods that won't use the property cache).