anchor.diff:  
       /**
        * Verify is a given claim exists
  -     * @param claimName
  -     * @return
  +     * @param claimName - the name of the claim
  +     * @return true if the JsonWebToken contains the claim, false otherwise
        */
       default boolean containsClaim(String claimName) {
           return claim(claimName).isPresent();
  
positive.code: issue tokens using the JWT format in a way that service providers can understand in order to introspect the token and
  gather information about a subject. To that end, the requirements for the MicroProfile JWT are:
  
  1. An authentication token, and
  2. An authorization token that contains Java EE application level roles directly or indirectly granted via groups
  3. Can be mapped to IdentityStore in JSR375
  4. Can support additional standard claims described in https://www.iana.org/assignments/jwt/jwt.xhtml
  
  To meet those requirements, we introduce 3 new claims to the MP-JWT:
  
  * "upn": A human readable claim that uniquely identify subject or user principal of token.
  * "groups": The subject's group membership.
  * "roles": The application roles that the subject has been granted directly and indirectly through groups claim.
  
  ### Required Claims
  The recommended minimum set of MP-JWT claims is then:
  
  typ:: This JOSE header parameter identifies the token as an RFC7519 and must be "JWT" https://tools.ietf.org/html/rfc7519#section-5.1[RFC7519, Section 5.1]
  alg:: This JOSE header parameter identifies the cryptographic algorithm used to secure the JWT. MP-JWT requires the
  
negative.code:     }
  
      /**
       * The iat(Issued at time) claim identifies the time at which the JWT was
       * issued in seconds since 1970-01-01T00:00:00Z UTC
       * @return the iat claim
       */
      default long getIssuedAtTime() {
  