---
# System prepended metadata

title: Moodey YAML Reference

---

# Moodey YAML Reference

# General Structure


The structure of the YAML text describing the Mood Survey (Also called the **Mood Survey Descriptor**) is like so:

```yaml=
-   name: [name of the first question]    
    type: [question type of first question]
    title: [title of first question]
    [other fields depending on question type]
    ...
-   name: [name of the second question]
    type: [question type of second question]
    title: [title of second question]
    [other fields depending on question type]
    ...
...
```

The structure of the YAML text describing the Questionnaire Sequence (Also called the **Questionnaire Sequence Descriptor**) is like so:

```yaml=
-   name: [name of first questionnnaire]
    explanation: 
        title: [title of the explanation screen of the first questonnaire]
        body: [body of the explanation screen of the first questonnaire]
    questions: 
        -   name: [name  of the first question]
            type: [question type of first question]
            title: [title of first question]
            [other fields depending on question type]
            ...
        -   name: [name of the second question]
            type: [question type of second question]
            title: [title of second question]
            [other fields depending on question type]
            ...
        ...
-   name: [name of second questionnnaire]
    explanation: 
        title: [title of the explanation screen of the second questionnnaire]
        body: [body of the explanation screen of the second questionnnaire]
    questions: [list of question descriptors for the second questionnnaire]
...
```


# Terminology


## Question Descriptor
A Question Descriptor is a collection of fields (also called a Dictionary) describing an interface which prompts the user for some input. 
The Mood Survey Descriptor is nothing but a list of Question Descriptors.

## Field
A field is a key-value pair. When we refer to a "field `xyz`" we refer to the field whose key is`xyz`.

## Questionnaire Descriptor
Dictionary containing a list of Question Descriptors (in the field `questions`) as well as a `name` field and an optional `explanation` field .

## Mood Survey Descriptor
A list of Question Descriptors.

## Questionnaire Sequence Descriptor
A list of Questionnaire Descriptors.



# Keywords

## Questionnaire Descriptor
*These fields are **required** on all Questionnaire Descriptors, unless specified otherwise.*

- `name` Name of the questionnaire. This is not displayed to the user but stored with the answers. Data will be marked with this name when exporting data via Moodey Manager.
- `explanation` Describes a screen appearing before the first question. This screen can be used to give the user instructions or motivate them to complete the questionnaire or something like that
    - Is not required. If left out, the first question will be displayed immediately after starting the questionnaire.
    - `title` Field contained in the `explanation` field. Describes the title text of the explanation screen
    - `body` Field contained in the `explanation` field. Describes the body text of the explanation screen
- `questions` List of Question Descriptors making up the questionnaire




## Question Descriptor

### All questions

*These fields are **required** on descriptors of all question types, unless specified otherwise.*

- `type` Must be one of the keywords listed under "Question types". E.g. `radio-buttons`.
- `super-title` Less prominent text displayed above the title. 
    - Not required
- `title` Text to be displayed above the user input interface.
- `name` Name of the question. This is not displayed to the user but stored with the answers. Data will be marked with this name when exporting data via Moodey Manager.
- `visualization-tag` Tag specifying how answers to this question should be displayed when visualizing data - both in the Mobile App and in Moodey Manager
    - Not required
    - Currently only works on slider questions
    - Possible values:
        - `mood` Answers to this question will by displayed on a graph line named "Mood" or something similar when visualizing data
        - `stress` Answers to this question will by displayed on a graph line named "Stress" or something similar when visualizing data

### Question types

### `slider`
*These fields are **required** on Question Descriptors where the field `type` is set to `slider`, unless specified otherwise.*

- `slider-increments` How many different values there are on the slider
- `slider-label-left` Text to the left of the slider
- `slider-label-right` Text to the right of the slider
- `slider-picture-left` Image displayed to the left of the slider
    - Possible values found under "Image values"
- `slider-picture-right` Image displayed to the right of the slider
    - Possible values found under "Image values"

### `special-situations`
*These fields are **required** on Question Descriptors where the field `type` is set to `special-situations`, unless specified otherwise.*

- `situations` List of Strings describing situations which the user can choose from. Must be relatively short to fit the popup button.
- `situation-selection-prompt` String prompting the user to choose one of the situations. Must be relatively short to fit the popup button.

### `companion-selection`
*No additional fields are required on Question Descriptors where the field `type` is set to `companion-selection` (The fields listed under "All questions" are still required though)*

### `radio-buttons`

*These fields are **required** on Question Descriptors where the field `type` is set to `radio-buttons`, unless specified otherwise.*
- `possible-answers` List of answers which the user can choose from.


### `text`
*These fields are **required** on Question Descriptors where the field `type` is set to `text`, unless specified otherwise.*

- `hint` Placeholder text in the text box, prompting entry of data.

### `number`
*These fields are **required** on Question Descriptors where the field `type` is set to `number`, unless specified otherwise.*

- `hint` Placeholder text in the text box, prompting entry of data.

### `consent-form`
*These fields are **required** on Question Descriptors where the field `type` is set to `consent-form`, unless specified otherwise.*

- `body` Text describing the terms and conditions which we want the user to agree to.
- `checkbox-text` Text next to the checkbox which the user checks to accept the terms and conditions.


# Image values

## Emojis
- `emoji_1` through `emoji_103`. Mostly yellow faces and some others.