protected function addUris(array $tracks, int $position = null)
    {
        if ($position === null) {
            $position = $this->getNextPosition();
        }

        /**
         * It seems like adding over 16 tracks at once causes the request to fail with error 402.
         * I guess at this point Sonos decides it's more efficient to lookup the contents
         * by their container, and the call fails because we don't have a container for these tracks.
         */
        $chunks = array_chunk($tracks, 16);

        foreach ($chunks as $chunk) {
            $uris = "";
            $metaData = "";
            $first = true;
            foreach ($chunk as $track) {
                if ($first) {
                    $first = false;
                } else {
                    $uris .= " ";
                    $metaData .= " ";
                }

                $uris .= $track->getUri();
                $metaData .= $track->getMetaData();
            }

            $numberOfTracks = count($chunk);

            $data = $this->soap("AVTransport", "AddMultipleURIsToQueue", [
                "UpdateID"                          =>  0,
                "NumberOfURIs"                      =>  $numberOfTracks,
                "EnqueuedURIs"                      =>  $uris,
                "EnqueuedURIsMetaData"              =>  $metaData,
                "DesiredFirstTrackNumberEnqueued"   =>  $position,
                "EnqueueAsNext"                     =>  0,
            ]);
            $this->updateId = $data["NewUpdateID"];

            $position += $numberOfTracks;
        }
    }