This also fixes the logic for calculating whether the preset shows a
`brand` or `operator` field - it needs to use `fields()` to actually
resolve the fields, as these fields can be inherited from another preset.
This also includes a change to match "primary" names before
"alternate" names (aka the "Baby Gap" / "Gap" problem)