Since there would no longer be a leaf name, having a nonleaf name doesn't make sense.
If we have the name 'nosafepoint' and the name 'safepoint' we can infer safepoint_check_always and safepoint_check_never so we can remove this parameter and test using the rank value.
Or max_safepoint as the rank name?
or maxrank which is shorter? or top or max?
enum class Rank {
event,
service = event + 6,
stackwatermark = service + 3,
tty = stackwatermark + 3,
oopstorage = tty + 3,
nosafepoint = oopstorage + 6,
safepoint = nosafepoint + 20
};