The function is very simple; if it is 1 or 2 it can be chosen if a level grants the bonus feat availability. For Fighters and Rangers this can mean they can get a lot more Epic Feats since commonly these are listed as type 1. All classes pretty much have the bonus feats for Epic levels if nothing else.
For some classes the special feats they get access to, such as Rangers Favoured Enemy, is tied to bonus feats only and unavailable to select elsewhere.
You can also have "multiple choice" options of a sort where you have feat.2da define a MaxLevel for a feat, and cls_feat_xxx.2da define a minimum level, and a bonus feat available at a particular level then only has those options and only for that one choice.
|Column||Example||Valid Values||Description and Notes|
Amount of bonus feats to grant at the given level. Since 2da files are indexed from 0, line 0 is level 1 for the class (And so on usually up to row 59, level 60).
It can be higher than 1, so you can grant for instance 2 bonus feats on a particular level.
Only feats which are marked as List type value 1 or 2 in cls_feat_xxx.2da can be chosen.
Bonus feats for a ranger in cls_bfeat_rang.2da: