I hope your LSP client module ends up being reasonably isolated and reusable! I found that client support for LSP is the weakest part of the ecosystem. The story generally seems to be "the editor has a bespoke client and there is never a reason to use LSP from any other context".