It is defined in the spec as a number, not an integer.
ruma-client-api contains serializable types for the requests and responses for each endpoint in the Matrix client API specification. These types can be shared by client and server code.