I’ve made an operator plugin and it ended up having lot’s of classes. However, everything is placed inside a single script.py. Is this the way to go with Blender scripts? Can i split classes into their own source files, and include them in the main.py or plugin.py?
You can split up an addon, but it’s not a necessity.
You will have to handle imports and module reloads if you split it. I recommend to check out a stock export script comprised of multiple files and see how they did it (the splitting itself is standard Python, a simple module with init.py as entry point).