U32 mulChecked(U32 other) { var result = value * other.value; if (result > 4294967295) throw StateError('U32 multiplication overflow'); return U32(result); }