Configuration to provide a new object pool
The type of objects contained within the pool
Arguments provided when initializing a pool object
Initializer logic when reusing a pooled object
Arguments to initialize the pooled objected
Reset logic when returning a pooled object
The total size of the object pool
Spawning logic when creating the object pool
Configuration to provide a new object pool