This is an alternative proposal to T78286.
https://github.com/wmde/WikibaseDataModel/pull/343 (rename Fingerprint to EntityTerms) is a first step towards this.
- The idea is to refactor the EntityTerms class in a way that it represents 1 label, 1 description and 1 set of aliases that all have the same (base a.k.a. requested) language. Note that everything in that class should be represented as Term objects to support language fallbacks.
- AliasGroup will either be dropped in favor of EntityTerms or refactored to contain a list of Term objects, not a list of strings (this is a bit unrelated to this proposal, see https://github.com/wmde/WikibaseDataModel/pull/272#discussion_r23175733 for the reasoning).
- The EntityTermsProvider interface will have a single method, getEntityTermsForLanguage( $languageCode ).
- TermList and AliasGroupList will be dropped.
This proposal will drop the possibility to get a list of all labels in all languages. This is on purpose since I think this use case is not relevant. If it turns out to be relevant we can add EntityTermsProvider::getEntityTerms, which returns an associative array of language code => EntityTerms objects.