Templates and variables
When we're talking about the balance between generic and explicit, we'd better talk about variable names. A good variable name will also strike this balance and become an emulsifier between the minion and the state tree.
Nested variables
Salt allows hierarchical data structures to be used in order to define variables. In a way, this allows variables to behave like directories, in which these structures may be either shallow or deep.
However, unlike directory structures, searching through deep variable structures is not necessarily as painful. When you use flat files to define a structure, it may actually be easier to read a structure that is deeply nested. Let's turn the ingredients for a chocolate chip cookie recipe into a set of Salt grains, as follows:
cookies: fats: - butter sugars: - granulated sugar - light brown sugar wet_ingredients: - eggs - vanilla extract dry_ingredients: - flour - baking soda ...