Version: dev

metadata

Identity and provenance for the document.

metadata is required, and name is the only required field inside it.

{
  "esm": "1.0.0",
  "metadata": {
    "name": "SimpleDecay",
    "description": "Exponential decay with a known analytical solution",
    "authors": ["Chris Tessum"],
    "license": "AGPL-3.0",
    "created": "2026-02-14T00:00:00Z",
    "modified": "2026-08-25T00:00:00Z",
    "tags": ["test", "analytical"],
    "references": [
      { "doi": "10.5194/gmd-15-1-2022", "notes": "Original formulation" }
    ]
  },
  "models": {
    "Decay": { "variables": {}, "equations": [] }
  }
}

Fields

FieldTypeMeaning
namestringRequired. The document’s name.
descriptionstringFree text.
authorsarray of stringAuthor names.
licensestringSPDX identifier by convention.
created / modifiedstringISO-8601 timestamps.
tagsarray of stringFree-form labels.
referencesarrayCitations; each entry may carry doi, url, title, notes.
system_classstringCoarse classification of the system.
dae_infoobjectSet when the document has been through DAE analysis.
discretized_fromobjectProvenance: the continuous document this was discretized from, as {"name": ...}.

name is the document’s name, and is independent of the keys under models — a component’s name is the key it is stored under, not a field on the component.

Component-level reference

Models and reaction systems carry their own reference object for component-scoped provenance, which is separate from document metadata:

{
  "models": {
    "ExponentialDecay": {
      "reference": {
        "notes": "dN/dt = -lambda*N, analytical solution N(t) = N0*exp(-lambda*t)"
      },
      "variables": { "N": { "type": "unknown" } },
      "equations": []
    }
  }
}