Josh,
The number is referred to an an Event Variable. They are most commonly populated in one of three ways:
1. Internally in the code. When Spectrum creates an event from an inference handler, the developer can create an event and populate the Event Variable with data.
2. Using an Event Procedure, the user can tell Spectrum to take the value of a model attribute and save it to an Event Variable. Or they can take an existing Event Variable, apply a regular expression to extract a piece of information out of the existing Event Variable and save it to a new Event Variable.
3. From a trap varbind. In the AlertMap file, the user can tell Spectrum to save the value of a varbind to an Event Variable.
In any case, after the value is saved to an Event Variable, the Event Format files tell Spectrum how to display the saved value. For example, if a value was saved to Event Variable 5, depending on the data type of the value, it can be displayed as follows: (See the "Variable Descriptions and Syntax" section of the documentation for a complete list)
For text - {S 5}
For integer - {I 5}
For an octet string - {O 5}
For an enumerated table - {T (table name) 5}
For your question about ifDescr, I believe the 0x00220007 event is based on a trap and ifDescr is sent as a varbind with the trap.
Joe