/// The geohash prefix to search offers by, given the user's coarse [area] and /// the chosen [precision] (a prefix length; see /// `SocialSettings.searchPrecision`). /// /// Publishing emits a NIP-52 prefix ladder from the (already coarse) area, so a /// SHORTER search prefix still matches finer offers. Searching at the full area /// length only matches the exact ±2.4 km cell — which is why two neighbours in /// adjacent cells used to find nothing. We recorten the area to [precision] (but /// never beyond its own length) so "your zone" is genuinely a zone, not a point. String searchPrefix(String area, int precision) => area.substring(0, area.length < precision ? area.length : precision);