Interchanging GPIO pins to accommodate hardware differences

I am trying to work through this tutorial to try to come up to speed with ESP32-S3 hardware. The presenter used a development board from a company called lonely binary, and I ordered a board from the same company. Came to find out that GPIO23 (used in the video project for SDA), is not on this board from the same manufacturer. (Or at least the same OEM.)

Lots of headers and user configuration files are involved in this project, and (lacking debug - see that discussion here) I cannot easily trace the flow to see where those definitions are.

But my question is, once I find this definition - and I will - what can be done about this? Am I free to use any other GPIO that is currently not used on the board? Or is there a set that are interchangeable with 23?

I know for example that Ardunio has some pins that are digital, some that are analog, and these cannot be interchanged so I'm just trying to find out if there are similar limitations for GPIO pins. Are some not compatible with SDA?

I don't know about the ESP32 specifically but in general I2C uses specific dedicated hardware connected to specific pins. Many microcontroller support the ability to swap the pins used for specific purposes, so for example an instance of the I2C hardware might be useable on 2 different pairs of pins. To be clear these will be specific pins, not just any pins chosen by the user. The answer to your question lies in the datasheet for the processor you are using, or perhaps someone here will be able to give you specific answer I cannot give.

See ESP32 I2C Communication: Set Pins, Multiple Bus Interfaces and Peripherals | Random Nerd Tutorials . Scroll down to this part:

First, need to know which display you bought, then you can select the correct pins
FYI: It uses SPI not I2C

Peripheral pins on an ESP32 can be assigned to any pin.