Specd complex representor

This is intended as a code quality version of the previous PR, please review for merge.
Yeah, it is a little weird.  We're looking at the builder interface and likely to refactor this out, but right now the builder has to be constructed entirely within a Representor block - which is not really working.