interface EngineInterface
EngineInterface is the interface each engine must implement. All methods rely on a template name. A template name is a "logical" name for the template, and as such it does not refer to a path on the filesystem (in fact, the template can be stored anywhere, like in a database). The methods should accept any name. If the name is not an instance of TemplateReferenceInterface, a TemplateNameParserInterface should be used to convert the name to a TemplateReferenceInterfa