OptionalblockedOptionalstateUpdated conditional-request state to persist.
OptionalunchangedTrue when the upstream reported nothing changed since the last run.
OptionalunreadableSet when the source was reached but could not be read — a search page whose markup contract broke, an API that answered in an unfamiliar shape.
It is deliberately not the same as refs: []. An empty window is an answer;
this is the absence of one, and it is what tells FallbackSource that going
somewhere else is warranted rather than a way of papering over a quiet month.
Non-fatal problems: a page that would not parse, a field that was missing.
Set when the source did not look at all, and why — a gated connector whose documents its host's robots.txt disallows, without --ignore-robots. Not an empty window either: a daily
ka synchas to be able to tell "blocked" from "nothing new", and the run is not recorded as a sync.