Capturing Form component attributes into a data structure

This is a great example. I need to wrap my head around and keep re-reading it before moving on with my code.

Before moving on, should the following be: truck.is?

Okay, let me see if I captured what you conceptually explained. Are these correct as I echo them back? …

  1. There’s nothing exclusive about a Form’s self.item[''] dict() and the Data Bindings strategy. It’s simply a convenience provided for you by Anvil out-of-the-box (and in the Designer UI) for that purpose; and it being a dict() instance, was a reasonable choice because you can nest arbitrarily complex data-structures within it). Correct?

  2. If you do use self.item[''] (in lieu of -or- in addition to your own class instances), then you (a) mentally ascribe some Business Object meaning to self.item[''] (like a Truck, IoT device, or Student), and then (b) define appropriate dict() keys for it (i.e., define Business Object attributes), and finally (c) collect their respective values by binding said keys to specific component attributes scattered across your Form. Correct?

  3. In fact, self.item[''] alone may not be enough because you sometimes need to collect values for various Business Object instances. So, you instantiate your own custom Business Objects (as you illustrated), and bind them similarly. And the binding process here is, essentially, no different than for self.item['']. (except see below) Correct?

Are those three understandings Correct? Hopefully, yes.

Follow-up: For Item-3 above – let’s say it’s an IoT class – because the Designer UI has no component for it, the Data Bindings step must be done programmatically, Correct?

Thank you!