This is pretty fragile.  Why not rename `main` like we do elsewhere, and then introduce a new main that calls the old main, which essentially returns `gl_Position`?