Preimage alone is sufficient for our current implementation — we verify it hashes to the payment_hash in the invoice before serving the response. We do check against our node's settled invoices to prevent replays. Longer-term, BOLT-12 offers cleaner receipts, but for now the preimage + payment_has...