Exercise 1: Why deleteField() Instead of null — Possible Solution ==================================================================== WHY deleteField() IS USED ------------------------------ Chapter 2 modeled a used item as having no expiryDate field at all - a genuine absence, not a field holding a null value. Setting expiryDate to null on update would leave the field technically present with a null value, which is a different shape from what Chapter 2 actually designed. Using deleteField() removes the field entirely, matching that original design exactly. THE CONNECTION TO CHAPTER 2'S DATA MODEL ------------------------------ Chapter 2's own example of a used item, created directly as used from the start, never included an expiryDate field in the first place. If marking an item used later set expiryDate to null instead of deleting it, the app would end up with two different representations of "this item has no expiry": documents created used from the start (field absent) and documents transitioned to used afterward (field present but null). deleteField() keeps both paths converging on the identical document shape, consistent with the single way Chapter 2 originally intended "no expiry" to be represented. WHY THIS WORKS AS AN ANSWER ------------------------------ It correctly explains that deleteField() produces genuine field absence rather than a null value, and correctly ties this back to Chapter 2's own design, specifically that a used item should have exactly one consistent representation regardless of how it became used.