axes property

Map<String, List<String>> axes
final

The axes this app defines for itself, each with the values this folder runs in — the first one, again, the default.

const phones = ScenarioProfile(
  'phones',
  devices: [Devices.iphone16],
  axes: {'brand': ['coffee', 'tea']},
);

Nothing here knows what tea means: a scenario reads the value with s.axis('brand') and builds its app for it, and every lane carries the word — into the run, the test's name, the directories a matrix writes. So a value is a word a directory can hold, and a run that names one this folder does not declare is refused rather than handed to an app that would quietly fall back to its default.

Labels rather than values, unlike a preview shell's picker: a profile is const, and a theme is not. The one place that turns tea into a ThemeData is the scenario, or a helper it shares.

Implementation

final Map<String, List<String>> axes;