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.
Converted and distributed by TomeVault — claim your Tome and manage your conversions.