Ok I thought about this some more, I think there is something we could do which would give more people more of what they want.
For this post I’m going to rename what is a “species” in the op as a “sub-species” and it just means a group of identical individuals that live in one patch.
I think auto-evo should be run per patch on each sub-species. I haven’t heard any suggestions of how to rewrite it and I am not keen to make it take account of multiple patches because that sounds like a computational nightmare. Each timestep the population of every sub-species is computed in each patch based on the conditions and interactions only in that patch.
One layer up we can have species. So each sub-species has an “species template” which is the organelles that the ancestor that started their species had. Then each time a sub-species is mutated by auto-evo it checks to see how different it is from it’s species template, if it is similar then it is still considered as the same species, if it is sufficiently different then it starts a new species with itself as the new species template.
For example the first sub-species is a single hex of cytoplasm and it’s “species template” will be itself. Maybe this species evolves to add a flagella, then splits into two, then one of them gets another flagella and the other gets some chemosynthesizing proteins but both are still considered the same species. Then maybe the first half gets a pilus and now that it has 2 flagella and a pilus it’s too different from the single hex to be considered the same species anymore so it gets made into a new species with itself as the template. The other half, which has just one chemosynthesizing proteins is still considered the original species.
This would mean that a species can be a larger thing, there can be some variation between sub-species, even in the same patch, however all the sub-species would be related and pretty similar. It would also allow species to spread out over many patches.
Above this we could have other layers, each sub-species could have a “genus template” in a similar way where it is allowed to be further from it before starting a new genus. We could have as many layers as we want.
I think this would give us single species across multiple patches in a pretty simple way which wouldn’t be hard to implement. It would keep all the sub-species interactions local which makes things easy.
Anyone got input? All feedback welcome.