The API (i.e Windows) does not matter... It's for the LCL/WS to adapt the value so it can go to the API. Also the API is also qt, gtk, cocoa ....
The property is expected to hold a single "character". The LCL uses Utf8.
So, I say, the property should be TUtf8Char.
As for any limitation to what can be set to the property:
- Some checks (such as the byte sequence to be valid utf8) can be done in the property setter.
- Subset checks may depend... If some OS accept a bigger set of chars.... Then that may be a runtime check, with some fallback, or some other solution.
Of course, the smallest common subset can be chosen, but what if the next WS to be added has a smaller subset?