How does Aggregator works?

Hello there! I was reading the protocol architecture blogpost that says:

Once ZK proofs are accepted by the Aggregator, the recipient chains can start optimistically accepting inbound messages (knowing that the eventual and global consistency is guaranteed by ZK proofs), which makes cross-chain interactions seamless.

What does it mean to be accepted by the Aggregator? to have finality on L1 or for the aggregator to store/broadcast the proof?

Unless it’s L1, I don’t quite see what’s the guarantee that enables optimistic consumption of messages, since generating a ZK proof is a validity/integrity proof, but before consuming a message you need for it to be canonical not just valid.

And if it’s L1, I’m not sure I see the benefit compared to polygon chains publishing their message queues individually without the aggregator.

What considerations should be taken into account when selecting and utilizing an aggregator in a frontend UI component library for a particular project?