Plugins implementing GeoLocatorInterface directly must add : ?string to geolocate() and, if they do not extend GeoLocatorBase, return types on getId(), getLabel() and getDescription(). Parameter types need not be added: PHP allows an implementation to keep $ip_address untyped, so only the return types have to match. Plugins extending GeoLocatorBase inherit the getters and only need geolocate()