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

# Variable communityProjectionSchema`Const`

```typescript
communityProjectionSchema: ZodObject<
    {
        channels: ZodArray<
            ZodObject<
                {
                    archivedAt: ZodOptional<ZodString>;
                    channelRef: ZodString;
                    createdAt: ZodString;
                    description: ZodOptional<ZodString>;
                    locked: ZodBoolean;
                    mode: ZodEnum<
                        {
                            announcements: "announcements";
                            chat: "chat";
                            issues: "issues";
                            topics: "topics";
                        },
                    >;
                    name: ZodString;
                    position: ZodNumber;
                    postingPolicy: ZodEnum<
                        {
                            members: "members";
                            moderators: "moderators";
                            "read-only": "read-only";
                        },
                    >;
                    ratePolicy: ZodOptional<
                        ZodObject<
                            {
                                burstLimit: ZodOptional<ZodNumber>;
                                burstWindowSeconds: ZodOptional<ZodNumber>;
                                minimumIntervalSeconds: ZodOptional<ZodNumber>;
                            },
                            $strict,
                        >,
                    >;
                    slug: ZodString;
                    version: ZodNumber;
                    visibility: ZodEnum<
                        { members: "members"; moderators: "moderators"; public: "public" },
                    >;
                },
                $strict,
            >,
        >;
        messages: ZodArray<
            ZodObject<
                {
                    attachmentReceipt: ZodOptional<
                        ZodObject<
                            {
                                bytes: ZodNumber;
                                mediaType: ZodEnum<
                                    {
                                        "application/pdf": "application/pdf";
                                        "image/gif": "image/gif";
                                        "image/jpeg": "image/jpeg";
                                        "image/png": "image/png";
                                        "image/webp": "image/webp";
                                        "text/csv": "text/csv";
                                        "text/markdown": "text/markdown";
                                        "text/plain": "text/plain";
                                    },
                                >;
                                name: ZodString;
                                receiptId: ZodString;
                            },
                            $strict,
                        >,
                    >;
                    author: ZodObject<
                        {
                            displayName: ZodString;
                            handle: ZodString;
                            profileRef: ZodString;
                        },
                        $strict,
                    >;
                    body: ZodString;
                    channelRef: ZodString;
                    createdAt: ZodString;
                    editedAt: ZodOptional<ZodString>;
                    mentions: ZodArray<
                        ZodObject<
                            {
                                displayName: ZodString;
                                handle: ZodString;
                                profileRef: ZodString;
                            },
                            $strict,
                        >,
                    >;
                    messageRef: ZodString;
                    parent: ZodOptional<
                        ZodObject<
                            {
                                authorDisplayName: ZodString;
                                body: ZodString;
                                createdAt: ZodString;
                                messageRef: ZodString;
                            },
                            $strict,
                        >,
                    >;
                    reactions: ZodArray<
                        ZodObject<
                            {
                                count: ZodNumber;
                                emoji: ZodString;
                                reactedByViewer: ZodBoolean;
                            },
                            $strict,
                        >,
                    >;
                    version: ZodNumber;
                },
                $strict,
            >,
        >;
        operator: ZodOptional<
            ZodObject<
                {
                    audit: ZodArray<
                        ZodObject<
                            {
                                action: ZodString;
                                actorLabel: ZodString;
                                createdAt: ZodString;
                                reason: ZodString;
                                target: ZodNullable<ZodString>;
                                targetLabel: ZodString;
                            },
                            $strict,
                        >,
                    >;
                    channels: ZodArray<
                        ZodObject<
                            {
                                archivedAt: ZodOptional<ZodString>;
                                createdAt: ZodString;
                                description: ZodOptional<ZodString>;
                                locked: ZodBoolean;
                                mode: ZodEnum<
                                    {
                                        announcements: "announcements";
                                        chat: "chat";
                                        issues: "issues";
                                        topics: "topics";
                                    },
                                >;
                                name: ZodString;
                                position: ZodNumber;
                                postingPolicy: ZodEnum<
                                    {
                                        members: "members";
                                        moderators: "moderators";
                                        "read-only": "read-only";
                                    },
                                >;
                                ratePolicy: ZodOptional<
                                    ZodObject<
                                        {
                                            burstLimit: ...;
                                            burstWindowSeconds: ...;
                                            minimumIntervalSeconds: ...;
                                        },
                                        $strict,
                                    >,
                                >;
                                slug: ZodString;
                                target: ZodString;
                                version: ZodNumber;
                                visibility: ZodEnum<
                                    {
                                        members: "members";
                                        moderators: "moderators";
                                        public: "public";
                                    },
                                >;
                            },
                            $strict,
                        >,
                    >;
                    roster: ZodArray<
                        ZodObject<
                            {
                                bio: ZodOptional<ZodString>;
                                displayName: ZodString;
                                handle: ZodString;
                                joinedAt: ZodString;
                                role: ZodEnum<{ member: "member"; moderator: "moderator" }>;
                                status: ZodEnum<
                                    { active: "active"; revoked: "revoked"; suspended: "suspended" },
                                >;
                                target: ZodString;
                                version: ZodNumber;
                            },
                            $strict,
                        >,
                    >;
                },
                $strict,
            >,
        >;
    },
    $strict,
> = ...
```
