Defines a common interface for merging templates and discovery of implementations via Java's ServiceLoader mechanism