If I mark a test first within a class, it should be possible to have that test run first in that class, not first overall (unless that class is the first to run).
Similarly, if I mark a test first within a module, it should be possible to have that test run first in that module, but not first overall (unless that module is the first to run).
Perhaps the best way to specify this would be a keyword argument like @pytest.mark.first(scope='class') or @pytest.mark.second(scope='session').