Never again without a contract: dry-validation

Ruby