This looks good. Need some unit tests, though. Both unit and end-to-end where a schema uses these new types.
Thanks for the contributions!