public function request($endpoint, $securityPacket, $secret, /* FIXME: array */ $requestPacket = [], $action = null)
    {
        if (!is_array($requestPacket)) {
            Init::warnDeprecated(
                __CLASS__ . '::' . __FUNCTION__ . ':'
                . ' $requestPacket should be a PHP array.'
            );
        }

        $init = new Init('data', $securityPacket, $secret, $requestPacket, $action);
        $params = $init->generate();
        return $this->remote->post($endpoint, $params, $this->remoteOptions);
    }