I was observing this game made with phaser3, that seems to me very well done.
I don’t understand precisely how the developer created all the levels. There Is an ourcade brick-breaker example that explains how to use JSON files to create multiple levels using only one scene.
But this game Is more complicated. If a game has 40 levels, then 40 scenes are required? Each scene for every single level?
It really depends on your game and how you structure it. If there are lot of features/code is common in all of your levels you can put that in separate class and inherit that in you scene. Also you can use preload and init functions in scene to load sceneData and initialize scene using that.