I have a module with a few helpful services and field formatters. I have one field formatter that applies only to entity_reference_revisions fields and, as a result, "uses" and "extends" the Drupal\entity_reference_revisions\Plugin\Field\FieldFormatter\EntityReferenceRevisionsEntityFormatter. However this class may not even be in the codebase at all.
I do not want my module to depend on entity_reference_revisions, but I also don't want to create a submodule just for this one formatter unless I am "required" to do so.
I noticed that when I install my module on a site without entity_reference_revisions present, there are no issues, everything works fine without error. It seems to me that the plugin class is never being loaded so there's no PHP error about a missing class. (My guess is that because the annotation specifies that the field formatter only applies to the entity_reference_revisions field type, which does not exist, then Drupal refrains from loading the class.)
My feeling is that maybe this is not really any different than this formatter being in a submodule that depends on entity_reference_revisions, but I'd like a more objective answer. I checked the PHP coding standards, but I did not find anything definitive. I also noticed, Which modules should be listed as dependency of my module?, but found no definitive answer there either.
What is the Drupal standard in this case? If my module provides a plugin that extends a plugin in some other Module A, is it required (e.g. by coding standards or best practice standards) that my module also depend on Module A?