TMPDIR, TEMP and TMP (when set) are not whitelisted for writing in
sandbox.rb, which could result in sandbox violations when programs
attempt to write to these locations.
Setting TMPDIR, TEMP and TMP to HOMEBREW_TEMP (which defaults to /tmp
when not set) works around the aforementioned problem and also improves
uniformity in the locations of tempfiles created during Homebrew
operations.
Caveat: Non-matching HOMEBREW_TEMP and TMPDIR could lead to undesirable
side effects in certain cases, e.g., emacsclient not being able to find
an existing server (whose socket lives in $TMPDIR/emacs$UID/) when
launched through brew edit.
This is the (partially) documented public API for Homebrew.
The main class you should look at is the {Formula} class (and classes linked from there). That's the class that's used to create Homebrew formulae (i.e. package descriptions). Assume anything else you stumble upon is private.