This is:
* a C library doing the Wayland bits and low-level logic
* a guile Scheme module wrapping the C library
* a guile Scheme script implementing high-level logic
It's all based on hooks, so eventually the WM could just load an init.scm from the your config where your can overwrite whatever handlers / functions you want. Kinda like how you can redefine emacs functionality.
And you could also just use the library itself and wrap it in whatever language you want (as long as it has a C FFI).