im eventually going to write up a howto with script sample to make it more clear than what the git repo for luds (https://github.com/lnurl/luds) states.
Theres basically 4 calls..
1. Parse lightning address and make a call domain for lnurlp info with username to get callback, metadata, constraints
2. Make a call to the callback to request an invoice with amount and comment
3. Make a call to a node or use a library to decode the invoice, and verify amount, and hash are as expected
4. Finally make a call to node to pay the invoice, with timeout and fee limits set
The luds themself are defined here and the key ones are 1(basic), 6(payrequest), 12(comment), 16(pay identifier)