Allow an internal pod template reference or object

Extracted from #1600, starts #170
It's because it now takes a pointer, because it's now optional.