serving property
Whether this release is in front of any of the track's audience, or null when that cannot be said.
The question, rather than the vocabulary: true for a completed rollout and for one still in progress, false for a halted one and for an unsent draft. A caller asking this never has to learn Play's status strings.
Null rather than false for a status this version does not name, and
for PlayReleaseStatus.statusUnspecified, which is Play declining to
say. A bool cannot carry "I don't know", and both of the answers it
would force are wrong: false reports a possibly-healthy rollout as
reaching nobody, and true calls an unrecognized state healthy. That is
the same three-valued honesty the raw status has one line up — a
derived field that flattened it would be a worse answer than the field it
is derived from.
A caller wanting the conservative reading writes serving != true; one
that wants to say so writes serving == null.
It does not say how much. A staged rollout's fraction is not in
this document, so inProgress means "some of the audience", not "all of
it" — and serving == true cannot tell a 1% rollout from a finished one.
And it is not sufficient alone. PlayReleaseStatus.halted and
PlayReleaseStatus.draft are both false and call for different advice:
one was stopped by a person, the other never started. Read statusKnown
when the next action differs.
Implementation
final bool? serving;