code: @Override
    public Optional<DatenFilm> deserialize(final JsonElement aElement, final Type aType,
        final JsonDeserializationContext aContext) {
      try {
        final Optional<JsonObject> viewer = getViewer(aElement.getAsJsonObject());
        if (viewer.isPresent()) {
  
          final Optional<JsonObject> detailClip = getDetailClip(viewer.get());
  
          return buildFilm(detailClip, viewer.get());
  
  
        } else {
          printMissingDetails(JSON_ELEMENT_VIEWER);
        }
      } catch (final UnsupportedOperationException unsupportedOperationException) {
        // This will happen when a element is JsonNull.
        LOG.error("BR: A needed JSON element is JsonNull.", unsupportedOperationException);
        FilmeSuchen.listeSenderLaufen.inc(crawler.getSendername(), RunSender.Count.FEHLER);
      }
  
      return Optional.empty();
    }
docs: Resolves the Film details which and creates a Film of it.<br>
  The data has this structure:
  <code>data -> viewer -> clip -> videoFiles -> edges[] -> node -> id</code><br>
  <code>data -> viewer -> detailClip -> title</code><br>
  <code>data -> viewer -> detailClip -> kicker</code><br>
  <code>data -> viewer -> detailClip -> duration</code><br>
  <code>data -> viewer -> detailClip -> broadcasts -> edges[0] -> node -> start</code><br>
  Optional: <code>data -> viewer -> detailClip -> shortDescription</code><br>
  Optional: <code>data -> viewer -> detailClip -> description</code>