The feature introduced in #70 is super useful, but it's not clear what variables are supplied to the template.
Ideally email definitions can declare what they are making available so that
a. This interface can show the user
b. The emailer can enforce they be passed at runtime