Challenge 2: Add a Nested Message — Possible Solution ==================================================================== message ShippingInfo { string address = 1; bool expedited = 2; } message Order { int32 id = 1; string customer_name = 2; repeated string item_names = 3; ShippingInfo shipping_info = 4; } WHY THIS WORKS AS AN ANSWER ------------------------------ ShippingInfo is defined as its OWN separate message, with its own independent field numbering starting at 1 — nested messages have their own numbering scope entirely separate from whatever message uses them, exactly like Address had its own 1/2 numbering independent of Customer's 1/2/3 in this chapter's own nested-message example. Order then references ShippingInfo simply by using it as a field TYPE (ShippingInfo shipping_info = 4;), the same way Customer used Address as a field type — this is what "nesting" actually means in proto3: one message type embedded as a field inside another, producing the same hierarchical shape a nested JSON object would. shipping_info is assigned field number 4, continuing on from Challenge 1's existing fields (1, 2, 3) without reusing or conflicting with any of them.