I'm trying to differentiate between what we need to support in the database and what an individual app implements. I guess what I'm questioning is the idea that every meal has a "primary" component. Example: I had a snack of carrots and celery. Which one was primary?

The fact that Nutshell imposed that structure isn't a good argument for forcing the database to have it. Every app that allows a user to enter food information would have to supply that field. Is that something that every app needs to have? If not, then we shouldn't have it as a primary field (it could be something that nutshell adds).