Skip to content

Tier 1 YAML-First Authoring Review — R5

Status: NOT SHIP

Findings

  1. Schema inference section still overstates _meta.schema requirements. The document says “Every YAML entity file declares its schema under _meta.schema” and adds that when _meta.schema is omitted, “the latest version is assumed.” In the current loader, _meta.schema is optional: PreparePhase._resolve_schema() infers only the entity type from the first non-_meta top-level key, or from the parent directory name if needed; it does not infer or retain a schema version in omitted-schema cases.
  2. Code: packages/maid-engine/src/maid_engine/loader/phases/prepare.py:220-267
  3. Test coverage: packages/maid-engine/tests/loader/test_prepare_phase_additional.py:162-173

  4. Area glossary still describes runtime area_* fields too narrowly. The glossary says area_id / area_name are “read-only projections” of zone membership. In code, area_id is an actual writable room field used by runtime/admin APIs and builder tooling, backed by World area storage (register_area, get_area, all_areas). area_name is derived from that stored area object. Also, there is no built-in loader entity type or standard schema for zones today—only runtime area storage and zone tooling.

  5. Runtime area storage: packages/maid-engine/src/maid_engine/core/world.py:112,468-482
  6. Room API reads/writes area_id: packages/maid-engine/src/maid_engine/api/v1/world.py:561-576,1115-1137,1190-1198
  7. Zone tooling uses world areas: packages/maid-stdlib/src/maid_stdlib/commands/building/zone.py:33-53,225-237,275-285
  8. Built-in loader entity types remain only room/npc/item/template: packages/maid-engine/src/maid_engine/loader/entity_types.py:7-44

Verified clean

  • DataDrivenContentPack is clearly marked PROPOSED / not yet implemented.
  • The Assembly Layer is clearly marked PROPOSED / not yet implemented.
  • Appendix A.4 NPC shorthand is clearly marked PROPOSED (Assembly Layer).