Subjective hunger wouldn’t be entirely divorced from the body’s need for nutrients. How hungry your character feels would simply be modified by effects caused by drugs/illness/mood/environments.
I actually don’t know exactly how hunger is handled in the game right now, but if you’ll allow me to demonstrate one example;
Hunger is pretty specifically related to how much you have eaten lately. Nutrition is a longer-term statistic. You can eat plenty and still be malnourished. In fact many overweight people are malnourished because their diet doesn’t include important vitamins, but that’s beyond the scope of this.
Nutrition level would go from a ceiling (healthy) to a bottom (death). Somewhere between those two points would be ‘Malnutrition’ where negative modifiers kick in. And beneath that ‘Severe Malnutrition’ and beneath that ‘Starving to Death’ with increasing negative modifiers.
Your nutrition level would be adjusted by your hunger rating. Hunger in this abstract is really an indication of how much food you’ve already got in your system. Imagine hunger going from -100 to +100. You would become peckish at about +10 and hungry at -1 to -20. Very hungry at -21 to -40. And so on. Or some such variation on that. ‘Overeating’ would be at about 80, at which point your character would stop eating.
As long as your hunger level is in the negatives, you gradually lose nutrition and eek toward malnutrition. As long as your hunger level is in the positives you gradually gain nutrition. Obviously your hunger naturally ticks down toward -100, so having a lot of food in your belly means more time gaining nutrition before you start losing it.
What the hunger modifiers would do is adjust where on the Hunger scale you start getting messages. The scale itself wouldn’t change. It is still -100 to +100. It’s just that your body would be slow to notify you when you are hungry. Or notify you prematurely. So if you are doing a drug that is suppressing your appetite by -10, instead of getting peckish at +10, you might get peckish at 0. Meaning you’re already close to the point of losing nutrition rather than gaining it when you first realize you need food. Likewise, instead of getting full at 60 you would get full at 50. And they would flat out refuse to eat more food at 70 instead of 80.
So while there would be a risk that if you had a -20 hunger modifier due to heroin, the flu, and/or depression, that people may only eat enough to get rid of their peckish modifier, and still be in the negatives for nutrition overall. Ie, their body is still burning more nutrients than it is getting. This however is a very real danger associated with drugs and sickness.
There are three safety mechanisms in place here:
First is that hunger modifiers are temporary and it takes a while to starve to death. Frankly if you are on heroin so much that your appetite remains low for long enough to kill yourself, you probably deserved it. I don’t anticipate too many scenarios where it would be easy to go long periods without experiencing an unmodified hunger state.
Second is that the character menu will let you know when you are suffering from Malnutrition. If you are satisfying your hunger but still have a malnutrition problem then it is up to the player to modify their eating to compensate. It’s not that hard, just eat more. There’s nothing stopping you from eating an extra cooked meat. Simply eating until you’re Full once in a while would make a big difference. As well, when the character reaches a malnutrition state it could appear in the text log that ‘You feel weak from malnutrition.’
Third is that if the player begins to starve to death (via dangerously low nutrition) it will alert the player through the normal hunger mechanism. ‘STARVING TO DEATH!’ might appear quite suddenly despite recently eating a (small) meal to get rid of a peckish hunger state. While this might confuse someone who doesn’t know what they are doing, their confusion is still going to lead them to the correct response: to eat enough food to get a genuinely positive hunger rating (and thus their nutrition scale is going back up). Hopefully at this point they will also check their character sheet and notice they a) have a bunch of negative modifiers on their stats and b) it is due to the Severe Malnutrition listed alongside ‘High on Heroin.’
Between all of that, I think it would be fine.
And just to address your alternative; simply affecting mood is not the objective I had in mind. It’s a very secondary effect. I’m actually more interested in malnutrition than I am food perception. A heroin addict not getting as large a mood adjustment from food isn’t going to prevent them from keeping their hunger state at a safe level. Which is one major danger with heroin and other opiate drugs - heroin and morphine are both well known for decreasing the appetite of the user to the point where they become malnourished. I think that could be well represented this way, and it also lends itself well to being plugged into other systems that might have similar effects, as with environmental factors.
There might be better methods of abstracting the hunger/nutrient dichotomy, but one which doesn’t address actual malnourishment isn’t really what I’m going for here.