Update:

From discussions in channel, I see now that I misread this thread, which explains my confusion over why it was named $timer().name, as I thought $envvar().name was added because of $timer().name rather than the other way around. Since .name for $envvar() has existed from the beginning, maybe the solution is instead a new+optional parameter that forces the 1st parm to be seen as a name rather than detecting if it's numeric, so $envvar(%string,n) would work as expected with .name and .value regardless whether the varname held in %string was text or 0 or positive-numeric.