The games are defined through a JSON-based language. As you work on a game we generate TypeScript types on the fly, meaning you get game-specific code completion to help you out.
Here for example we're editing the Amazons data file, and when we want to refer to a layer our editor can show us what the valid references are for this particular game:
In earlier generations the JSON definitions of a game was fed into the app, and voilà - now you can play the game. However, this meant that performance took a hit whenever we expanded the language grammar, which didn't scale.
The latest generation of Chessicals therefore generates JavaSript code from each JSON definitions, writing code optimised for the inidividual games.