This was handled by ruport earlier, but that turned out to be overkill and give a huge amount of dependencies.
[Validate]