If I cook up some meals, will the dwarves eat those first? Is there a way to stop them from eating them (if, say, the upcoming caravan is excited about them?) entirely? Or would I have to forbid each meal as it was made?
According to this page, "A dwarf with the "Eat" task will pick up a unit of food, often according to his or her dietary preferences, but also influenced by proximity and age of the item (new first)." Note that this article was written for an older version, but it doesn't seem that anything has changed in this regard.
- If the meal is composed of foods lots of dwarves like, they are more likely to get eaten. Not much you can do about this, since the preferences are randomized.
- If there is other fresh (or fresher) food nearby, the meals are less likely to get eaten.
- If the meals are stored far from the rest of your fortress (and good stuff is stored closer), the meals will be safer.
So, all that can help, but there are probably some more sure-fire ways to avoid the meals getting eaten.
- You could use burrows and prevent any dwarves from accessing a special stockpile with the meals. The chef making them would still need access, of course.
- You could create locked doors with attached levers to "lock out" the stockpile area, which would require locking your chef in there for a while.
Whether any of this is actually easier than simply forbidding the meals, though...