Numerous previous changes left the Lexeme codebase in an inconsistent state by simply "avoiding" interfaces the Wikibase codebase and components provide for various reasons. This makes the implementations in the Lexeme codebase considerably different from the established ones in the Wikibase codebase. Such code becomes harder to read and maintain, and harder to reuse in situations that type hint against one of these interfaces.
Patch-For-Review and TODOs:
- Several classes implementing Wikibase\Lexeme\DataModel\Services\Diff\FormDiff do not fully conform to the DiffOp interface they implement. Content is hold twice in two private properties where it can even conflict with each other.