Do Z: variables supports strings?

Reading the documentation, it’s clear L: variables don’t support anything
other than numbers, but this was common knowledge anyway. But what about Z:
variables ? The docs don’t say anything against using strings, so I tried, and
it almost worked, suggesting the intention IS to support strings too, but
they don’t seem to work correctly. For example, this Javascript code works:

SimVar.SetSimVarValue( "Z:MyVariable", "number", 123 );
let n = SimVar.GetSimVarValue( "Z:MyVariable", "number" );

n is set to 123, as expected. However, doing this:

SimVar.SetSimVarValue( "Z:MyVariable", "string", "abc" );
let n = SimVar.GetSimVarValue( "Z:MyVariable", "string" );

results in n being set to a string of value “0.”. Using the CoherentGT
Debugger and placing a breakpoint inside SimVar.JS, the code does recognize
the variable to be a string, since it enters in the case “unit_string” at line
132, calling the Simvars.getValueReg_String function. However, the output
variable is, in fact, “0.”, instead of the string it should be set to. Note
that, I get the same result by using executeCalculatorCode from C++ WASM, like

execute_calculator_code( "abc (>Z:MyVariable,string)", nullptr, nullptr, &result; );
execute_calculator_code( "(Z:MyVariable,string)", nullptr, nullptr, &result; );

result contains “0.” on exit. Is this the intended behavior, or it’s a bug ?
It would be very useful to have a custom variable that can accept string

So far all L:VARS don’t support string values having the same behavior you
describe above, it seems to me from your results Z:Vars are the same… Shame…
It would be nice to have string vals on some vars. S.