constraint = new Assert\Collection([ 'fields' => [ 'dataset_id' => new Assert\Required([ new Assert\Type('integer'), ]), 'prompt' => new Assert\Required([ new Assert\Type('string'), ]), 'response' => new Assert\Required([ new Assert\Type('string'), ]), 'priority' => new Assert\Optional([ new Assert\Type('integer'), ]), ], 'allowExtraFields' => true, ]); } public function validate(array $values): ConstraintViolationListInterface { $validator = Validation::createValidator(); return $validator->validate($values, $this->constraint); } }