Consider strong int types instead of aliasing int types
We have certain aliases (versions, method ids, etc.) for integer types that are parts of ABI. This may result in some unexpected implicit conversions as well as in problems with function overloading. Consider using strong int types (classes, enums, etc.) instead for strong typing.