for (AgencyAndId fareId : fareAttributes.keySet()) {
// fares also don't really have an agency id, they will have the per-feed default id
if ( ! fareId.getAgencyId().equals(feedId))
continue;
FareRuleSet ruleSet = fareRules.get(fareId);
if (ruleSet == null || ruleSet.matches(startZone, endZone, zones, routes)) {
FareAttribute attribute = fareAttributes.get(fareId);
if (attribute.isTransfersSet() && attribute.getTransfers() < transfersUsed) {
continue;
}
// assume transfers are evaluated at boarding time,