I'm now focusing on including the core logic for the language specific targets, starting with Japanese.Language support (I've got this actively running a test build while typing this entry...)
Chinese and Korean Language modules are also templated and showing debugging messages.
Currently the framework is setup for the major functionality to be within a central core library and any language specific modes and chording recognition to be within a language specific hook that is registered with Perception-IME when the machine starts.
Additionally due to existing design goals, the IME will startup and be actively connected to the OS once the Locale preference settings are updated for an IME expanded Language library to be used as the system-wide primary preferred language.
There is currently very little or no difference in requirements for any of the Amiga OS family to limit the IME from being run on any branch.
AmigaOS 3.x would need an input.device update along with expanded Text Rendering in graphics.library,
AmigaOS 4.x has the required changes already listed as "To Do" within the OS Developer group for when a member can connect known pieces together (this is my own ?flawed? understanding of the sitaution at this time).
MorphOS would appear to have some parts in place and also requires some core developer time to confirm/modify input.device arrangements there.
(I have no knowledge beyond an abstraction after reading documentation).
AROS is the most feature complete and also being "open source" would provide a good basis to build towards 3.x/MOS targets ...
Now for the API...
I am currently working within Language libraries registering a hook through creation of a "LanguageContext" handle which also includes a "struct TagItem" array/vector of entries.
I have deliberately pre-initialized a set of TAG_USER+N TagItems within the vector so the ID's can be declared in the Libraries/Perception.h Include file.
This also allows for each individual language to expand on the core attributes which are TagID listed with additional TagID attributes of their own.
Each Language may (and is encouraged to) use the additional TagID values presented as required within the LanguageContextHook function.
It is also possible to use Language specific structures by Tagging them as an extended Attribute as well.
Perception-IME will only make use of the Include defined attributes.
Now... in the next update I *hope* to actually type some Hiragana (possibly Katakana as well) directly from within TimberWolf on AmigaOS 4.x ...