PropertySuggester is extensively build on the assumption that all entity IDs can be represented as integer numbers via getNumericId. https://github.com/wmde/WikibaseDataModel/pull/667 provides a simple migration path: All entity types PropertySuggester must support (only Properties and Items) do have a getNumericId method anyway. Add a proper interface for that. Add instanceof and is_int checks to a few critical places, and be done for now. Wait for the exceptions and continue working on a proper fix (which basically means rewriting the entirety of PropertySugester) when these checks start to fail (which will most probably never happen).
Patches:
- https://github.com/wmde/WikibaseDataModel/pull/667 introduces a NumericEntityId interface as described above. Code assuming all entity IDs can be represented as 32 bit integer numbers will still fail, but this will not happen within the next 100 years. Main advantage: This does not require any breaking change in DataModel. Entity IDs implementing this interface are still allowed to be of any length.
- https://github.com/wmde/WikibaseDataModel/pull/670 introduces a Int32EntityId interface. This requires a breaking change and an additional int32 check in all entity ID constructors implementing this interface. Stuff will break the same time in 100 years, but not caused by a caller of getNumericId but when constructing an ID that exceeds 32 bit.