Don't use floating-point representation for `amount`
Floating-point representations have potential for numeric inaccuracies and are generally avoided when handling financial transactions. The Rust standard library does not expose any types for arbitrary-precision numbers, so we should consider depending on a suitable library. This type will be exposed in the public API, so we may also consider offering multiple options with feature gates to maximize compatibility.
A few options that I found after a quick search, sorted by all-time downloads: