Hi Dmitry: Here I attach a new patch with what I think is the best approach to handle the extra info for projects. This implementation is pretty simple for both sides (user, project.el and backends) and uses your main idea of the generics + a custom. However I decided not to use only the custom as you suggested, because considering the project initialization it will require a complex and error prone approach to initalize the backend variables correctly (for example, when some buffers are already open). With this implementation the backends only need to define the optional generic specializations and the policy is pretty simple to explain (see the doc strings). I also modifies the backend project on github to match this new api, so, you can check it as well. WDYT? Best, Ergus