serious answer
@q A big deal is made about them mostly because of the governance issues surrounding their introduction, but while their design does imply a lot of internal changes in Nix, flakes *themselves* are a fairly simple concept:
They're like a sort of package.json for chunks of Nix code. A manifest with a standard-ish structure for exporting different kinds of things in predefined ways, where you can make certain assumptions about it, so that you can build a bigger whole on top of it.
That's really all it is. Everything else is internals changes to make this actually work in practice, but this is the fundamental problem it's meant to solve, a standardized declarative way to export and reuse piles of Nix without having to centrally manage everything in one repo or deal with 5 slightly different sets of import/update semantics.