As of today, several validation paths inside the kernel read time implicitly, i.e. by sampling a node clock. This makes tests depend on global mock time and makes validation state transitions difficult to reason about locally.
The immediate example is btck_set_mock_time(), which wraps SetMockTime() and affects all kernel time reads in the process. A chainstate scoped clock is an improvement over this because it avoids cross chainman interference, but it still hides a runtime input inside a mutable ChainstateManager.
This design proposes a north star API should make runtime inputs visible at the operation boundary: