Where can I learn how the build script is evaluated?

Continuing the discussion from How to access project.ext variables from within buildscript section:

It’s impossible, because the ‘buildscript’ block gets evaluated before the rest of the build script. You can access an extra property declared within ‘buildscript’ from the rest of the build script, though.

Got the same problem, and found this answer. The thing is, I cannot find any explanation for how the build script is evaluated in the official documentation, why buildscript is evaluated at the very beginning. Is there an explanation for this? Where can I find it?