After playing around with javafx I came up with this.
I call this an engine, because the actual game logic is encoded using json/gson.
The used tower defence model is tightly coupled to the well known warcraft 3 td maps. So the damage system is based on my observations of playing such maps for too long time.