docs: def process(self, body, url=None, sig=None):
          """Process request body given skill logic.
  
          To validate a request, both, url and sig are required.
  
          Attributes received through body will be automatically added to the
              response.
  
          Args:
              body: str. HTTP request body.
              url: str. SignatureCertChainUrl header value sent by request.
                  PEM-encoded X.509 certificate chain that Alexa used to sign the
                  message.
              sig: str. Signature header value sent by request. Base64-encoded
                  signature of the request body.
  
          Return:
              str or bool: HTTP response body or False if the request is invalid.
          """
          self.request = RequestBody()
          self.response = ResponseBody()
  
          self.request.parse(body)
  
          app_id = self.request.session.application.application_id
          stamp = self.request.request.timestamp
          if not self.valid.request(app_id, body, stamp, url, sig):
              return False
  
          self.pass_session_attributes()
  
          self.dispatch()
  
          if self.request.request.type == 'SessionEndedRequest':
              self.terminate()
  
          return self.response.to_json()