Picture-based legends?
How difficult would it be to have a piclegend(filename, margin) parameter that would load a PNG and carve it into the top of the character? I'm thinking that margin==0 would mean the picture scales to fill the key, margin==1 ensures at least a 1mm gap on each side (maintain aspect, so margins on various sides may be larger)...
I was trying to make a Commodore logo key (had to settle for "C=") and couldn't find it in any Unicode page (not surprising, really). If I could just provide a PNG, that would open up the door to many arbitrary keycaps.
OpenSCAD will open various image files into a heightmap object. The initial scaling looks insane, but ends up being straightforward for scaling: Each pixel is 1mm x 1mm in the XY plane, and each level of brightness is 1mm in the Z axis (so the object ranges from 0-255 mm tall). Black and white would be the only one needed for typical work, and could be treated as a text extrusion for carving. Adventurous users could attempt lithography with grayscales, but it would be on their shoulders to work out the details and image modifications needed to make it look sane.
I'm no expert on OpenSCAD, but the picture-based legend is doable. I'm not sure about the margin=1 type of specification being the right choice here for a few reasons. The biggest one is that using margin=X with non-square tops (think of a normal shift key) will just stretch/compress the image in one axis.
Something like this is going to get close to doing what you want:
scale([1, 1, 0.1])
surface(file = "picture.png", invert = true);
Though 1x1x0.1 aren't the dimensions you're seeking. It'll probably be closer to 10x10 or more, and depth will depend on your preferences.
Edited for code formatting