ProblemPrimitive
A scalar extension value: a string, a number, or a boolean.
The wire literal stays verbatim instead of getting parsed into a Kotlin type. That is what lets a number survive both codecs byte for byte: 1.50 gets written back as 1.50, not 1.5.
Properties
The scalar parsed as a Boolean.
The scalar parsed as a Boolean, or null if this value is not a scalar or is not true/false.
The scalar parsed as a Double. Reads the wire literal, so a quoted "1.5" also returns 1.5.
The scalar parsed as a Double, or null if this value is not a scalar or does not parse.
The scalar parsed as an Int.
The scalar parsed as an Int, or null if this value is not a scalar or does not parse.
The scalar parsed as a Long. Reads the wire literal, so a quoted "30" also returns 30.
The scalar parsed as a Long, or null if this value is not a scalar or does not parse.
This value as a scalar.
This value as a scalar, or null if it is an array, an object or ProblemNull.
This value as an array.
This value as an array, or null if it is anything else.
This value as an object.
This value as an object, or null if it is anything else.
The scalar's wire literal as text, with the quotes of a JSON string already removed.
The scalar's wire literal as text, or null if this value is not a scalar.
Functions
Two primitives are equal when the literal and the string flag both match. That keeps the string "30" and the number 30 apart, even though both share a ProblemPrimitive.content of 30.
The value as it would be written to a JSON document, quoted when ProblemPrimitive.isString.