A recipe is a way of turning resources into other resources.
A specific recipe specifies the input and output resources, as well as the time it takes to complete the recipe.
The tick is used to keep track of time in the game.
You can advance the game by one tick using the next method.
Many functions and building methods require a Tick to be passed in, which allows them to update their state.
If a function takes a &mut Tick, then the function will take time.
If a function merely takes a &Tick, or no Tick at all, it will never advance the game time.