sub { my $schema = $_->{oneOf} = []; push @$schema, { enum => [ keys $_->{'$defs'}->%* ] }; for my $generic ( keys $_->{'$defs'}->%* ) { push @$schema, { type => 'object', properties => { generic => { const => $generic }, subclass => { enum => $_->{'$defs'}{$generic} } } } } return $_; }