# Layouts
Layouts define how layers should be organized/associated when presented in the UI. A Layout consists primarily of two attributes. A mapping of layer attributes and how they should be associated (e.g. grouped_by, ordered_by, etc). As well as a representation of the components that should appear on the screen and how they should be ordered/organized.
## Attribute Mappings
The `attribute_map` indicates which values on a layer are important when it comes to UI concerns. These could be things like `priority` where you might want to sort/order or a `feature` field which you would want to group on. A mapping could have a single field it cares about or it could be compound.
For example say a team wanted to view features as Swim Lanes and still maintain a priority inside those lanes. That team would want a single layout mapping rule that grouped on one field and then after that ordered on another.
```
[
{
"name": "swim_lane",
"ops": [
{
"field": "feature",
"type": "group_on"
},
{
"field": "priority",
"type": "order_by"
}
]
}
]
```
**Questions**:
* What about things like coloring/highlighting?
## Template
The `template` indicates which UI components should be used and what mapping rules they should apply to their content.