getCounts answers "how much of each feature"; this answers "what are the values like".
Null aggregates (no numbers in the range) are elided rather than printed as null.
Errors are population for a report, never faults: aggregates are taken over the numeric
cells (onError: 'ignore' — the stats object's own default policy is 'throw', which
would make the range that most needs a stats report the one that returns nothing), and the
error count is its own line item so nothing degrades silently.
Aggregates print through encodeNumber — a derived mean carries no number format, so
without the display cap an Average publishes the full 17-digit float of its own division.
Renders a stats report — occupancy, numeric aggregates, and the type breakdown.