{'heading': 'How to read the Ayurveda card on a food or recipe in the app', 'summary': "On any food detail screen, `AyurvedaSectionView` resolves the item's Ayurvedic profile (`AyurvedaResolver.resolve`) and renders an `AyurvedaDisplayCard`. For edible foods, the card shows: (1) a personalized profile fit banner (`Supportive`, `Mixed fit`, or `Less supportive` when you have a saved constitution), (2) three `DoshaBarsView` scales (`-2` to `+2` for Vata, Pitta, and Kapha), and (3) property chip groups for `Rasa (taste)`, `Virya (energy)`, `Vipaka (post-digestive)`, `Gunas (qualities)`, and `Preparation modifiers`.", 'bullets': ['Personalized Fit math: `target.doshaFit` computes `vataWeight * (-vata) + pittaWeight * (-pitta) + kaphaWeight * (-kapha)`; scores `>= 0.45` show `Supportive for your current profile` and `<= -0.45` show `Less supportive`.', 'Dosha bar scale (`-2` to `+2`): Negative numbers (`-1`, `-2`) pacify/reduce a dosha; `0` is neutral; positive numbers (`+1`, `+2`) increase/aggravate it.', 'Computed-tier transparency: For multi-ingredient recipes or computed items (`display.tierLabel == "Computed"`), the card displays `DoshaBarsView` and `Virya (energy)` without fabricating single-ingredient `Rasa`, `Vipaka`, or `Guna` chips.', 'Safety warning banner: Items marked `engineExcluded` display an explicit `Health warning` row and are never recommended in meal plans.']}
On any food detail screen, `AyurvedaSectionView` resolves the item's Ayurvedic profile (`AyurvedaResolver.resolve`) and renders an `AyurvedaDisplayCard`. For edible foods, the card shows: (1) a personalized profile fit banner (`Supportive`, `Mixed fit`, or `Less supportive` when you have a saved constitution), (2) three `DoshaBarsView` scales (`-2` to `+2` for Vata, Pitta, and Kapha), and (3) property chip groups for `Rasa (taste)`, `Virya (energy)`, `Vipaka (post-digestive)`, `Gunas (qualities)`, and `Preparation modifiers`.
Personalized Fit math: `target.doshaFit` computes `vataWeight * (-vata) + pittaWeight * (-pitta) + kaphaWeight * (-kapha)`; scores `>= 0.45` show `Supportive for your current profile` and `<= -0.45` show `Less supportive`.
Dosha bar scale (`-2` to `+2`): Negative numbers (`-1`, `-2`) pacify/reduce a dosha; `0` is neutral; positive numbers (`+1`, `+2`) increase/aggravate it.
Computed-tier transparency: For multi-ingredient recipes or computed items (`display.tierLabel == "Computed"`), the card displays `DoshaBarsView` and `Virya (energy)` without fabricating single-ingredient `Rasa`, `Vipaka`, or `Guna` chips.
Safety warning banner: Items marked `engineExcluded` display an explicit `Health warning` row and are never recommended in meal plans.
Reading Dosha Bars and the Five Property Chip Groups
Below the personalized fit summary, `DoshaBarsView` renders the food's baseline Vata, Pitta, and Kapha effects on the five-point `-2, -1, 0, +1, +2` scale. Underneath the bars, `propertyGroups` organizes traditional dravyaguna attributes into up to five labeled chip rows, each with custom SF Symbol icons and semantic color tints (`AyurvedaPacify` for cooling/gunas, `AyurvedaAggravate` for heating, and `AyurvedaChipTint` for tastes and vipaka).
For single catalog ingredients, you will see `Rasa (taste)` (`Sweet`, `Sour`, `Salty`, `Pungent`, `Bitter`, `Astringent`), `Virya (energy)` (`Cooling`, `Heating`, or neutral), `Vipaka (post-digestive)` (`Sweet`, `Sour`, `Pungent`), `Gunas (qualities)` (such as `Light`, `Heavy`, `Oily`, `Dry`, `Warm`, `Smooth`, `Soft`, `Dense`, `Liquid`, `Sharp`, `Rough`, `Slimy`), and—when applicable—`Preparation modifiers` (such as cooked, soaked, or spiced adjustments).
- Why `Computed` items show fewer chips: When viewing a multi-ingredient recipe (`display.tierLabel == "Computed"`), `propertyGroups` intentionally shows only `Virya (energy)` below `DoshaBarsView`, because summing six tastes and twenty gunas across ten ingredients into a single word would be misleading.
- Preparation modifiers (`slider.horizontal.3`): Show how soaking, boiling, roasting, or spicing shifted the resolved profile from its raw state.
- Reduce Motion support: `AyurvedaDisplayCard` respects iOS `accessibilityReduceMotion` by disabling bar animations when enabled.
Frequently Asked Questions
Why does a multi-ingredient recipe show Dosha Bars and Virya, but not Rasa or Vipaka chips?
In `AyurvedaSectionView.swift`, recipes resolve with `display.tierLabel == "Computed"`. The app computes weighted Vata/Pitta/Kapha bars and net `Virya (energy)` across ingredients, and omits single-ingredient `Rasa`, `Vipaka`, and `Guna` chips so it never invents a fake single post-digestive label for a complex dish.
Does a "-1" or "-2" on the Pitta bar mean the food is bad for Pitta?
The opposite: in the app's scale, `-1` and `-2` mean the food *pacifies* (reduces/cools) Pitta, which is supportive when Pitta is elevated. Positive numbers (`+1`, `+2`) mean the food *increases* that dosha.
Why don't I see the "Supportive for your current profile" banner on food cards yet?
`AyurvedaPersonalizedFoodFitView` appears once you have saved a baseline constitution (or self-declared type) in `AyurvedaConstitutionStore`. Until then, the card displays the universal Vata, Pitta, and Kapha bars and property chips.





