    private function validatePicking(array $picking)
    {
        $errors = [];

        if (Picking::STANDARD === $picking['type']) {
            if (isset($picking['randomPick']) && Recurrence::NEVER !== $picking['randomPick'] && !isset($picking['pick'])) {
                // Random pick is enabled but the number of steps to pick is missing
                $errors[] = [
                    'path' => '/picking/randomPick',
                    'message' => 'The property `pick` is required when `randomPick` is not "never"',
                ];
            }

            // We can not keep the randomOrder from previous papers as we generate a new subset of steps for each attempt
            if (isset($picking['randomPick']) && Recurrence::ALWAYS === $picking['randomPick']
                && isset($picking['randomOrder']) && Recurrence::ONCE === $picking['randomOrder']) {
                // Incompatible randomOrder and randomPick properties
                $errors[] = [
                    'path' => '/picking/randomOrder',
                    'message' => 'The property `randomOrder` cannot be "once" when `randomPick` is "always"',
                ];
            }
        } elseif (Picking::TAGS === $picking['type']) {
            if (Recurrence::NEVER === $picking['randomPick']) {
                $errors[] = [
                    'path' => '/picking/randomPick',
                    'message' => 'The property `randomPick` cannot be "never" when picking `type` is "tags"',
                ];
            }
        }

        return $errors;
    }