Is it possible to make a CMS block inside a theme?
or does it has to be a completely different plugin?
the CMS Blocks in Shopware 6 are always added within a Shopping Experience, therefore it is recommandable to also add new blocks as a plugin for the Shopping Experiences instead of "hardcoding" those blocks into your template.
One more question
So if you want a template that is based on new CMS blocks, like a template that has a complete folder and code structure
You need to create a CMS plugin and just add a dependency through composer?
yeah thats right, you can add stylings and everything within the plugin which adds a new cms block and get it up and running trough composer.