code: func (w *World) AddSystemInterface(sys SystemAddByInterfacer, in interface{}, ex interface{}) {
  	w.AddSystem(sys)
  
  	if w.sysIn == nil {
  		w.sysIn = make(map[reflect.Type]reflect.Type)
  	}
  
  	w.sysIn[reflect.TypeOf(sys)] = reflect.TypeOf(in).Elem()
  
  	if ex == nil {
  		return
  	}
  
  	if w.sysEx == nil {
  		w.sysEx = make(map[reflect.Type]reflect.Type)
  	}
  
  	w.sysEx[reflect.TypeOf(sys)] = reflect.TypeOf(ex).Elem()
  }
docs: // AddSystemInterface adds a system to the world, but also adds a filter that allows
  // automatic adding of entities that match the provided in interface, and excludes any
  // that match the provided ex interface, even if they also match in. in and ex must be
  // pointers to the interface or else this panics.