Take a request in, validated and normalized, or not at all
intake_request.RdThe single door into the pure layer. Validation and the expiration conversion happen together because separating them would leave a way to get a valid request that was never converted, and the way to get the conversion wrong is to forget it.