docs: def authenticate(self):
          """
          Generate an access token using an username and password. Any existing
          client token is invalidated if not provided.
  
          Returns:
              dict: Response or error dict
          """
          endpoint = '/authenticate'
  
          payload = {
              'agent': {
                  'name': 'Minecraft',
                  'version': self.ygg_version,
              },
              'username': self.username,
              'password': self.password,
              'clientToken': self.client_token,
          }
          rep = self._ygg_req(endpoint, payload)
          if not rep or 'error' in rep:
              return False
          self.access_token = rep['accessToken']
          self.client_token = rep['clientToken']
          self.available_profiles = rep['availableProfiles']
          self.selected_profile = rep['selectedProfile']
          return True