Package-level declarations
Types
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.
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.
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.
Structural value facts shared by schema declarations and metadata.
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.
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.