compile
Compiles these facts about logicalSchema into the model's schema. The storage-independent capability rules apply here, once for every storage:
a cursor orders by one value per record, so no path inside an array or with an array alternative is cursor-sortable;
temporal aggregation reads instants, so it needs one date or epoch encoding shared by every value;
an element scope is an array of objects, a union of objects included (isElementScope); storages only say whether their native structures can match one element;
a multi-valued value (any array alternative) has no single number or instant per record, so it is granted no numeric or temporal aggregation (a root sum over an array silently under-counted); terms still group it by each of its values. A value inside an element scope is single-valued there: expand the element (
AggregationQuery.elements) to aggregate it.