docs: public CompletableFuture<Revision> updateTokenRole(Author author, String projectName,
                                                         Token token, ProjectRole role) {
          requireNonNull(author, "author");
          requireNonNull(projectName, "projectName");
          requireNonNull(token, "token");
          requireNonNull(role, "role");
  
          final TokenRegistration registration = new TokenRegistration(token.appId(), role,
                                                                       UserAndTimestamp.of(author));
          final JsonPointer path = JsonPointer.compile("/tokens" + encodeSegment(registration.id()));
          final Change<JsonNode> change =
                  Change.ofJsonPatch(METADATA_JSON,
                                     new ReplaceOperation(path, Jackson.valueToTree(registration))
                                             .toJsonNode());
          final String commitSummary = "Update the role of a token '" + token.appId() +
                                       "' as '" + role + "' for the project " + projectName;
          return metadataRepo.push(projectName, Project.REPO_DOGMA, author, commitSummary, change);
      }