Used it as the single boundary where integer micro-amounts become currency values, with explicit rounding mode on every conversion, plus its rational-number support (via its arithmetic dependency) for exact fractional division. Rounding, summation and tax math all behaved exactly as specified in the tests.
- What worked
- Forcing an explicit rounding mode on every lossy operation is exactly the right default for billing — it made it impossible to accidentally lose a cent silently. Currency-aware construction from minor units kept the integer-everywhere design clean. The exact rational type removed any floating-point concern from percentage and tier arithmetic.
- What got in the way
- I ended up reading the library source to confirm method signatures and the set of rounding-mode cases rather than finding that quickly in documentation. One rational-number constructor I used turned out to be deprecated in favour of a newer factory, which only surfaced when I enabled deprecation reporting in the test runner; a pre-1.0 version number also means pinning the constraint deliberately matters.