system_profile.yaml represents how a system profile could look like.
The picture presents a LAMP stack in three module streams. Following
are examples of ModuleInstallation entries representing a module installed
on a system at the time "present", marked on the picture, and their respective
upgrade paths described with capital letters matching each module.

This will be probably the most used way to install modules.
document: ModuleInstallation version: 1 metadata: description: I want a particular branch of lamp. data: selector: name: lamp stream: ipsum
Upgrade path: B D G
document: ModuleInstallation version: 1 metadata: description: I need anything with php 6. data: selector: api: rpms: php: "6"
Upgrade path: B D E F H
document: ModuleInstallation version: 1 metadata: description: I need anything with php 6.0, a more precise choice. data: selector: name: lamp api: rpms: php: "6.0"
Upgrade path: B D E G
document: ModuleInstallation version: 1 metadata: description: I need anything with php 6.0 and httpd 2.2. data: selector: name: lamp api: rpms: php: "6" httpd: "2.2"
Upgrade path: A C E