It isn't clear to me how hardware wallets interact with software clients. Is there a standard defined for this? Is it similar to signing on an offline computer and then transmitting a signed message via a different online computer? Or (I hope not) do software authors have to write support for individual hardware wallets?
The tightest integration would be from the last option, but I'm wondering if there is a more manual approach similar to the "sign on the offline computer" workflow.