Redesign

there's a bit of code duplication here with `schemaToInputType` above. Would be good to pull both out into a constant dict elsewhere, so when we add new type support, we don't accidentally add it in one place and not the other.