Entities can implement a route provider that will create the route definitions for the entity's canonical (view), edit, delete, and collection (list) routes. As of Drupal 8.3.0, all the normally required routes are generated (this was not the case in 8.0.0). The provider takes the path for a specific link definition and turns that into a route and accessible path.
In this recipe, we will extend the default \Drupal\Core\Entity\Routing\DefaultHtmlRouteProvider and override the canonical route to be the same as the edit route, because we assume that messages will always be embedded.
This is related to a bug that is fixed in 8.4, where the Content Translation module caused errors by assuming that all entities have a canonical link, when they may only support edit--refer to https://www.drupal.org/node/2479377.