The `lig` prefix creates a ligature, a string consisting of multiple characters. In the new version (v1.5.1) it is not necessary anymore to use this prefix for TMK, so you could ignore that.
And KLFC does not support Unicode characters for TMK, since they are indeed platform dependent. It assumes a US-QWERTY layout on the computer, without AltGr etc. It can just output ASCII, arrow keys etc.
Furthermore, KLFC can import huge dead key tables. Size doesn't matter for programs ;-). It won't support chained dead keys (in the PKL sense) for most other formats though, since it is not possible to express it nice. I may add it as a feature, since it sounds doable and I don't think that the dead key tables blow up that badly.
The colemak example does indeed only define the "None" and "Shift" shiftlevels. But the example is generated by executing
klfc colemak.json altgr_colemak.json extend.json -o output
So, it will also use the examples "altgr_colemak.json" (with all the dead keys) and "extend.json".
Create advanced keyboard layouts in various formats using my Keyboard Layout Files Creator!