docs/adr/0004-meta.md
Date: 2024-11-15
Approved
Many of our models have a meta dictionary field. Historically, this has been used both as a black box in which users can put information about their models, and as a place to put information GX Core needs, e.g. foreign keys. This is an untyped dictionary, so understanding what it holds is is difficult to understand.
GX Core v1 made some efforts to pull fields out of meta and promote them to top-level fields, e.g. Expectation notes.
Going forward, we will phase out our use of meta, other than treating it as a black box in which users can store arbitrary data. New fields will not be added to meta, and we will make efforts to pull out anything important from it.
meta will no longer have overloaded responsibilities, making it simpler to reason about.