The Minsky project embeds the C++ code as a node addon. A custom
descriptor is provided to generate Typescript binding that follow as
much as possible the C++ type system, to allow compile time checking
of the use of the reflection API. Most of the code can be found in the
RESTService/addon.cc
file, but it is complicated by the need
for threading to avoid blocking the node calling thread, callbacks
into node and general Node API set up.