> ISPO SDK documentation. [HTML](https://ispo.ai/docs/variables/core.Supporting_types.communityProjectionSubscriptionDeliverySchema.html) · [Documentation index](https://ispo.ai/docs/llms.txt)

# Variable communityProjectionSubscriptionDeliverySchema`Const`

```typescript
communityProjectionSubscriptionDeliverySchema: ZodDiscriminatedUnion<
    [
        ZodObject<
            {
                eventCursor: ZodNumber;
                kind: ZodLiteral<"seed">;
                projection: ZodObject<
                    {
                        channels: ZodArray<
                            ZodObject<
                                {
                                    archivedAt: ZodOptional<ZodString>;
                                    channelRef: ZodString;
                                    createdAt: ZodString;
                                    description: ZodOptional<ZodString>;
                                    locked: ZodBoolean;
                                    mode: ZodEnum<
                                        { announcements: ...; chat: ...; issues: ...; topics: ... },
                                    >;
                                    name: ZodString;
                                    position: ZodNumber;
                                    postingPolicy: ZodEnum<
                                        { members: ...; moderators: ...; "read-only": ... },
                                    >;
                                    ratePolicy: ZodOptional<ZodObject<(...), (...)>>;
                                    slug: ZodString;
                                    version: ZodNumber;
                                    visibility: ZodEnum<{ members: ...; moderators: ...; public: ... }>;
                                },
                                $strict,
                            >,
                        >;
                        messages: ZodArray<
                            ZodObject<
                                {
                                    attachmentReceipt: ZodOptional<ZodObject<(...), (...)>>;
                                    author: ZodObject<
                                        { displayName: ...; handle: ...; profileRef: ... },
                                        $strict,
                                    >;
                                    body: ZodString;
                                    channelRef: ZodString;
                                    createdAt: ZodString;
                                    editedAt: ZodOptional<ZodString>;
                                    mentions: ZodArray<ZodObject<(...), (...)>>;
                                    messageRef: ZodString;
                                    parent: ZodOptional<ZodObject<(...), (...)>>;
                                    reactions: ZodArray<ZodObject<(...), (...)>>;
                                    version: ZodNumber;
                                },
                                $strict,
                            >,
                        >;
                        operator: ZodOptional<
                            ZodObject<
                                {
                                    audit: ZodArray<ZodObject<(...), (...)>>;
                                    channels: ZodArray<ZodObject<(...), (...)>>;
                                    roster: ZodArray<ZodObject<(...), (...)>>;
                                },
                                $strict,
                            >,
                        >;
                    },
                    $strict,
                >;
                recoveryCursor: ZodString;
            },
            $strict,
        >,
        ZodObject<
            {
                eventCursor: ZodNumber;
                kind: ZodLiteral<"delta">;
                projection: ZodObject<
                    {
                        channels: ZodArray<
                            ZodObject<
                                {
                                    archivedAt: ZodOptional<ZodString>;
                                    channelRef: ZodString;
                                    createdAt: ZodString;
                                    description: ZodOptional<ZodString>;
                                    locked: ZodBoolean;
                                    mode: ZodEnum<
                                        { announcements: ...; chat: ...; issues: ...; topics: ... },
                                    >;
                                    name: ZodString;
                                    position: ZodNumber;
                                    postingPolicy: ZodEnum<
                                        { members: ...; moderators: ...; "read-only": ... },
                                    >;
                                    ratePolicy: ZodOptional<ZodObject<(...), (...)>>;
                                    slug: ZodString;
                                    version: ZodNumber;
                                    visibility: ZodEnum<{ members: ...; moderators: ...; public: ... }>;
                                },
                                $strict,
                            >,
                        >;
                        messages: ZodArray<
                            ZodObject<
                                {
                                    attachmentReceipt: ZodOptional<ZodObject<(...), (...)>>;
                                    author: ZodObject<
                                        { displayName: ...; handle: ...; profileRef: ... },
                                        $strict,
                                    >;
                                    body: ZodString;
                                    channelRef: ZodString;
                                    createdAt: ZodString;
                                    editedAt: ZodOptional<ZodString>;
                                    mentions: ZodArray<ZodObject<(...), (...)>>;
                                    messageRef: ZodString;
                                    parent: ZodOptional<ZodObject<(...), (...)>>;
                                    reactions: ZodArray<ZodObject<(...), (...)>>;
                                    version: ZodNumber;
                                },
                                $strict,
                            >,
                        >;
                        operator: ZodOptional<
                            ZodObject<
                                {
                                    audit: ZodArray<ZodObject<(...), (...)>>;
                                    channels: ZodArray<ZodObject<(...), (...)>>;
                                    roster: ZodArray<ZodObject<(...), (...)>>;
                                },
                                $strict,
                            >,
                        >;
                    },
                    $strict,
                >;
            },
            $strict,
        >,
        ZodObject<
            {
                kind: ZodLiteral<"reset">;
                reason: ZodEnum<
                    {
                        "authority-changed": "authority-changed";
                        "recovery-gap": "recovery-gap";
                    },
                >;
            },
            $strict,
        >,
    ],
    "kind",
> = ...
```
