show_in_rest is what makes a post type work in the new editor

A custom post type registered without show_in_rest opens in the classic editor even on 5.0, silently, because the new editor has no way to load or save it.

register_post_type( 'case_study', array(
    'public'       => true,
    'show_in_rest' => true,
    'rest_base'    => 'case-studies',
    'supports'     => array( 'title', 'editor', 'custom-fields' ),
) );

The fallback is helpful and confusing in equal measure: nothing errors, so the impression is that the new editor does not support custom post types at all. custom-fields in the supports array is separately required for register_meta to be writable through the API, which is an unrelated flag that produces an identical-looking failure. Setting rest_base explicitly is worth doing because the default is the post type name, and post type names are limited to twenty characters in a way URLs are not.