Starting of Freecell Solver 1.0.0, FCS had a set of functions called freecell_solver_user_ (after their prefix) which were meant for integration into a larger software needing solving capabilities.
When Stephan Kulow integrated Freecell Solver into kpat (a solitaire suite for KDE), he did not use it, because it did not give him everything he needed. Instead, he used the more basic internal functions.
I told him that I "would sleep better at night" knowing that fcs_user_ will be used, and asked him to implement the missing parts himself, and send me the patch. He did.
Markus Oberhumer (of PySol fame), created a Python interface for the library, and again sent me some functions he wrote.
Eventually, I converted the command line executable itself to use fcs_user (while adding a lot of functions in the process) to make sure I give the embedding application all of the functionality that I use.
I also ended up creating an API to analyse a command line and configure a solver instance accordingly.
Sometimes later, I found it encouraging that Dave Wilkinson, an engineer who worked on Freecell 3D, was able to integrate fcs_user_ without my help, and just informed me of its release.