TempleOS has a string indirection feature implemented with the same hash symbol 
table entry as #define macros, HTT_DEFINE_STR.  Support for string lists is also 
provided, but it's not very efficient, though, you can make a hash table with a 
list using HashDefineLstAdd().  See ::/Adam/DolDoc/DocInit.HC.

If you have an @ as the first char of a define list entry, it is an alias for 
the prev entry num.

Each task can load its own Define strings.  Remember, when a Hash table is 
searched for a string, if it is not found, the parent task's table is searched.

The DolDoc framework supports text that changes based on entries in the task's 
symbol table.  Set a text entry with a D= arg, as in $TX,"",D="DD_MYSTRING"$.  
See ::/Demo/DolDoc/DefineStr.HC, ::/Adam/ADefine.HC and ::/Doc/MemOverview.DD.

See ::/Demo/Define.HC.