Your resume.json is fine

When a JSON Resume render goes wrong, the schema is almost never the problem. The theme package is.

The schema is the stable part

JSON Resume has been at version 1.0.0 since 2014. A resume.json written years ago still parses in current tools.

Themes are not

Each theme is a separate npm package on its own release schedule. It decides which sections appear and how dates look.

No formatDate in theme-even

jsonresume-theme-even 0.26.1 ships no template engine at all. Dates are formatted in its own code with the locale fixed.

Handlebars themes differ

jsonresume-theme-elegant 1.16.1 still depends on handlebars and moment, so there the date format really does live in a template.

Read the dependencies first

No Handlebars in the list means the formatting isn't in a template, and no amount of configuration will move it.

Test with your own file

Demo data is always complete and well-formed. Yours has the gaps, which is where a theme quietly drops a section.

Structure isn't proof

A resume.json renders the same whether its claims are true or not. See what closes that gap.

Read the JSON Resume guide