A Query on iterations of VPCs

So recently I have built my own fundamental CICD process for vpc creation albeit it is far from perfect.

Digging deeper I was wondering in my root main.tf where I declare my module for vpc
…/ with applicable release it seems to work well.

When I add another vpc module it is good for 3,4,5 vpc etc but what is best for 30 / 40 vpc’s would this file become particularly large in the root, also most flexible if you remove 1 etc.
Can you iterate through a map on vpc’s where only the name a CIDR prefix differ for example