Racial Features traditionally live in the Race file. It seems that most of these don't really do anything beyond adding some text to the character, as the actual heavy lifting is in the race itself. A good example of this is the Human race, where it has a feature for the bonus skill, feat, and defenses, but the actual bonus skill, defenses, and feat are boiled into the actual race <thing>. This is a bad way to do this, as it means if you want to use the same feature again you can't just bootstrap the feature, you have to reimpliment it. The problem is that this may be a deficiency in the HL system.
Some actually do things - they are (almost?) always <eval> scripts, bootstraps, or they are options.
These all have an ID, a Name, a Description, and a CompSet that is one of two versions: "RaceFeat" or "BuildOpt"
<thing id="fXXXXX" name="XXXXXXX" description="XXXXXXXX" compset="RaceFeat">
</thing>
<thing id="fXXXXX" name="XXXXXXX" description="XXXXXXXX" compset="BuildOpt">
</thing>
If a race has an feature option, there are two ways to do this. One is hard coded, and the other is extensible (that's a fancy word for easy to add more to it later). Clearly the extensible method is better when starting from scratch becuase if you stumble upon another option (say from a magazine or on as a homebrew option) you can just add it to whatever file you want, wherever you want. If you wanted to add an extra option to a race's build that is in the base pack, you would have to replace the options feature on the base race, and replace it entirely when using the static version, wheras if it is extensible you don't even have to touch the original feature, you just add yours to the pile with the right codes and Bob's your uncle.
I'm including the static version for verisimilitude and to make it possible to recognize it in the wild (I'm just going to use the human power selection as the example):
<thing id="fRHuHumPow" name="Human Power Selection" description="Choose an option for your human character." compset="RaceFeat">
<fieldval field="usrCandid1" value="thingid.pRacHerEff | thingid.fRHuBonAtW"/>
<tag group="Hide" tag="Special"/>
</thing>
So it bootstraps the fRHuHumPow feature onto the race, which gives the dropdown on the sheet (<fieldval field="usrCandid1") with a few options on it (value="thingid.pRacHerEff | thingid.fRHuBonAtW") - the vertical pipe separates the options. It can have dozens of options, and will scroll if there are a lot (more than 10, I think). The the Human race also has those options bootstrapped to the race (pRacHerEff and fRHuBonAtW) because this selection option doesn't bootstrap, it just "selects". Each of those powers has an extra code to keep it disabled unless it is selected:
<tag group="User" tag="NeedChosen"/>
But that tag goes into the actual feature or power that might be selected, not in the selecting feature. (Are you confused yet?) The alternative method goes like this:
<fieldval field="usrCandid1" value="User.XXXXXXX"/>
So very similar, but instead of a value with a "thingid", it's a "User.XXXXX". The variable after "User." is the code you will use to designate something that belongs in the list. The features that end up in the list have their own tag:
<tag group="User" tag="XXXXX"/>
There isn't a particular convention for the name of the list like there is for <thing>s. Mostly the current <thing>s use the system of "Race" smushed together with "Feature's Name". For example, the Wilden's Aspect feature is designated as "WildenAsp" in the files. I think the limit is again 10 characters, but you should always be as concise as possible, without losing too much information.
If the feature does something specific and simple, like adding a bonus feat or skill (but not really since this is built into the race), this feature should be created, but then hidden from the special tab - this keeps it from being cluttered with information that isn't needed (as by that point, the extra will have been picked). This uses a special tag group called "Hide", then you specify the tab it should be hidden from ("Special")
<tag group="Hide" tag="Special"/>
<thing id="fRMiVitali" name="Vitality" description="You have one additional healing surge." compset="RaceFeat">
<eval phase="Traits" priority="10000"><![CDATA[
#traitmodify[trSurges,trtBonus,1,""]]]>
<before name="Derived trtFinal"/>
</eval>
</thing>
<thing id="fRHuHumPow" name="Human Power Selection" description="Choose an option for your human character." compset="RaceFeat">
<fieldval field="usrCandid1" value="thingid.pRacHerEff | thingid.fRHuBonAtW"/>
<tag group="Hide" tag="Special"/>
</thing>
<thing id="fRHuBonFea" name="Bonus Feat" description="You gain a bonus feat at 1st level. You must meet the feat's prerequisites." compset="RaceFeat">
<tag group="Hide" tag="Special"/>
</thing>
DM Weapon Proficiency: You gain proficiency with the longbow and the shortbow.
Awesome Origin: Your ancestors were native to the Awesomelands, so you are considered a awesome creature for the purpose of effects that relate to creature origin.