Also, this almost certainly won't break anything _before_ we switch to jsonobject-backed, since this just makes current behavior more explicit. There is a chance that when we do switch, there will be another field type (`IntegerProperty` or whatever) that we also need to special-case to convert to an int, but that wasn't caught by any tests