Flatten vs. Group vs. Frame

Hi friends! Can someone tell me concisely the main differences between use cases for flatten, group, and frame?

For example, what’s a situation where you’d definitely want to flatten rather than group, and what’s the reason why?

There is a fantastic best practice page about When to use groups versus frames in Figma. Give it a try.

You kinda mix up two topics (which actually can somehow relate) groups/frames and flatten.
In this sort of consumption, just be aware that groups/frames are non-destructive but flatten will merge paths.

I think the best practice guide mentioned above will you give a better understanding.