Here's a scenario though, that should give you an idea of improvements needed — conversion of the CCnG preset from ANSI to ISO:
- Start with GB: CCnG
- Click Shift, and press shift+left to reduce it to 1.25 u
- Click \ and move it into the gap next to shift with a lot of arrow key pressing, then reduce it to 1 u
- Now, \ is the wrong colour — without palette management, the only way to graphically get that key to be the correct colour is to copy and paste BOTH colour codes from the adjacent key (more technical folk will realise that you can move the JSON colour descriptor one place left)
- Click } and add the missing ] on the second row (ditto })
- Delete the enter key, as it is the wrong shape
- Click } again, then Add Key → Add 'ISO Enter' key — note that it gets added onto the wrong line; inserting a new key should aim to insert it as close as possible to the selection; you also have to do the colour dance malarkey to get it to be the correct colour, as there's no project colour palette.(At one point it added ISO enter to the end of the final row — that was odd, and I can't reproduce that.)
- Add 'Enter' as the line 1 text
- Add the CR symbol to line 2 … except you can't: the program could do with a common symbol picker to save messing with Character Map/Character Palette
- ISO has one more key; click ' (the key to the left of the missing key gap) and press insert to add it — again, the new key is added miles from where you wanted it
- Use ne0phyte's database-driven short-linking permalink system (including the duplicate prevention) as the permalinks you're using are ridiculously long and cumbersome; this would ease the problem of many features requiring more complex JSON code
- Warning dialog when doing something that would lose all your work, such as selecting a preset
- SVG export, to generate scalable diagrams for the wiki.
- Layers, so that you can swap between JIS, ISO and ANSI alternatives without needing to redo most of the keys
- Stock glyphs for keycaps for symbols not available in Unicode (e.g. Windows 95/XP/8 window keys, menu (application) key, possibly some of the European symbolic Mac legends, German "handbag" caps lock etc)
- Font choice (keyboard-wide for now — can go into the meta block of the JSON along with the version and colour palette)
- Maybe a "simple code" option that ignores all colours, fonts, etc, though having a palette would reduce the clutter a lot; ideally there would also be a way to indicate the typical two colour design without needing a palette at all, e.g. { ac: true } (alternate colour = enabled).
- The two lines of wrapped text legends (e.g. "Print Screen" or "Scroll Lock") are drawn too far apart, making it look like "Scroll" and "Lock" are two separate functions; this also completely gets in the way of ever writing "Print Screen / Sys Rq" on the same keycap
- Line 2 is drawn too low: the bottom of certain characters (e.g. [ ] and arrows) overrun the top of the keycap
- The keycap outline is slightly larger than the background fill at the corners; this is most notable with black keycaps
- The closest you can get to a black keyboard, is key colour = #222222, but you don't get black for the shadow, just a slightly darker grey — you cannot actually simulate a black keyboard effectively