usable property

bool usable
final

Whether this build could be released now: processed, and not expired.

The question, rather than the vocabulary. A caller asking this never has to know what Apple's states are, which is the point.

It fails closed, and false therefore does not mean "not usable" — it means "not known to be usable". A state this version does not name lands here as false, which is the right default for a flag that gates an action: refusing to release a build whose state is not understood is the safe direction. PlayReleaseEntry.serving is nullable rather than false-by-default precisely because it gates a report, where false is a claim rather than a refusal. Two booleans, two consequences, two shapes.

Implementation

final bool usable;