What is the difference between 主菜 and 主食?
主菜 is typically the best dish in a banquet, in biological terms, the proteins.

主食 is referring to carbohydrates, namely noodles or rice.

In China, we usually eat 主食 with some dishes, and the dishes are called 菜。The dishes could be meat, vegetables, seafood and so on, but not carbohydrates.