I think it’s the best we have that HTTP already offers. By using headers we get a lot of support in things like ingress for differential routing so I think it must be either header or path based.
We COULD use a URL param but that seems odd in a POST… or maybe not?
i.e. PP = $wallet.example/alice
, URL to POST to for new invoice = https://wallet.example/alice?resource=invoice
I agree with your logic but I don’t agree that the media type should indicate the purpose, it indicates the type. i.e. If you do a GET and you want to get back STREAM credentials then ask for that type (irrespective of what you will use them for).