The US embassy in Havana more than halved its staff in 2017 when diplomats complained of headaches,
nausea and other ailments after hearing penetrating noises in their homes and nearby hotels.

The mysterious wave of illness fuelled speculation that the staff had been targeted by an acoustic weapon.
It was an explanation that appeared to gain weight when an audio recording of a persistent,
high-pitched drone made by US personnel in Cuba was released to the Associated Press.

But a fresh analysis of the audio recording has revealed what scientists in the UK and the US now believe is the true source of the piercing din:
it is the song of the Indies short-tailed cricket, known formally as Anurogryllus celerinictus.

I'm just a bit undecided in which direction should go on with the configuration format.
originally I had planned to do everything in JSON. except for the very high-performance things, this with SQLite (fastest db out there).
The templates are transported to the SQL database in JSON format with positions marker. that is very performance.
I've also started the configuration a bit with Jason-like format (this is an associative array autohotkey.com/docs/Objects.htm#Usage_Associative_Arrays).AHK-Studio is using XML. INI i dont want use.
I also think maybe no surface to make and only a JSON file (there is a begun surface into the trayMenu).
and some data I save into the win-registry.
I do not like using so much different data formats at the same time so well.

maybe there is a good json editor for Windows? so I do not have to build my own configuration interface?
and is it reasonable that the user simply uses a text editor?

many thoughts today and I do not know exactly where to go. sometimes it's a good break for a little time.

[{"listID":{"len":3,"pos":158},"sql":"SELECT distinct ltrim(word), ltrim(worddescription), ltrim(wordreplacement)
FROM Words
WHERE word LIKE 's%' ESCAPE '~'
and ActionListID > 0
order by ActionListID, word
LIMIT 2;
-- seLECT * FROM ActionLists l where l.ActionList like "%isNotAProject%";
-- An underscore ("_") in the LIKE pattern matches any single character in the string.
-- you need to reload the script after each change. be careful by changing the ware statment. its will later parsed by script.
-- prp probab ür probab pro proba qahk s changin pro probab pro probab p proba","word":{"len":1,"pos":117}},{"listID":{"len":3,"pos":166},"sql":"SELECT distinct ltrim(word), ltrim(worddescription), ltrim(wordreplacement)
FROM Words
WHERE wordindexed GLOB upper('c') || '*'
and ActionListID > 0
order by ActionListID, ltrim(word)
LIMIT 8
-- you need to reload the script after each change. be careful by changing the ware statment. its will later parsed by script.
-- prp probab ür probab pro proba qahk s changin pro probab pro probab p proba","word":{"len":1,"pos":130}},{"listID":{"len":3,"pos":132},"sql":"SELECT distinct word, worddescription, wordreplacement
FROM Words
WHERE wordindexed LIKE 's%'
and ActionListID > 0
order by ActionListID, ROWID asc
LIMIT 10
-- you need to reload the script after each change. be careful by changing the ware statment. its will later parsed by script.
","word":{"len":1,"pos":103}},{"listID":{"len":3,"pos":133},"sql":"SELECT distinct word, worddescription, wordreplacement
FROM Words
WHERE wordindexed GLOB '%s%'
and ActionListID > 0
order by ActionListID, ROWID desc
LIMIT 10
-- you need to reload the script after each change. be careful by changing the ware statment. its will later parsed by script.
","word":{"len":1,"pos":104}},{"listID":{"len":3,"pos":118},"sql":"SELECT distinct word, worddescription, wordreplacement
FROM Words
WHERE wordindexed like '%s%'
and ActionListID > 0
LIMIT 10
-- you need to reload the script after each change. be careful by changing the ware statment. its will later parsed by script.
","word":{"len":1,"pos":94}},{"listID":,"sql":"SELECT distinct word, worddescription, wordreplacement
FROM Words
WHERE wordindexed like 's%'
LIMIT 10
-- you need to reload the script after each change. be careful by changing the ware statment. its will later parsed by script.
","word":{"len":1,"pos":93}},{"listID":,"sql":"SELECT distinct word, worddescription, wordreplacement
FROM Words
WHERE wordindexed like '%s%'
LIMIT 10
-- you need to reload the script after each change. be careful by changing the ware statment. its will later parsed by script.
","word":{"len":1,"pos":94}}]

I slept restlessly tonight and thought about it and I think that i use this Associative_Arrays autohotkey.com/docs/Objects.htm#Usage_Associative_Arrays
I find this short to write down and more beautiful than XML and JXML. and looks shorter then JSON (but is very similar).
with my little converter I think now also very nice to edit (not all in one line).

Of course I have then no menu navigation and tooltip comments in the config file... or so. but if the user is not a complete idiot... I think user can understand that anyway.
and for the few changes via the menu I'll just parse that config file with regular expressions.
With that, I did not lose sight of a goal, not use a graphics user interface as far as possible, so stay most as possible interoperabel.