This struct holds indices. A module might produce different types of output. However, not every module that needs data from another module needs all those types. Thus for each module that requires input the output module has an IndicesStruct holding the IDs of the required output types. Example: The Detector's output are spikes (ID: 0), timestamps(ID: 1), whitening matrix (ID: 2) and current time (ID: 3). The Detector sends data to The Whitener, the Sorter and the Communicator. The Whitener requires the spikes and the whitening matrix. The Sorter requires the timestamps of each spike and the current time. The Communicator requires spikes and timestamps. Thus the Detector needs an array of 3 IndicesStructs. One for the Whitner, containg the indices 0 and 2. One for the Sorter containing indices 1 and 3. And one for the Communicator, containing indices 0 and 1.