If a user adds both cdap-api and cdap-etl-api dependencies in his plugin, then he has the option of using two sets of field level lineage classes. Each of these sets contains classes that have exactly the same name. e.g. co.cask.cdap.etl.api.lineage.field.TransformOperation and co.cask.cdap.api.lineage.field.TransformOperation. A user could easily import the wrong version of these classes. Even though in most of these cases, this leads to compilation errors that the user is forced to fix immediately, it is not quickly apparent as to what the user is doing wrong because of these name-clashes.
Furthermore, cdap-etl-api has a dependency on cdap-api, so even if a user does not add an explicit dependency on cdap-api, both these set of classes will always be available.
To reduce this ambiguity, it might help to name the classes in these packages uniquely. One option could be to use the prefix Program for the platform level APIs in cdap-api (e.g. ProgramTransformOperation), and the prefix Plugin for the plugin level APIs in cdap-etl-api (e.g. PluginTransformOperation).