Terminology questions

I’m having trouble understanding the relationships between the terms (Board, Platform, Framework) as used in the file platformio.ini
I take it that ‘board’ refers to the actual hardware the code will be uploaded to (for me, the ESP32 WROOM).
What then is the effect of choosing Arduino for the ‘framework’ (It seems this refers to the Atmel microcontrollers)? How can the two settings (esp32dev for ‘board’, Arduino for ‘framework’) work together?
Then, there is ‘platform’: there are many of those (offering different programming constructs, header files …); that term is what I would have referred to as ‘framework’ but it seems there is a different meaning for it in the PlatformIO community.

Could somebody please shed a light on these?