{
  "generatedFrom": "cometchat.com/docs — ui-kit/android v6 (root tree): core-features, extensions, ai-features, call-features, components/*, guide-*, campaigns. Curated 2026-08-20 against the LIVE Android v6 docs (docs repo @ origin/main 3cdd17cd) and the android-v6 catalog built from the INSTALLED kit source (chatuikit-core/-kotlin/-compose 6.0.5). Android-first: entries reflect what the ANDROID docs claim, not a copy of the React list. PENDING (docs branch feature/android-pin_save_thread, not yet on main): pinned-messages, saved-messages, guide-thread-subscription — add pin-message/save-message/thread-subscription entries when that branch merges (tracked in DOCS-BACKLOG.md).",
  "schemaNotes": "Same schema as features.json (react v7). needs_stitching:true = a default-ON affordance is inert/partial until the host wires a callback + companion screen/navigation (or hides it). needs_dashboard = feature also requires a Dashboard/plan toggle ('VERIFY' = unconfirmed). deprecated:true = live docs are titled '(Legacy)'/'(Deprecated)' or point at legacy-docs — NEVER offer it as an 'add a feature' suggestion (AUDIT-077 rule). ui_components MUST exist in test-suite/catalogs/android-v6.json. COHORTS: one kit, two UI flavors — com.cometchat:chatuikit-kotlin-android (XML Views) and com.cometchat:chatuikit-compose-android (Jetpack Compose); the SAME CometChat* component names exist in both cohorts (docs pages carry a tab per cohort), so entries are cohort-neutral.",
  "family": "android",
  "major": "v6",
  "cohorts": ["views", "compose"],
  "categories": ["default", "extension", "ai", "package-install", "component-swap", "dashboard-only"],
  "enablement": ["auto", "dashboard-toggle", "dashboard-extension", "gradle-package", "code-prop"],
  "features": [
    {
      "id": "core-chat-surface",
      "name": "Production-ready core chat surface",
      "category": "default",
      "enablement": "auto",
      "needs_stitching": true,
      "ui_components": ["CometChatConversations", "CometChatMessageHeader", "CometChatMessageList", "CometChatMessageComposer", "CometChatThreadHeader", "CometChatSearch"],
      "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/getting-started",
      "notes": "COMPOSITE / app-level feature — the DEFAULT for an unscoped 'add chat' on Android. A production-ready CORE surface, lean but complete: init→login gate (CometChatUIKit.initFromSettings → CometChatUIKit.login; initFromSettings reads the gitignored assets/cometchat-settings.json and persists integrationSource=\"ai-agent\") BEFORE any UI; a Conversations screen navigating to a Message screen (MessageHeader + MessageList + MessageComposer) via native navigation (Activity/Fragment intent or Compose Navigation, correct back stack); THREADED REPLIES included by default (thread affordance → a thread screen with CometChatThreadHeader + thread-scoped list/composer); search default-on (conversation search + in-chat message search via CometChatSearch) wired-or-hidden; every default-on affordance wired to a destination or hidden; SIZED mobile-natively (match_parent fill, edge-to-edge insets handled, ime/keyboard-aware resize so the composer stays visible); init/login failures surfaced (onError), not crashed through; credentials via the gitignored assets/cometchat-settings.json (never hardcoded; prod omits the authKey); prod auth-token guidance (login(uid, authToken); Auth Key dev-only). Docs recipes: one-to-one-chat + conversation flow in getting-started-kotlin / getting-started-jetpack. Grows on request to tab-based selector / users / groups / calls → chat-experience. Gated extensions/AI stay OFF unless asked. Minimum encoded in contracts.android-v6.json ('core-chat-surface')."
    },
    {
      "id": "chat-experience",
      "name": "Complete chat experience (combined app)",
      "category": "default",
      "enablement": "auto",
      "needs_stitching": true,
      "ui_components": ["CometChatConversations", "CometChatUsers", "CometChatGroups", "CometChatCallLogs", "CometChatMessageHeader", "CometChatMessageList", "CometChatMessageComposer", "CometChatThreadHeader", "CometChatSearch", "CometChatGroupMembers", "CometChatIncomingCall"],
      "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/tab-based-chat",
      "notes": "COMPOSITE / app-level feature — the GROW target, emitted when the user asks for the WHOLE app (NOT the default for a plain 'add chat' — that is core-chat-surface). The docs' tab-based layout: a bottom-nav/tab selector (Chats + Users + Groups + Calls) → message screen → detail screens (user/group details with CometChatGroupMembers actions), thread screen, search screen, plus CometChatIncomingCall handling at the app level. needs_stitching: screens are wired by native navigation + item-click callbacks. Recipes: tab-based-chat (both cohorts), one-to-one-chat, conversation-message-view component. Minimum encoded in contracts.android-v6.json ('chat-experience')."
    },
    { "id": "text-messaging", "name": "Text messaging (instant messaging)", "category": "default", "enablement": "auto", "ui_components": ["CometChatMessageList", "CometChatMessageComposer"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/core-features", "notes": "Built-in; core chat (core-features §Instant Messaging)." },
    { "id": "media-file-attachments", "name": "Media & file sharing", "category": "default", "enablement": "auto", "ui_components": ["CometChatMessageComposer", "CometChatMessageList"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/core-features", "notes": "Built-in composer attachments (images/videos/audio/files) + typed bubbles in the list (core-features §Media Sharing)." },
    { "id": "delivery-read-receipts", "name": "Delivery & read receipts", "category": "default", "enablement": "auto", "ui_components": ["CometChatMessageList", "CometChatReceipts", "CometChatConversations"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/core-features", "notes": "Built-in (core-features §Read Receipts). Toggle via component props/attrs — FETCH exact names from the component pages." },
    { "id": "mark-as-unread", "name": "Mark as unread", "category": "default", "enablement": "auto", "ui_components": ["CometChatConversations"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/core-features", "notes": "Built-in conversation option (core-features §Mark as Unread)." },
    { "id": "typing-indicators", "name": "Typing indicators", "category": "default", "enablement": "auto", "ui_components": ["CometChatMessageList", "CometChatConversations"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/core-features", "notes": "Built-in (core-features §Typing Indicators)." },
    { "id": "user-presence", "name": "User presence (online/offline)", "category": "default", "enablement": "auto", "ui_components": ["CometChatConversations", "CometChatMessageHeader", "CometChatStatusIndicator"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/core-features", "notes": "Built-in (core-features §User Presence)." },
    { "id": "reactions", "name": "Message reactions", "category": "default", "enablement": "auto", "ui_components": ["CometChatMessageList"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/core-features", "notes": "ON BY DEFAULT in v6 (core-features §Reactions) — NOT a dashboard extension (AUDIT-077 class). Long-press reaction UI built into the message list." },
    { "id": "mentions", "name": "@ Mentions", "category": "default", "enablement": "auto", "ui_components": ["CometChatMessageComposer", "CometChatMessageList", "CometChatMentionsFormatter"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/core-features", "notes": "ON BY DEFAULT in v6 (core-features §Mentions) — NOT a dashboard extension (AUDIT-077 class). Customize via CometChatMentionsFormatter (mentions-formatter-guide)." },
    { "id": "rich-text-formatting", "name": "Rich text formatting", "category": "default", "enablement": "auto", "ui_components": ["CometChatMessageComposer", "CometChatRichTextFormatter"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/core-features", "notes": "Built-in (core-features §Rich Text Formatting); CometChatRichTextFormatter in the catalog." },
    { "id": "threaded-replies", "name": "Threaded conversations", "category": "default", "enablement": "code-prop", "needs_stitching": true, "ui_components": ["CometChatMessageList", "CometChatThreadHeader", "CometChatMessageComposer"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/guide-threaded-messages", "notes": "The list renders the thread affordance by default, but the HOST wires navigation to a thread screen (CometChatThreadHeader + parent-scoped MessageList/MessageComposer). Recipe: guide-threaded-messages. Part of the core-chat-surface default." },
    { "id": "quoted-replies", "name": "Quoted replies", "category": "default", "enablement": "auto", "ui_components": ["CometChatMessageList", "CometChatMessageComposer"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/core-features", "notes": "Built-in message option (core-features §Quoted Replies)." },
    { "id": "users-groups", "name": "Users & group chats", "category": "default", "enablement": "auto", "ui_components": ["CometChatUsers", "CometChatGroups", "CometChatGroupMembers"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/core-features", "notes": "Built-in list components + group management (create/join/leave/members) — core-features §Group Chats. Recipes: guide-group-chat, guide-new-chat, guide-message-privately." },
    { "id": "report-message", "name": "Report / flag a message", "category": "default", "enablement": "auto", "needs_dashboard": "VERIFY", "ui_components": ["CometChatMessageList"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/core-features", "notes": "Built-in message option (core-features §Report Message); reports land in the Moderation dashboard." },
    { "id": "message-search", "name": "Conversation & advanced search", "category": "default", "enablement": "code-prop", "needs_stitching": true, "needs_dashboard": "VERIFY", "ui_components": ["CometChatSearch"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/guide-search-messages", "notes": "CometChatSearch component (conversation + message search). Host wires the entry point (search icon/screen navigation). Recipe: guide-search-messages; component page components/search. Advanced message search may need a dashboard/plan enable — VERIFY." },
    { "id": "custom-message-types", "name": "Custom message types / templates", "category": "default", "enablement": "code-prop", "ui_components": ["CometChatMessageList"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/message-template", "notes": "DOCS-GAP (tracked in DOCS-BACKLOG.md): the message-template page's code uses CometChatMessageTemplate(), but the INSTALLED 6.0.5 kit source exposes NO public template class (only UIKitConstants.MessageTemplateId; catalog verified 2026-08-20). Do NOT emit CometChatMessageTemplate from memory — FETCH the live page and verify the symbol compiles before using; fall back to customization-view-slots for custom rendering." },
    { "id": "text-formatters", "name": "Custom text formatters (mentions/shortcuts/custom)", "category": "default", "enablement": "code-prop", "ui_components": ["CometChatTextFormatter", "CometChatMentionsFormatter", "CometChatRichTextFormatter"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/customization-text-formatters", "notes": "Extend CometChatTextFormatter for custom patterns. Recipes: custom-text-formatter-guide, mentions-formatter-guide, shortcut-formatter-guide." },
    { "id": "message-shortcuts", "name": "Message shortcuts", "category": "extension", "enablement": "dashboard-extension", "needs_stitching": true, "ui_components": ["CometChatTextFormatter"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/shortcut-formatter-guide", "notes": "Dashboard Message Shortcuts extension + a host-built ShortcutFormatter (extends CometChatTextFormatter) per the shortcut-formatter-guide recipe — not auto-rendered." },
    { "id": "stickers", "name": "Stickers", "category": "extension", "enablement": "dashboard-extension", "ui_components": ["CometChatMessageComposer", "CometChatStickerBubble", "CometChatStickerKeyboard"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/extensions", "notes": "Enable in Dashboard → auto-appears in the composer (extensions §Stickers). No extra code." },
    { "id": "polls", "name": "Polls", "category": "extension", "enablement": "dashboard-extension", "ui_components": ["CometChatMessageComposer", "CometChatCreatePoll", "CometChatPollBubble"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/extensions", "notes": "Enable in Dashboard → auto-appears in the composer action sheet (extensions §Polls). No extra code." },
    { "id": "collaborative-whiteboard", "name": "Collaborative whiteboard", "category": "extension", "enablement": "dashboard-extension", "ui_components": ["CometChatMessageComposer", "CometChatMessageList"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/extensions", "notes": "Enable in Dashboard → composer action sheet + collaborative bubble in the list (extensions §Collaborative Whiteboard)." },
    { "id": "collaborative-document", "name": "Collaborative document", "category": "extension", "enablement": "dashboard-extension", "ui_components": ["CometChatMessageComposer", "CometChatMessageList"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/extensions", "notes": "Enable in Dashboard → composer action sheet + collaborative bubble in the list (extensions §Collaborative Document)." },
    { "id": "message-translation", "name": "Message translation", "category": "extension", "enablement": "dashboard-extension", "ui_components": ["CometChatMessageList"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/extensions", "notes": "Enable in Dashboard → message action sheet in the list (extensions §Message Translation)." },
    { "id": "link-preview", "name": "Link preview", "category": "extension", "enablement": "dashboard-extension", "ui_components": ["CometChatMessageList"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/extensions", "notes": "Enable in Dashboard → URL previews render in message bubbles (extensions §Link Preview)." },
    { "id": "thumbnail-generation", "name": "Thumbnail generation", "category": "extension", "enablement": "dashboard-extension", "ui_components": ["CometChatMessageList"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/extensions", "notes": "Enable in Dashboard → media bubbles use generated thumbnails (extensions §Thumbnail Generation)." },
    { "id": "profanity-filter", "name": "Profanity filter", "category": "extension", "enablement": "dashboard-extension", "deprecated": true, "ui_components": ["CometChatMessageList"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/extensions", "notes": "LEGACY: the extensions page still lists it but its guide points at legacy-docs; superseded by the Moderation product (see 'moderation'). Do NOT suggest as a new-feature add — steer to Moderation (FEATURE-TAXONOMY rules 11–12)." },
    { "id": "moderation", "name": "Moderation", "category": "dashboard-only", "enablement": "dashboard-toggle", "ui_components": [], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/core-features", "notes": "Dashboard-configured (rules/keywords/AI moderation); no client code — core-features §Moderation. Client-visible effect: blocked/flagged messages. SDK view: sdk/android/v5/ai-moderation." },
    { "id": "smart-reply", "name": "Smart replies (AI)", "category": "ai", "enablement": "dashboard-toggle", "ui_components": ["CometChatMessageComposer"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/ai-features", "notes": "Enable in Dashboard → auto-appears in the composer action sheet (ai-features §Smart Replies). No extra code." },
    { "id": "conversation-starter", "name": "Conversation starter (AI)", "category": "ai", "enablement": "dashboard-toggle", "ui_components": ["CometChatMessageList"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/ai-features", "notes": "Enable in Dashboard → shown in the message list for new chats (ai-features §Conversation Starter). No extra code." },
    { "id": "conversation-summary", "name": "Conversation summary (AI)", "category": "ai", "enablement": "dashboard-toggle", "ui_components": ["CometChatMessageComposer"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/ai-features", "notes": "Enable in Dashboard → composer action sheet (ai-features §Conversation Summary). No extra code." },
    { "id": "ai-assistant", "name": "AI agent / assistant chat", "category": "ai", "enablement": "dashboard-toggle", "needs_stitching": true, "ui_components": ["CometChatAIAssistantChatHistory", "CometChatAIAssistantBubble", "CometChatMessageList", "CometChatMessageComposer"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/guide-ai-agent", "notes": "Chat with a dashboard-configured AI Agent: message screen scoped to the agent + CometChatAIAssistantChatHistory for past sessions. Recipe: guide-ai-agent; component page ai-assistant-chat-history. Requires an Agent configured in Dashboard." },
    { "id": "voice-video-calls", "name": "Voice & video calls", "category": "package-install", "enablement": "gradle-package", "needs_stitching": true, "ui_components": ["CometChatCallButtons", "CometChatIncomingCall", "CometChatOutgoingCall", "CometChatCallLogs", "CometChatCallActivity"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/calling-integration", "notes": "Add com.cometchat:calls-sdk-android — call buttons in MessageHeader then auto-appear; host wires an incoming-call listener/screen (calling-integration steps 1–3). Pages: call-features, components/call-buttons, incoming-call, outgoing-call, call-logs; recipe guide-call-log-details. Dashboard: calling enabled on the app." },
    { "id": "push-notifications", "name": "Push notifications (FCM)", "category": "package-install", "enablement": "gradle-package", "needs_stitching": true, "needs_dashboard": true, "ui_components": [], "docs_topic": "https://www.cometchat.com/docs/notifications/push-overview", "notes": "com.cometchat:push-notifications-android + Firebase Cloud Messaging + Dashboard provider setup (FCM credentials). Register token after login (CometChatNotifications.registerPushToken — SDK surface); notification payload handling is host code. Product docs: notifications/push-overview + android integration pages." },
    { "id": "notification-feed", "name": "In-app notification feed", "category": "default", "enablement": "code-prop", "needs_dashboard": "VERIFY", "ui_components": ["CometChatNotificationFeed"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/notification-feed", "notes": "Drop-in CometChatNotificationFeed component (components/notification-feed). Feed configuration lives in the Dashboard notifications product — VERIFY plan gating." },
    { "id": "campaigns", "name": "Campaigns", "category": "dashboard-only", "enablement": "dashboard-toggle", "ui_components": [], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/campaigns", "notes": "Authored/sent from the Dashboard; messages arrive through normal channels. No client code (ui-kit/android/campaigns)." }
  ]
}
