It really comes down to personal preference. Product level - The final end artifact most of the time. As you discovered, it has a much better tool integration. When the product is built by Tycho or PDE Build, you will know exactly what is in it and what it takes to launch it in order to work properly.
However, sometimes itβs not good to go on to the level of detail of the link in the product definitions, especially when it consists only of functions. However, defining trigger properties at the function level or even at the beam level can be difficult. For example, when someone consumes your features / packages in another product, they may have different startup requirements / entry-level requirements.
FWIW, the p2.inf file is not out of date at all. This is raw bare metal to modify / optimize / instruct p2. It's just that the snap is actually not very good, and probably never will be.
source share