Stable within the pack. Room templates reference agents by this.
OptionallabelShown in the pack listing and the pickers. Falls back to the key.
OptionalmodelWhich model tier this agent wants.
A pack cannot name a model: the id goes stale and assumes the host's keys. But the split matters — the dnd5e pack exists partly so combat runs on a cheap agent — so the template says which tier it wants and instantiation supplies the models.
OptionaloverridesAnything the folder's own defaults should not decide, e.g. a witness's name.
A folder in this pack, or a <pack>:<folder> reference to another.
One agent a pack ships, as a reference to a prompt folder plus overrides.
Not a trimmed
AgentConfig.createAgentFromFolderalready exists so callers stop transcribing a folder's recipe, anddefaults_config.jsonis the listprompt-folders.spec.tstreats as authoritative — a template with its own copy oftoolNameswould be a second list that drifts from it.