Great article, thanks for the tips. I did run into one problem, I copied your template to use it and just the base template is failing a shellcheck test:
^-- SC2145: Argument mixes string and array. Use * or separate argument.
I took that advice and changed from $@ to $*, the example still works, so I thought I would point it out.