private function getAdmJson(): string
    {
        $adm = [
            'data' => $this->getTrimmedJson([$this, 'getAdmJsonInner'], static::ADM_MAX_LENGTH, 'You message for ADM is too long'),
            'expiresAfter' => $this->ttl,
        ];

        foreach ($adm['data'] as $key => $value) {
            if (!\is_string($value)) {
                $adm['data']["{$key}_json"] = json_encode($value);
                unset($adm['data'][$key]);
            }
        }

        if ($this->collapseKey != static::NO_COLLAPSE) {
            $adm['consolidationKey'] = $this->collapseKey;
        }

        return json_encode($adm, JSON_UNESCAPED_UNICODE);
    }