Features are discrete units of functionality. In other words, features do things. They are the cogs in the machine. They also communicate with one another via
inputs and outputs.
Features are the proverbial "black boxes": how they do what they do is unimportant (although the ways in which they respond to inputs and trigger outputs are important because such details will have a bearing on how you connect your features). As is the case for integrated circuits in the electronics industry, a feature's designer doesn't care about the context in which the feature is used: the designer merely states the feature's behaviour and it is up to the user to determine whether and how to use the feature.
All features have names, which you may change. Within a
group, all feature names must be unique.