As inputRequired, but encodes a typed state as the opaque
requestState. Serialises state to JSON and stores its string form.
ENCODING CONTRACT: the stored value is serializeToJson(state).toString(),
which RequestContext.requestStateAs!T() decodes via
deserializeJson!T(parseJsonString(state)). Constrained off string so it
does not collide with the verbatim-string overload above.
As inputRequired, but encodes a typed state as the opaque requestState. Serialises state to JSON and stores its string form. ENCODING CONTRACT: the stored value is serializeToJson(state).toString(), which RequestContext.requestStateAs!T() decodes via deserializeJson!T(parseJsonString(state)). Constrained off string so it does not collide with the verbatim-string overload above.