(promise
(pattern "<indirect:any-living>")
(pattern "<string> <indirect:any-living>")
(pattern "<indirect:any-living> <string>")
(targeted
(arguments
(arguments #)
(self "You promise $hcname$ $arg$.")
(target "$mcname$ promises you $arg$.")
(rest "$mcname$ promises $hcname$ something.")
)
)
)