Wouldn’t it make sense to use the payment hash or the invoice itself for verification instead of relying on the preimage?
It would require querying the node, but it would simplify the client-side logic. In my view, that makes the design more AI-friendly and differentiates it from L402.
I can see the advantages of separating verify / settle. Using hold invoices would be a natural fit.