What the model read, and whether it was allowed to count

Every donation below was read by Gemini and then checked before it was allowed near the ledger. Pick a message to see what the model returned, which characters it says it read the amount from, and what the check decided. Nothing here is illustrative: these are recorded replies from a real run.

The failures the model did not happen to produce

A run of six honest messages does not exercise the check. These are the cases the unit tests cover, so the behaviour is pinned whether or not a model ever produces it. They are test fixtures, not model output.

MessageModel claimsCheck says
sending some money for the coats 250 TRY
quote "250 TRY"
Quote does not occur in the message. The model wrote it rather than read it.
I sent 40 EUR today 1400 TRY
quote "40 EUR"
Quote says 40 but amount says 1400. A conversion the ledger never asked for.
bagis 1.250 TL 1.25 TRY
quote "1.250 TL"
Three digits after a separator is grouping, not a decimal. The amount is 1250.
[a blurry receipt photo] read once 1200 TRY
read again 120 TRY
Two reads disagreed. No quote is possible on an image, so agreement is the check.