There is only 1 effect that actually changes appeal of the tiles, EFFECT_ADJUST_CITY_APPEAL. It is used in MODIFIER_SINGLE_CITY_ADJUST_CITY_APPEAL, probably could create also one for all player's cities and use it as a Policy Modifier.
Then you may try to combine it with the requirement that check the tiles for districts i.e. REQUIREMENT_PLOT_DISTRICT_TYPE_MATCHES. It has to be applied as SubjectRequirementSet.