the intent is to hide the definition of GeanyBuildCommand, then the forward declaration should be in build.h
That wasn't the intent because I thought the struct fields were needed by the API, but I see now they are not needed. The definition could be moved to build.c. So we would have a forward declaration then, so I don't see what all this fuss has been about.