We is composed of two DNA types:
- The group clonable DNAs, which are responsible for...
- storing the agent's user profile for this group
- adding new applets to the group
A We group is an instance of the group DNA.
The applets zome is responsible for installing, joining and querying applets of the given we which are stored in the form of Applet
entries:
pub struct Applet {
// name of the applet as chosen by the person adding it to the group,
pub custom_name: String,
pub description: String,
pub appstore_app_hash: ActionHash,
pub devhub_dna_hash: DnaHash,
pub devhub_happ_entry_action_hash: ActionHash,
pub devhub_happ_release_hash: ActionHash,
pub initial_devhub_gui_release_hash: Option<ActionHash>,
pub network_seed: Option<String>,
pub properties: BTreeMap<String, SerializedBytes>, // Segmented by RoleName
}
The profiles zome is responsible for storing the profiles of the given we. An agent has one overarching profile for each instance of a we which will be used by any applet of that we.
The peer_status zome adds functionality to see the online status of other agents within the we.
The membrane invitations zome offers to send "DNA clone recipes" to other agents which they can then use to install an instance of the DNA in their conductor. It contains the required DNA properties of the form
{
logo_src: String,
name: String,
}