closes #153 many improvements to type layer (test, docs, refinement)

As you mentioned, I was mostly just concerned about complexity and the possibilities for typos. Given that it's a specialized mock in a discrete package for testing the custom type layer, I'd say I'm concerned much less about it. Still, it probably wouldn't hurt to put the expected input format in the constructor just for clarity.