If we do this (I would love to see at least a usable prototype as a base to make decisions) we should probably track progress via a Github project.
To implement the protocol itself, the easiest thing would be to steal some other editor's code for this. One then has to propagate some events from Geany to LSP - most importantly notifications about changes to the current document. This information can be incremental but for such a prototype it could be brute-force sending the whole document to LSP after every typed letter.