Seems like there's main two parts:
How do we make it intuitive for editors
Displaying template parameters in the text scales badly, is not a natural way of entering information, and generally scares away editors. My current best idea for solving this is copying TemplateData's method (click on the infobox template, it lets you open a form to edit template parameters), but have the template call code highlighted in source editor (), and make clicking that bring up a form to edit the parameters.
A bonus is storing the parameters separately makes it much easier to reuse the structured information.
What features does it need to be handle the major use cases
Essential:
- Single layer transclusion
- Template parameters
Important
- A way to conditionally hide parts of a template when a variable is not present.
- Possibly via a basic parser function for IF?
- Possibly by using the syntax for parameters so it's easy to specify which parts should only be shown if the parameter is included?
- Core magic words
- PAGENAME, PARENTS, CHILDREN, DOMAIN, some time/date ones?
Would be good:
- Multi layer transclusion
- Not certain about this, but not having it probably causes more problems than having it.
- More flexible scripting for complex templates
- The only really good implementation I know of is Scribunto
- MW got by with parser functions for a while. It worked, but it was ugly and terrible. Maybe a with some thought a parser function like solution could be made less bad.
- A wider collection of magic words
Wishlist:
- Use the structured data stored in templates to improve search
- Allow in-page display of structured data, like SMW's Inline Queries