O que é o BuildContext
Pergunta
O que é o `BuildContext` no Flutter e por que usar um context 'errado' causa bugs (ex: mostrar um SnackBar ou abrir um dialog)?
Resposta esperada
O `BuildContext` é a referência de um widget à sua posição na árvore de elementos — é por ele que você sobe a árvore pra achar ancestrais (`Theme.of(context)`, `Navigator.of(context)`, `Scaffold.of(context)`). Se você usa um context que está acima do widget que provê o que você precisa, o lookup falha ou pega o ancestral errado: o caso clássico é chamar `ScaffoldMessenger.of(context)` com o context do próprio `build` que criou o `Scaffold`, em vez de um `Builder`/context filho — não acha o Scaffold. Outro: guardar um context e usá-lo depois de `await`, quando o widget pode já ter sido desmontado (`if (!context.mounted) return;`). O context é sempre 'daquele ponto da árvore', não global.
Por que perguntam isso
Pergunta pleno de Flutter. Sinais de experiência: o caso do Scaffold/Builder e o `context.mounted` após await.