docs: def scope_id(self):
          """
          ID of the scope this Activity belongs to.
  
          This property will always produce a scope_id, even when the scope object was not included in an earlier
          response.
  
          When the :class:`Scope` is not included in this task, it will make an additional call to the KE-chain API.
  
          :return: the scope id (uuid string)
          :raises NotFoundError: if the scope could not be found
          """
          if self.scope:
              scope_id = self.scope and self.scope.get('id')
          else:
              pseudo_self = self._client.activity(pk=self.id, fields="id,scope")
              if pseudo_self.scope and pseudo_self.scope.get('id'):
                  self.scope = pseudo_self.scope
                  scope_id = self.scope.get('id')
              else:
                  raise NotFoundError("This activity '{}'({}) does not belong to a scope, something is weird!".
                                      format(self.name, self.id))
          return scope_id