The same library as 0.2.3, numbered for what it changes. A request can carry no state: DecisionSession gains calls with no about:, DecisionRequest.state is optional, a standing context alone serves as the state, and a .null state counts as no state. Jev and OpenRouter send an empty string for a missing state, because both services require one. The Apple adapter drops its STATE block and uses instructions that let the on-device model answer from what it knows. Code that reads DecisionRequest.state now gets an optional, which is why this is a minor version. The only change since 0.2.3 is a wider tolerance in four live tests.