- Mood switches from a single enum column to a many-to-many
JournalEntryMood table so an entry can carry several feelings at
once; the vocabulary is trimmed to 9 named emotions (dropped the
overlapping satisfaction scale) with unified noun-style labels.
- Categories can define a content_template that pre-fills the "new
entry" textarea when selected (only if the user hasn't started
typing), seeded with a Story/Feelings/Decisions/Insights/Actions
reflection template on the default "일상" category.
- Fixes a real attribute-injection bug found while building the
template feature: Jinja's built-in |tojson filter doesn't escape
double quotes, which breaks a double-quoted x-data="..." attribute
when the JSON payload contains one; added |forceescape and a
regression test.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>