These slices will allocate new arrays every frame.  Instead of copying the default credits into the current frame's credits, just set `.length = 0` on both arrays here, then inside endFrame, loop over the default credits and process them as a first pass.  You can factor out code from `endFrame` so you don't need to copy/paste.  This also means that `addDefaultCredit` won't need to touch the current frame credits.