Lua has a single numerical type, Lua numbers. There is no distinction between integers and floats. So we always convert Lua numbers into integer replies, removing the decimal part of the number if any.
It turned out that it wasn’t a problem with rounding in Lua script. Lua script gets already rounded values.
Moreover, it’s not a problem with rounding at all. Unrounded seconds might be used, and it would be possible to receive a 429 response with Retry-After: 0 anyway.