Hi, I think the question to ask is what you want to enable with Guile. Probably you’ll want to export some of the functions and data types of Chess to Scheme, which can be done using the libguile C interface.
Another question is whether you want to embed Guile into Chess, or whether you want to extend Guile with Chess. In the latter case, Chess would essentially be a Scheme library. This is best because it opens for more possibilities, and makes it easier to work with the Scheme API of Chess. More info on this trade-off at <https://twistedmatrix.com/users/glyph/rant/extendit.html>. Since you want Guile to be an optional dependency, embedding may be more appropriate, though. HTH, Ludo’.