@@ -49,6 +49,25 @@ What specific values, tags, or categories the lab recognises within each of
4949these fields — for example, which tags are valid under veg/non-veg declarations
5050— is a separate question. That will be documented as each category is analysed.
5151
52+ ::: {.column-margin}
53+ ** A parallel from web development**
54+
55+ Web frameworks separate built-in features from optional add-ons using the same
56+ pattern. React ships with component rendering and state management; everything
57+ else — routing, form handling, data fetching — is a plugin you bring in.
58+ Django's ORM and URL routing are core; authentication backends, payment
59+ integrations, and admin themes are installed as apps. WordPress's post/page/taxonomy
60+ model is core; anything else is a plugin.
61+
62+ The shared logic: the framework defines a stable object (a component, a model,
63+ a post) and leaves the surface open for extension. Downstream developers attach
64+ to that surface without modifying the object itself.
65+
66+ IFID follows the same pattern. The ingredient record is the stable object.
67+ The extension surface is open. Third parties attach their metadata to the record
68+ — they do not redefine what the record is.
69+ :::
70+
5271## What belongs in extensions
5372
5473Extensions are metadata that a specific use case adds to the core. They are not
@@ -84,22 +103,3 @@ what goes beyond it. Those analyses will be recorded as separate logs.
84103
85104This log records only the design principle: the taxonomy distinguishes between
86105core fields and extension fields, and the extension surface is open by design.
87-
88- ::: {.column-margin}
89- ** A parallel from web development**
90-
91- Web frameworks separate built-in features from optional add-ons using the same
92- pattern. React ships with component rendering and state management; everything
93- else — routing, form handling, data fetching — is a plugin you bring in.
94- Django's ORM and URL routing are core; authentication backends, payment
95- integrations, and admin themes are installed as apps. WordPress's post/page/taxonomy
96- model is core; anything else is a plugin.
97-
98- The shared logic: the framework defines a stable object (a component, a model,
99- a post) and leaves the surface open for extension. Downstream developers attach
100- to that surface without modifying the object itself.
101-
102- IFID follows the same pattern. The ingredient record is the stable object.
103- The extension surface is open. Third parties attach their metadata to the record
104- — they do not redefine what the record is.
105- :::
0 commit comments