Template Configuration Design

Does it make sense for a template to have an ID? Initially, the argument for a template.id was for symmetry with variable.id. However, perhaps a user might want to bookmark the URL for a specific template in order to come back to that part of the form later? This could be useful for very involved form filling wizards. At any rate, the template.id should be optional.

We should eventually add support for template scripts. This will make it easier to make step by step wizards where each step runs a script. The script takes whatever is in the input_folder and saves files in any of the step folders (input, output, log, debug). The script can update input variables and thus affect which template appears next. From a design perspective, I want to avoid goto statements to prevent spaghetti template logic.

input:
  templates:
    - id: a
      script:
        path: a.py
    - id: b
      script:
        path: b.py
    - id: c
      script:
        path: c.py
      expression: a < b
    - id: d