In that case, I'd propose the following:

Introduce an additional "distance_mode" enum value:

4 - user-defined distance unit is used, as defined in fare_distances.txt

And introduce a separate fare_distances.txt file with fields:

from_zone_id, to_zone_id, distance_traveled

which would be used to define the A/B matrix of distances.

The main issue here is that I think of fare_rules.txt as defining rules for matching legs and itineraries, while distance_traveled is more of a property of a leg to be matched.