A must-use plugin survives a theme switch, which is the point

Registering a post type in functions.php ties the site’s content model to its appearance, so changing the theme deletes the URLs.

// wp-content/mu-plugins/turkerdev-content.php
// no activation, no deactivation, always loaded, cannot be disabled

add_action( 'init', function () {
    register_post_type( 'case_study', array( /* ... */ ) );
    register_taxonomy( 'sector', 'case_study', array( /* ... */ ) );
} );

Must-use plugins load before regular ones and cannot be deactivated from the admin, which is the property that makes them right for anything the site cannot function without. Only files at the top level of the directory are loaded automatically, so a plugin in a subdirectory needs a one-line loader file next to it. The trade is that there is no update mechanism and no activation hook, so anything needing a database table has to check for it on load.