Wow. The original bug is from 2015 😞
OK. After getting rid of the screaming goat I spawned above, I spent the rest of the time breeding goats and I got a screamer from two normal goats. I only had about 30-40 goats at the time. It all depends on the RNG.
I just put down literally 4 spawn eggs and I got one screamer :-O The spawn egg path is slightly different, but it does have the same sort of code:
this.setScreamingGoat(randomSource.nextDouble() < 0.02);
The code appears clear that there is a 2% chance of getting a screaming goat even if both goats are standard goats. I can't say why it wouldn't have happened in 3 hours, though...
Specifically, it says (via decompilation using standard Mojang mappings):
goat.setScreamingGoat(bl || serverLevel.getRandom().nextDouble() < 0.02);
Where the first boolean (bl) is if the input goat is a screamer. So, if not a screamer, it should still have a chance to happen.
But I have heard others say that they have also never been able to make it happen as well.
Actually, I just found MC-177904, which is resolved as works as intended. Maybe that was what was meant to be pasted above.
I don't think this is a duplicate of that bug. This is about the general ability to substitute cobbled deepslate with cobblestone in recipes. It just sounds like the recipes for redstone items (pistons, etc.) were not updated to accept cobbled deepslate. The other bug is about the fact that you need cobbled deepslate to make things like polished deepslate.
Stone hoe recipe looks for anything tagged with stone_tool_materials (cobblestone, blackstone, cobbled deepslate), pistons do not, likely as they are not 'stone tools'. This might be intentional. Hard to say.
Yes, the check for occupancy is right after the above code. If they were reordered it would fix this.
You are at y=70 in that screenshot. The ancient city should be down towards y=-30 to -50 or so. If it's really not there at all, then I think it'd be helpful to know the seed for reproducibility.
FWIW I root caused this and the code simply always writes false when it saves the {{isRespawning }}state. I am going to put a mod up to fix this.