QueryFieldCapabilities
The effective capabilities of one field, compiled once from its value definition, the capabilities storage grants it, its sensitivity, its element scopes and the model's storage support (design §5.2, P2). Admission checks each reference against this record, the descriptor publishes it, and it lists each capability with the cost class its spec states, which an entry gate that refuses expensive operations also reads. The value rules of the operator, group and metric specs are decided here, once, so admission and the descriptor cannot disagree about them.
What depends on one request (a value within the field's domain, a relative-time configuration, a dynamic key) is still checked by admission.
Properties
Whether the field's values are aggregated at all: unprotected, with a terms, numeric or temporal capability.
Whether any alternative of the value is an array, so storage may hold several values per record.
How many values one record holds for the field; null when its value is unknown or mixes both.
Whether the field is a known collection: every non-null alternative is an array.
Whether callers may compare the field's raw value (filters and paged sorts).
Whether the field can order a cursor: cursor-sortable storage, single-valued, top level and unprotected.
Whether the field is an input of arithmetic aggregation expressions.
The capabilities storage grants the field.
Whether a metric filter may name the field: metric filters test whole values, so no array alternative.
The metric types that may read the field, in spec order; COUNT and DERIVED read none.
Whether TERMS may name a key for records without a value: a single-valued string field.
The field operators a caller may apply, in operator order: those storage grants whose value rule the field satisfies, on a comparable field inside granted element scopes. A dynamic key's record reads the same checks.
Whether some value of the field is a scalar a comparison value can be checked against.
Whether the field holds one string per record (or null).
Functions
metrics, without the expensive ones unless allowExpensive.
operators, without the expensive ones unless allowExpensive.