docs: public void replace(CharSequence text, Appendable out) throws IOException
      {
          int idx = CharSequences.indexOf(text, "${");
          if (idx != -1)
          {
              out.append(text.subSequence(0, idx));
              int end = findEnd(text, idx+2);
              String key = replace(text.subSequence(idx+2, end));
              out.append(map(key));
              out.append(replace(text.subSequence(end+1, text.length())));
              
          }
          else
          {
              out.append(text);
          }
      }