Make more predefined variables accessible to include:rules
Includes are a really good way to create definitions for the different types of pipelines that you might need, e.g. for master, feature branches, merge requests, merge trains, tags, scheduled pipelines etc.
If you have a lot of jobs it is better to create different pipeline definitions instead of effectively having one pipeline with all the jobs and then deciding on the job-level with rules whether it should be in this particular pipeline or not. This does not scale well at all.
Unfortunately the include:rules does not support enough predefined variables. Looking at https://docs.gitlab.com/ci/yaml/includes/#use-variables-with-include the only really interesting ones are CI_PIPELINE_SOURCE and CI_COMMIT_REF_NAME. Just having CI_MERGE_REQUEST_EVENT_TYPE and CI_COMMIT_MESSAGE would solve a lot of usability problems (for me).
Although GitLab itself defines different types of pipelines, see https://docs.gitlab.com/ci/pipelines/pipeline_types, I haven't found any way to find out, at the include-level, whether the current pipeline is a merge request or merge train pipeline. I probably don't have to elaborate why this might be useful.
Probably a bit pessimistic, but looking at the other "include"-related tickets I have little hope that this is even getting an answer or any traction at all. I assume this is because of the internal architecture which would require a big rework.
But it is probably good to at least document this feature request so people have a ticket where they can add their support for this.