pub fn compose_expense(fm: &Frontmatter) -> StringExpand description
expense → <date> — <amount> <currency> — <vendor>.
<amount> <currency> collapse to whichever is present; missing top-level
segments (date / amount-currency / vendor) drop out of the —-joined
line so a partial record still reads cleanly.