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][1]. However this class may not even be in the codebase at all.

I do not want my module to depend on [entity_reference_revisions][2], 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][3], but I did not find anything definitive. I also noticed, https://drupal.stackexchange.com/questions/31236/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 (by coding standards) that my module also depend on *Module A*?**


  [1]: https://git.drupalcode.org/project/entity_reference_revisions/-/blob/8.x-1.x/src/Plugin/Field/FieldFormatter/EntityReferenceRevisionsEntityFormatter.php?ref_type=heads
  [2]: https://www.drupal.org/project/entity_reference_revisions
  [3]: https://www.drupal.org/docs/develop/standards/php