MCU to MCU I2C communication
Fortunately or unfortunately, it's up to you to come up with a protocol for this scenario as you control both sides.
Like you say, the slave can only respond to transfers initiated by the master. Your master then needs to poll the slave (ask for data on a recurring schedule), unless you have another way for the slave to communicate when data is ready. (The latter is commonly solved with a separate interrupt line.) The master and slave need to both agree on a special response when the slave doesn't yet have data available. The slave also needs to reset its response to this "no data" value after being queried by the master, to avoid sending the same data twice.

The easier way would be to switch the roles of master and slave, so it's the master that initiates sending data to the slave.

If you need to also communicate with other slaves on the same I2C bus, you will however be limited in which device can be the master, unless you use the multi-master mode of I2C.

The particular I2C API calls required depends on what device and HAL you are using. On a physical level, it will be a "I2C read" initiated by the master, where the master reads 32 bytes after sending the slave address.