The reason why I've left `nogc` here instead of moved it somewhere else (which would have made the order nicer with [trusted, safe, system]), is because i want to keep backwards compatibility if any code ever stored `nogc` as a `uint` field somewhere (it's might be rare, but I don't want to introduce hard to track bugs).