> 2. Require preparation functions to accept one parameter, the project > plist. I think adding project-plist as a parameter to preparation functions is definitely more elegant. But, I also came across this old thread where it was noted that making project-plist a proper parameter, instead of it being dynamically scoped into the preparation function, would break a lot of code. https://lists.gnu.org/archive/html/emacs-orgmode/2010-03/msg00016.html But now, with org moving to lexical binding, I think it is time to make project-plist a proper parameter, despite the costs of doing so.