+1 to this question, the distinction between projects/programs and stacks (which can be environments - prod/dev/etc. or program) is not at all clear. The docs don't help neither do the YT videos. If I were to guess, stacks were meant to be manifestations of programs for an environment but it's all been bastardized in the name of flexibility.
The difference between a stack and a program in a practical sense is unclear because one can do anything with either. I'm pretty confused.