name: ezorm-write-yaml-mongo description: Write ezorm YAML schema files for this repo (mongo only). Use when asked to define or update ezorm YAML for mongo collections, fields, indexes, flags, embeds, or relations; output YAML only (no Go code).
Ezorm Write Yaml
Scope
Write ezorm YAML schemas from user requirements for mongo and emit YAML only. Read these files when schema details or examples are needed:
doc/schema/yaml.mddoc/schema/yaml_mongo.mde2e/mongo/*.yamlIf the localreferences/orassets/directories are missing, run:scripts/init.sh(orscripts/init.sh --forceto refresh). Validate withscripts/validate.sh.
Workflow
- Restate the domain model in simple entities and relationships. Ask one clarification only if critical (missing entities, relationship direction, or required constraints).
- Choose representation:
- Embedded structure: define a separate entity with
embed: trueand reference it withlist<EmbedType>orEmbedTypefields. - Separate collection: define separate entities and connect via ID fields.
- Embedded structure: define a separate entity with
- Map fields:
- Use mongo field types from
doc/schema/yaml_mongo.md. - Add
flagslikeindex,unique,sort,nullableas needed. - Use
attrswithbsonTag/jsonTagonly when a specific storage name is requested.
- Use mongo field types from
- Set collection metadata:
- Always include
tableanddbname. - Default
tableto snake_case of the entity name. - Default
dbnametodefaultunless the user provides one.
- Always include
- Add constraints:
- Use
indexes,uniques,primaryas required.
- Use
- Output only YAML (no Go code, no prose). Use
---to separate multiple entities.
Output Rules
- Emit a valid YAML schema file (or multiple YAML documents) and nothing else.
- Keep names consistent with user domain language.
- Prefer minimal fields; do not invent behavior.