How to initialize multi-branch pipeline param based on PR properties?

We have pipeline script with a large number of parameters. For some, I’d like to have the defaultValue based on properties of the change-set, either the branch name or the title. But neither seem to be possible, as neither env.CHANGE_BRANCH or env.CHANGE_TITLE have any value at the point parameters are initialized.
Is there something I need to do to use these for initialize parameters?

short answer: you can’t

Longer answer:

Pipelines are parsed on run, so you can’t really change defaults before the run starts. There are plugins like active choice or i think uno choice (I havn’t used either) that are popular work arounds.

Personally I’d recommend having your default as “unset” type value, then you just have code to handle that value

steps {
  script {
    if (env.THINGIE == "unset") {
      env.THINGIE = "something else entirely"
    }
  }
}

type thing

env.BRANCH_NAME does work for branch-specific pipeline builds (where the discovery is done by branch name) though, so I figured there should be some way of using properties of the PR when discovered that way.
If we changed the branch discovery pattern to find branches we wanted different behaviour for, would that work? Any risk you’d end up with two builds (one via the branch name and another via the PR)?

I’m aware we can test the env.CHANGE_* variables at the point we need to control certain behaviour, but the ideal was that the parameters were initialized that way by default but then could be overridden as needed.