Opening the book…
Raw app exports carry no dependencies, no environment variables, no connection references, and no layering. They "work" right up until the target environment differs from dev in any way.
Everything lives in a solution from day one: apps, flows, tables, connection references, environment variables. Movement between environments is always a solution export/import.
Microsoft Learn — Solution concepts — Layering and ALM model