This XEP is designed in a modular way, similar to [Mediated Information Exchange](https://xmpp.org/extensions/xep-0369.html). As such, this XEP only provided the basics for such
A community in XMPP is identified by a JID that "owns" the community. This may be a bare JID or a server"s JID. This JID must provide
a [PubSub](https://xmpp.org/extensions/xep-0060.html) service on which the community"s metadata is stored. This XEP proposes a couple of basic nodes, but other XEPs may extend
This element is stored in the `proto:urn:xmpp:community:0:info` [PubSub](https://xmpp.org/extensions/xep-0060.html) node at the bare JID of the community.
Implementations MUST use an id of "latest" to prevent multiple revisions of existing.
```xml
<iqtype="result"from="community.example.org">
<pubsubxmlns="http://jabber.org/protocol/pubsub">
<itemsnode="proto:urn:xmpp:community:0:info">
<itemid="latest">
<informationxmlns="proto:urn:xmpp:community:0">
<title>Awesome Community</title>
<description>...</description>
<iconurl="https://example.org"/>
</information>
</item>
</items>
</pubsub>
</iq>
```
### Channel
Within this XEP, a channel refers to each item within a channel group that should be displayable by the client. This XEP provides
the `<channel />` element which community administrators MAY use to link to items within the XMPP network by its JID.
The defined types are:
-`groupchat`: A joinable group chat (MUC, MIX, ...)
-`user`: A JID that a one-on-one conversation can be started with
-`community`: A link to another community as defined per this XEP.
Each extension item inside the `<group />` must also carry an id. The id must be unique within its surrounding group, but not the parent or child groups.
A community has a single `proto:urn:xmpp:community:0:groups` [PubSub](https://xmpp.org/extensions/xep-0060.html) node that contains one top-level group called the *root group*. It MAY have a title, but it does not
- Using just this XEP, one can implement Gajim-like workspaces: Create a private community on your own bare JID and create a channel group per workspace.
- For pinning, each pinned `<channel />` could get a `<pinned />` child that indicates that it is pinned. The pinned items could then either have a different sorting or the same.