Please give give me some perspective on the JupyterLab Python debugger

So it seems there must be a standard for talking to the interface, thus leaving it to the kernel developers, rather than Jupyter Lab, to make it work with their language.

This is a great question to ask because standards are a core part of Project Jupyter. The Jupyter debugger leverages the Debugger Adapter Protocol, extending it and wrapping in the kernel protocol as needed. The Jupyter protocol for kernels currently lives together with reference implmentation in Jupyter Client 8.6 — jupyter_client 8.6.0 documentation (yes, we know this may be confusing). Of specific interest might be