Along that way, I've extracted the logic that looks up the index types by path from SimpleAggregator and put it for reuse into TableType. Now it can get used like this:
$indexType = $tableType->findIndexPath("primary", "fifo");
The arguments form a path of names in the index type tree. If the path is not found, the function would confess (that is die, with a stack trace). An empty path is also illegal and would cause the same result.