I think you should continue down the path you started - by having special keyword expansion inside on our template model.
Then just have keywords for " " (indentation - spaces/tabs), "{" (incl. an optional newline character) and so on.
Yes, the templates will be a bit more unreadable to a human, but when we consider some of the requirements down the road - like embedding specification references inside the method definitions - I think that the tradeoff is ok.