I built Emit after going from producing events in an event driven environment to consuming data I didn't create in an analytics role and guessing more often than I'd like to admit. The code is the only thing that actually tells you what events mean (e.g. a negative bill_amount on purchase_completed = refund), so Emit reads it and writes the catalog from it. Open source.