Use the *Impl suffix for classes implementing an interface from the engine.
Use the Lucene*/Elasticsearch*/Pojo*/Orm* prefix for interface/classes extending an interface/class from the engine and adding backend-specific bits
Use a consistent naming scheme for abstract classes, especially in APIs/SPIs. Guillaume would rather use Abstract*, Yoann would rather use *Base. Let's stick to one.
We may want to add checkstyle rules or JQAssistant constraints if it's easy, but only if it's easy.