public static EventDescription Parse(ReadOnlySpan <byte> data)
        {
            var reader = new Utf8GraphQLReader(data);

            if (reader.Read())
            {
                if (reader.Kind != TokenKind.Name)
                {
                    // TODO : exception
                    throw new Exception();
                }

                string name = reader.GetString();

                var parser = new Utf8GraphQLParser(
                    reader,
                    ParserOptions.NoLocation);
                IReadOnlyList <ArgumentNode> arguments = parser.ParseArguments();
                return(new EventDescription(name, arguments));
            }

            throw new ArgumentException("data is empty.", nameof(data));
        }