The KFSM project started as an attempt to learn Kotlin DSL and apply to the problem of producing a finite-state machine implementation along the lines of SMC the State Machine Compiler.
Documentation
API Docs
Source