renderFile (relativeSourcePath, relativeTargetPath, scope) {
    const dir = getCallerPath()
    const sourcePath = path.resolve(dir, relativeSourcePath)
    const targetPath = this.resolve.app(relativeTargetPath)
    const rawCopy = !scope || Object.keys(scope).length === 0

    if (!fs.existsSync(sourcePath)) {
      warn()
      warn(`Extension(${ this.extId }): renderFile() - cannot locate ${ relativeSourcePath }. Skipping...\n`)
      return
    }
    if (fs.lstatSync(sourcePath).isDirectory()) {
      warn()
      warn(`Extension(${ this.extId }): renderFile() - "${ relativeSourcePath }" is a folder instead of a file. Skipping...\n`)
      return
    }

    this.#hooks.renderFiles.push({
      sourcePath,
      targetPath,
      rawCopy,
      scope,
      overwritePrompt: true
    })
  }
Render a file from extension template into devland
Needs a path (to a file) relative to the path of the file where renderFile() is called

@param {string} relativeSourcePath (file path relative to the folder from which the install script is called)
@param {string} relativeTargetPath (file path relative to the root of the app -- including filename!)
@param {object} scope (optional; rendering scope variables)