code: def chess960_pos(self, *, ignore_turn: bool = False, ignore_castling: bool = False, ignore_counters: bool = True) -> Optional[int]:
          
          if self.ep_square:
              return None
  
          if not ignore_turn:
              if self.turn != WHITE:
                  return None
  
          if not ignore_castling:
              if self.clean_castling_rights() != self.rooks:
                  return None
  
          if not ignore_counters:
              if self.fullmove_number != 1 or self.halfmove_clock != 0:
                  return None
  
          return super().chess960_pos()
docs: Gets the Chess960 starting position index between 0 and 956
          or ``None`` if the current position is not a Chess960 starting
          position.
  
          By default white to move (**ignore_turn**) and full castling rights
          (**ignore_castling**) are required, but move counters
          (**ignore_counters**) are ignored.