Contentful Personalization & Analytics
    Preparing search index...
    BatchExperienceEvent: ZodMiniDiscriminatedUnion<
        [
            ZodMiniObject<
                {
                    anonymousId: ZodMiniString<string>;
                    channel: ZodMiniUnion<
                        readonly [
                            ZodMiniLiteral<"mobile">,
                            ZodMiniLiteral<"server">,
                            ZodMiniLiteral<"web">,
                        ],
                    >;
                    context: ZodMiniObject<
                        {
                            app: ZodMiniOptional<
                                ZodMiniObject<
                                    { name: ZodMiniString<string>; version: ZodMiniString<string> },
                                    $strip,
                                >,
                            >;
                            campaign: ZodMiniObject<
                                {
                                    content: ZodMiniOptional<ZodMiniString<string>>;
                                    medium: ZodMiniOptional<ZodMiniString<string>>;
                                    name: ZodMiniOptional<ZodMiniString<string>>;
                                    source: ZodMiniOptional<ZodMiniString<string>>;
                                    term: ZodMiniOptional<ZodMiniString<string>>;
                                },
                                $strip,
                            >;
                            gdpr: ZodMiniObject<
                                { isConsentGiven: ZodMiniBoolean<boolean> },
                                $strip,
                            >;
                            library: ZodMiniObject<
                                { name: ZodMiniString<string>; version: ZodMiniString<string> },
                                $strip,
                            >;
                            locale: ZodMiniString<string>;
                            location: ZodMiniOptional<
                                ZodMiniObject<
                                    {
                                        city: ZodMiniOptional<ZodMiniString<(...)>>;
                                        continent: ZodMiniOptional<ZodMiniString<(...)>>;
                                        coordinates: ZodMiniOptional<ZodMiniObject<(...), (...)>>;
                                        country: ZodMiniOptional<ZodMiniString<(...)>>;
                                        countryCode: ZodMiniOptional<ZodMiniString<(...)>>;
                                        postalCode: ZodMiniOptional<ZodMiniString<(...)>>;
                                        region: ZodMiniOptional<ZodMiniString<(...)>>;
                                        regionCode: ZodMiniOptional<ZodMiniString<(...)>>;
                                        timezone: ZodMiniOptional<ZodMiniString<(...)>>;
                                    },
                                    $strip,
                                >,
                            >;
                            page: ZodMiniOptional<
                                ZodMiniObject<
                                    {
                                        path: ZodMiniString<string>;
                                        query: ZodMiniRecord<ZodMiniString<(...)>, ZodMiniString<(...)>>;
                                        referrer: ZodMiniString<string>;
                                        search: ZodMiniString<string>;
                                        title: ZodMiniOptional<ZodMiniString<(...)>>;
                                        url: ZodMiniString<string>;
                                    },
                                    $catchall<ZodMiniJSONSchema>,
                                >,
                            >;
                            screen: ZodMiniOptional<
                                ZodMiniObject<
                                    { name: ZodMiniString<string> },
                                    $catchall<ZodMiniJSONSchema>,
                                >,
                            >;
                            userAgent: ZodMiniOptional<ZodMiniString<string>>;
                        },
                        $strip,
                    >;
                    messageId: ZodMiniString<string>;
                    originalTimestamp: ZodMiniISODateTime;
                    sentAt: ZodMiniISODateTime;
                    timestamp: ZodMiniISODateTime;
                    type: ZodMiniLiteral<"alias">;
                    userId: ZodMiniOptional<ZodMiniString<string>>;
                },
                $strip,
            >,
            ZodMiniObject<
                {
                    anonymousId: ZodMiniString<string>;
                    channel: ZodMiniUnion<
                        readonly [
                            ZodMiniLiteral<"mobile">,
                            ZodMiniLiteral<"server">,
                            ZodMiniLiteral<"web">,
                        ],
                    >;
                    componentId: ZodMiniString<string>;
                    componentType: ZodMiniUnion<
                        readonly [ZodMiniLiteral<"Entry">, ZodMiniLiteral<"Variable">],
                    >;
                    context: ZodMiniObject<
                        {
                            app: ZodMiniOptional<
                                ZodMiniObject<
                                    { name: ZodMiniString<string>; version: ZodMiniString<string> },
                                    $strip,
                                >,
                            >;
                            campaign: ZodMiniObject<
                                {
                                    content: ZodMiniOptional<ZodMiniString<string>>;
                                    medium: ZodMiniOptional<ZodMiniString<string>>;
                                    name: ZodMiniOptional<ZodMiniString<string>>;
                                    source: ZodMiniOptional<ZodMiniString<string>>;
                                    term: ZodMiniOptional<ZodMiniString<string>>;
                                },
                                $strip,
                            >;
                            gdpr: ZodMiniObject<
                                { isConsentGiven: ZodMiniBoolean<boolean> },
                                $strip,
                            >;
                            library: ZodMiniObject<
                                { name: ZodMiniString<string>; version: ZodMiniString<string> },
                                $strip,
                            >;
                            locale: ZodMiniString<string>;
                            location: ZodMiniOptional<
                                ZodMiniObject<
                                    {
                                        city: ZodMiniOptional<ZodMiniString<(...)>>;
                                        continent: ZodMiniOptional<ZodMiniString<(...)>>;
                                        coordinates: ZodMiniOptional<ZodMiniObject<(...), (...)>>;
                                        country: ZodMiniOptional<ZodMiniString<(...)>>;
                                        countryCode: ZodMiniOptional<ZodMiniString<(...)>>;
                                        postalCode: ZodMiniOptional<ZodMiniString<(...)>>;
                                        region: ZodMiniOptional<ZodMiniString<(...)>>;
                                        regionCode: ZodMiniOptional<ZodMiniString<(...)>>;
                                        timezone: ZodMiniOptional<ZodMiniString<(...)>>;
                                    },
                                    $strip,
                                >,
                            >;
                            page: ZodMiniOptional<
                                ZodMiniObject<
                                    {
                                        path: ZodMiniString<string>;
                                        query: ZodMiniRecord<ZodMiniString<(...)>, ZodMiniString<(...)>>;
                                        referrer: ZodMiniString<string>;
                                        search: ZodMiniString<string>;
                                        title: ZodMiniOptional<ZodMiniString<(...)>>;
                                        url: ZodMiniString<string>;
                                    },
                                    $catchall<ZodMiniJSONSchema>,
                                >,
                            >;
                            screen: ZodMiniOptional<
                                ZodMiniObject<
                                    { name: ZodMiniString<string> },
                                    $catchall<ZodMiniJSONSchema>,
                                >,
                            >;
                            userAgent: ZodMiniOptional<ZodMiniString<string>>;
                        },
                        $strip,
                    >;
                    experienceId: ZodMiniOptional<ZodMiniString<string>>;
                    messageId: ZodMiniString<string>;
                    originalTimestamp: ZodMiniISODateTime;
                    sentAt: ZodMiniISODateTime;
                    timestamp: ZodMiniISODateTime;
                    type: ZodMiniLiteral<"component">;
                    userId: ZodMiniOptional<ZodMiniString<string>>;
                    variantIndex: ZodMiniNumber<number>;
                },
                $strip,
            >,
            ZodMiniObject<
                {
                    anonymousId: ZodMiniString<string>;
                    channel: ZodMiniUnion<
                        readonly [
                            ZodMiniLiteral<"mobile">,
                            ZodMiniLiteral<"server">,
                            ZodMiniLiteral<"web">,
                        ],
                    >;
                    context: ZodMiniObject<
                        {
                            app: ZodMiniOptional<
                                ZodMiniObject<
                                    { name: ZodMiniString<string>; version: ZodMiniString<string> },
                                    $strip,
                                >,
                            >;
                            campaign: ZodMiniObject<
                                {
                                    content: ZodMiniOptional<ZodMiniString<string>>;
                                    medium: ZodMiniOptional<ZodMiniString<string>>;
                                    name: ZodMiniOptional<ZodMiniString<string>>;
                                    source: ZodMiniOptional<ZodMiniString<string>>;
                                    term: ZodMiniOptional<ZodMiniString<string>>;
                                },
                                $strip,
                            >;
                            gdpr: ZodMiniObject<
                                { isConsentGiven: ZodMiniBoolean<boolean> },
                                $strip,
                            >;
                            library: ZodMiniObject<
                                { name: ZodMiniString<string>; version: ZodMiniString<string> },
                                $strip,
                            >;
                            locale: ZodMiniString<string>;
                            location: ZodMiniOptional<
                                ZodMiniObject<
                                    {
                                        city: ZodMiniOptional<ZodMiniString<(...)>>;
                                        continent: ZodMiniOptional<ZodMiniString<(...)>>;
                                        coordinates: ZodMiniOptional<ZodMiniObject<(...), (...)>>;
                                        country: ZodMiniOptional<ZodMiniString<(...)>>;
                                        countryCode: ZodMiniOptional<ZodMiniString<(...)>>;
                                        postalCode: ZodMiniOptional<ZodMiniString<(...)>>;
                                        region: ZodMiniOptional<ZodMiniString<(...)>>;
                                        regionCode: ZodMiniOptional<ZodMiniString<(...)>>;
                                        timezone: ZodMiniOptional<ZodMiniString<(...)>>;
                                    },
                                    $strip,
                                >,
                            >;
                            page: ZodMiniOptional<
                                ZodMiniObject<
                                    {
                                        path: ZodMiniString<string>;
                                        query: ZodMiniRecord<ZodMiniString<(...)>, ZodMiniString<(...)>>;
                                        referrer: ZodMiniString<string>;
                                        search: ZodMiniString<string>;
                                        title: ZodMiniOptional<ZodMiniString<(...)>>;
                                        url: ZodMiniString<string>;
                                    },
                                    $catchall<ZodMiniJSONSchema>,
                                >,
                            >;
                            screen: ZodMiniOptional<
                                ZodMiniObject<
                                    { name: ZodMiniString<string> },
                                    $catchall<ZodMiniJSONSchema>,
                                >,
                            >;
                            userAgent: ZodMiniOptional<ZodMiniString<string>>;
                        },
                        $strip,
                    >;
                    messageId: ZodMiniString<string>;
                    originalTimestamp: ZodMiniISODateTime;
                    sentAt: ZodMiniISODateTime;
                    timestamp: ZodMiniISODateTime;
                    type: ZodMiniLiteral<"group">;
                    userId: ZodMiniOptional<ZodMiniString<string>>;
                },
                $strip,
            >,
        ],
        "type",
    > = ...

    Zod schema describing each valid experience/personalization event within a batch.

    This is a discriminated union on the type field that supports all event types used in batch ingestion, each extended with an anonymousId.