code: def unicode(self, *, invert_color: bool = False, borders: bool = False) -> str:
          
          builder = []
          for rank_index in range(7, -1, -1):
              if borders:
                  builder.append("  ")
                  builder.append("-" * 17)
                  builder.append("\n")
  
                  builder.append(RANK_NAMES[rank_index])
                  builder.append(" ")
  
              for file_index in range(8):
                  square_index = square(file_index, rank_index)
  
                  if borders:
                      builder.append("|")
                  elif file_index > 0:
                      builder.append(" ")
  
                  piece = self.piece_at(square_index)
  
                  if piece:
                      builder.append(piece.unicode_symbol(invert_color=invert_color))
                  else:
                      builder.append(u"·")
  
              if borders:
                  builder.append("|")
  
              if borders or rank_index > 0:
                  builder.append("\n")
  
          if borders:
              builder.append("  ")
              builder.append("-" * 17)
              builder.append("\n")
              builder.append("   a b c d e f g h")
  
          return "".join(builder)
docs: Returns a string representation of the board with Unicode pieces.
          Useful for pretty-printing to a terminal.
  
          :param invert_color: Invert color of the Unicode pieces.
          :param borders: Show borders and a coordinate margin.