The goal of the Entity Screenshot module is to provide a Drupal-native interface for keeping an accurate visual record of the latest version of any entity that has a canonical link. It also aims to be fully compatible with Content Moderation and Content Translation.

The screenshot mechanism is pluggable. A screenshot provider plugin receives a URL, an opened file stream, and some context (entity type/bundle, ID, and revision ID) and is expected to reach out to some third party service, retrieve an image, and write the image data to the opened file stream. That's it.