Every fiat-to-sat conversion returned null. `convert()` looked up the
response by the `to` key it had passed in, but LNbits does not echo that
key: it always names the satoshi amount "sats" (plural), whatever the
caller asked for. So `data["sat"]` missed and the function fell through
to its null path.
POST {from_: "EUR", to: "sat", amount: 5.50}
-> {"EUR": 5.5, "sats": 7298, "BTC": 7.298e-05}
This silently broke the one shipped caller that converts in that
direction: `PurchaseTicketDialog` computes `lightningSats` via
`convert(amount, currency, 'sat')`, so it was always null.
`PriceConversionPreview` has a `to === 'sat'` formatting branch that
could never be reached either.
Key selection moves into `pickConverted`, which maps sat/sats onto the
plural key the server actually uses and keeps the previous fallbacks.
The reverse direction (sat to fiat) already worked and is unchanged.
Verified against the live LNbits:
EUR -> sat (5.50): old=null new=7299 FIXED
USD -> sat (10): old=null new=11588 FIXED
JPY -> sat (1000): old=null new=7360 FIXED
sat -> EUR (7295): old=5.4969 new=5.4969 unchanged