Via ParserOutputUsageAccumulator we currently store a list of EntityUsage objects in a client page's ParserOutput. Given that these ParserOutput object themselves are fully (serialized and gzipped) saved in ParserCache (which is read and unserialized for various purposes), we should try to avoid attaching to much cruft to them.
When testing this locally, I was able to save about 23 bytes per EntityUsage (after gzip), by storing an array (identity string -> null) instead of (identity string -> EntityUsage). Given that all information in EntityUsage objects is part of the identity strings, storing just these will suffice.