resolvedScenarioClockOrigin top-level property

DateTime? get resolvedScenarioClockOrigin

What clock.now() reads at the start of every scenario: what the runner asked for, else what the host said, else pinnedClockOrigin.

Null only on the real clock with nobody asking — see pinnedClockOrigin for why the fake-time default is a date rather than the wall clock, and why a live run has no such default: its backend answers with today, and a pin would put the app on a day the server disagrees with. Read by the harness too, so a run can report the clock it ran under: a pinned date is only safe while it is stated, since an app with a trial expiry or a seasonal theme sits in a different state under one and nothing on the screen says why.

Implementation

DateTime? get resolvedScenarioClockOrigin =>
    scenarioRunArgs?.clockOrigin ??
    _scenarioClockOrigin ??
    (scenarioHarnessTime.isReal ? null : pinnedClockOrigin);