code: func (t Renderer) Execute(wr io.Writer, obj data.Map) (err error) {
  	if t.tofu == nil || t.tofu.registry == nil {
  		return errors.New("Template Registry required")
  	}
  	if t.name == "" {
  		return errors.New("Template name required")
  	}
  
  	var tmpl, ok = t.tofu.registry.Template(t.name)
  	if !ok {
  		return ErrTemplateNotFound
  	}
  
  	var autoescapeMode = tmpl.Namespace.Autoescape
  	if autoescapeMode == ast.AutoescapeUnspecified {
  		autoescapeMode = ast.AutoescapeOn
  	}
  
  	var initialScope = newScope(obj)
  	initialScope.enter()
  
  	state := &state{
  		tmpl:       tmpl,
  		registry:   *t.tofu.registry,
  		namespace:  tmpl.Namespace.Name,
  		autoescape: autoescapeMode,
  		wr:         wr,
  		context:    initialScope,
  		ij:         t.ij,
  		msgs:       t.msgs,
  	}
  	defer state.errRecover(&err)
  	state.walk(tmpl.Node)
  	return
  }
docs: // Execute applies a parsed template to the specified data object,
  // and writes the output to wr.