parseValue = (value, task) => {
  const reVar = /\$[\w[\].{}]+/gi;

  if (!value) return "";

  // value can refer to structures, not only texts, so just replace wouldn't be enough
  if (value.match(reVar)?.[0] === value) {
    return get(task, value.slice(1)) ?? "";
  }

  return value.replace(reVar, (v) => get(task, v.slice(1) ?? ""));
}
Simple way to retrieve linked data in `value` param from task
Works only for prefixed values ($image); non-prefixed values left as is
It's possible to add some text which will be left untouched; that's useful for
visual Text tags to display some additional info ("Title: $title")
@param {string} value param
@param {object} task