Entries
One mood check-in or journal entry, with everything the app stored.
{
"date": "2026-03-01",
"time": "21:40",
"instant": null,
"mood": { "level": "good", "raw": "good" },
"sleep": null,
"title": "Sunday",
"note": "Long walk by the river.",
"prompts": [{ "prompt": "What made you smile?", "answer": "The ducks." }],
"tags": [{ "name": "walk", "group": "Hobbies" }],
"emotions": [{ "name": "calm" }],
"people": ["Sam"],
"media": { "photos": 1 },
"dropped": { "location": 1 }
}
Every field is written out, even when empty: null, [], {} or { "photos": 0 }.
| Field | Required | Purpose |
|---|---|---|
id |
No | The app’s id, for finding duplicates. |
date |
Yes | Local calendar day, YYYY-MM-DD. See dates and time. |
time |
Yes | Local wall-clock time HH:mm or HH:mm:ss, or null. |
instant |
Yes | Absolute moment when the file stores one, else null. |
mood |
Yes | { level, raw, label? } or null. level must exist in scales.mood. |
sleep |
Yes | Same shape, against scales.sleep. |
title, note |
Yes | Plain text or null. Line breaks kept. |
prompts |
Yes | Guided questions with answers, in source order. |
tags |
Yes | { name, group }. group is the app’s category, null when ungrouped. |
emotions |
Yes | { name }, spelled as the app spells them. |
people |
Yes | Names as the app spells them. |
media |
Yes | { photos }: counts only, files are not carried. |
dropped |
Yes | Source fields OWLF has no place for, with count on this entry. |
Raw values
mood.raw is the value exactly as in the file: "rad", 4, 73.5. label is set only when the file’s label differs from the level’s.
People
A person on an entry means the person connected with them that day: met, called, texted, thought about. It does not prove they spent time together, and the connection can feel good, bad or mixed.