How the pipeline was triggered. Can be push, web, schedule, api, external, chat, webide, merge_request_event, external_pull_request_event, parent_pipeline, trigger, or pipeline
You have full access to the API and can do whatever you want in the MR too.
I want the ability to specify multiple reusable pipelines, in a central place. This is not possible in cloud.
You can, with CI templates. Templates can be in a completely different repository
Lastly I would like to have multiple potential pipelines in a repository (e.g. smoke test and release).
I do have different pipelines for staging and production in my projects with no issue.