Package-level declarations

Types

Link copied to clipboard
sealed interface NumericFormat : QuerySemanticType

How a numeric field is meant to be read (design §6.6): its decimal scale, and for Money its currency. This is display and totalling semantics for query consumers, never inferred from the JVM type, and it does not change how the field is queried.

Link copied to clipboard

What storage lets a field do. A closed set: a backend grants a subset per field, and every query rule is written against these values.

Link copied to clipboard
Link copied to clipboard
data class QueryDeprecation(val message: String? = null)

A field kept only for existing callers: it can still be queried, but new queries and view definitions should avoid it. message says why, or what to use instead; omitted when the declaration gave none.

Link copied to clipboard
data class QueryModel(val value: String)
Link copied to clipboard

What a field's value means beyond its type; a field has at most one. A type this version does not know reads as Unknown, so a client on an older wow-api can still read a newer server's descriptor.

Link copied to clipboard

Structural value facts shared by schema declarations and metadata.

Link copied to clipboard
data class QueryValueType(val value: String)
Link copied to clipboard
data class Reference(val contextName: String? = null, val aggregateName: String? = null, val contextNameField: String? = null, val aggregateNameField: String? = null) : QuerySemanticType

A value that is the id of an aggregate: the one named by contextName and aggregateName, or, per record, the one named by the sibling string fields contextNameField and aggregateNameField (as a serialized AggregateId holds them). Exactly one of the two pairs is given. Query consumers use it to look up and link to the aggregate; it does not change how the field is queried.

Link copied to clipboard
sealed interface Temporal : QuerySemanticType
Link copied to clipboard
data class TimeSpan(val timeUnit: TimeUnit) : QuerySemanticType

A number that is a length of time counted in timeUnit, such as a timeout in seconds, so query consumers format it as a duration. Declared on the model (@QueryDuration), never inferred: an Int does not tell its unit. It does not change how the field is queried.