Zero-extending widen, then reinterpret — always non-negative and exact for the same reason as toInt64.
Int128 toInt128() => Int128.unsafe(toUint128());