I have written up sections of this in my own time with what fragments of time I have managed to slice out of being busy with life in general...

http://code.google.com/p/perception-ime/ is a current host of the source code that anyone can download and build for themselves at this point.

Initially I had only a keymap which was missing 4 keys,

I now have a functional Keymap which is viable but subject to change pending some OS Dev Team review process (I know nothing beyond the issue has been noted and is pending)
I hope to be informed of the results once they are available.

There is a main library spawning an internal process and registering with various subsystem libraries to make itself user-known and controllable,
One of these registrations is with input.device.

I'm currently re-working the logic of the "ExecInputHandler()" function that is registered with input.device.

Along with considerations of how to perform user-initiated translations of strings into single glyph selections for Japanese and other languages.

Chinese, Korean and Japanese Languages are currently presented,
ISO-2022-JP, ISO-2022-CN and ISO-2022-KR along with Shift_JIS Charset drivers are also presented in framework form.

From the above Languages and Charset drivers, only the Japanese.Language is "complete" with regards to Language support functions.
ISO-2022-JP still has some string encoding issues (0x00 bytes needing correct glyph octets written into the code).