1. Start off with an ordinary JVM with a non-concurrent, non-parallel GC. Doesn't matter if it's generational.
2. Take an extremely conservative estimate of the worst-case full-GC pause time, given the hardware (ideally with excessively powerful hardware)
3. Set up the system to invoke full-GC every frame
We've now defined a system that will cope with GC pauses just fine, but we haven't done any real engineering. Their offering clearly isn't that lazy, they've apparently written their own AOT compiler, but it's hard to gauge how technically impressive their GC is.
Ironically it tends to be the same crowd that is unware that high performance C usually doesn't use libc malloc()/free(), and there are companies that used to make a business out of selling specialized heap management libraries.
Aicas is the current steward company of the specification.
https://www.aicas.com/download/rtsj/rtsj_76.pdf
Books like "Hard Realtime Garbage Collection in Modern Object Oriented Programming Languages", from one of the Aicas' founders are quite interesting reads.
https://www.amazon.com/Realtime-Collection-Oriented-Programm...
Many discuss drop frames and jitter, while forgetting that a couple of ms more can result in someone's death in industrial automation or getting the wrong guys dead in weapon control systems.