Macro is "not a callable object"

This one has me scratching my head:

object Host "somehost" {
  check_command = "dummy"
  ...
  vars.dummy_text = {{
    var host_name = macro("$host.name$")
    var critical_services = ["api", "cockpit", "home", "console", "shell"]
    var crit_names = []
    var warn_names = []
    for (svc in critical_services) {
      svc_state = get_service(host_name, svc).state
      if (svc_state == 2) {
        crit_names.add(svc)
      } else if (svc_state == 1) {
        warn_names.add(svc)
      }
    }
    var ok_names = critical_services - (crit_names + warn_names)
    var ok_text = "OK Services: " + ok_names.join(", ")
    var warn_text = "Warning Services: " + warn_names.join(", ")
    var crit_text = "CRITICAL Services: " + crit_names.join(", ")
    var status_text = ok_text + "\n" + warn_text + "\n" + crit_text + "\n" + host_name
    return status_text
  }}
}

And if I then call this on the cli:

get_host("somehost").vars.dummy_text()
Location: in /etc/icinga2/zones.d/somehost/somehost.conf: 31:21-31:40
/etc/icinga2/zones.d/somehost/somehost.conf(30):   vars.dummy_text = {{
/etc/icinga2/zones.d/somehost/somehost.conf(31):     var host_name = macro("$host.name$")
                                                                     ^^^^^^^^^^^^^^^^^^^^
/etc/icinga2/zones.d/somehost/somehost.conf(32):     var critical_services = ["api", "cockpit", "home", "console", "shell"]
/etc/icinga2/zones.d/somehost/somehost.conf(33):     var crit_names = []
/etc/icinga2/zones.d/somehost/somehost.conf:
                                                                  ^^^^^^^^^^^^^^^^^^^^
Argument is not a callable object.

If I refactor it using regular lambda syntax with use, it works, eg.

vars.dummy_text = () use(name) => { var host_name = name....}

I’ve triple-checked the docs on macro to make sure that I can call it from an abbreviated lambda that’s used for assigning to a custom variable. I’ve used macro in a Service’s custom variable lambda without issue, and the docs show plenty of examples of this being done on a Host… But somehow, this one is not callable?

Am I missing something?