Problem statement: While indexing it's impossible to extract information from the Extrinsic call when Extrinsic has optional parameters (default if none).
Solutions:
- storage lookup (seems suboptimal due to the direct chain access). Subsquid is used for indexing, and it doesn't support off-chain storage lookups;
- extending the Event (it becomes big).
I assume it is not a common practice to have an Event with 10-15+ fields. The only downside I see - it takes up some space in the block. Another upside of Event extension - it simplifies indexing code since an Extrinsic handler or storage lookup is no longer needed.
Questions: Are there any other downsides to having "thick" Events? Trade-offs: big events vs. storage lookup?
Some related links: