Features are objects that provide you with commands not covered by the ordinary player objects. The advantage of using features is that you can mix and match the things you like; whereas if you like a command that's defined on a player class, you have to also get all the commands it defines, and all the commands its ancestors define.
See help on:
?@features? -- obtaining a list of features on a player
?@addfeature? -- add a feature to your list
?@rmfeature? -- remove a feature from your list
?features-prog? -- how programmers can interface with features