A struct is a compound noun and an array is many of one thing. Read Multicall3, the batching contract that sits at one address on over a hundred chains, and watch a file with no memory at all carry a thousand calls at once.
Act two opens on a contract that exists to do one thing: take a pile of separate calls and run them inside a single transaction. It is called Multicall3, it is two hundred and sixteen lines long, and it sits at the same address on more than a hundred chains.
It holds nothing. No balances, no owner, no totals, no tally of anything. Scroll it end to end and there is no state block to find. What it has instead is the subject of this lesson: a way to carry many things at once.
You have opened five contracts now, and every time you read the state block first. Try it here and there is nothing to read. Between line 13, where the contract opens, and line 41, where the first function begins, not one value is stored.
Four declarations sit in that gap instead, on lines 14, 19, 25 and 32. None of them is a value. They are shapes, written down once so that the sixteen functions below can all speak about the same thing without repeating themselves.
Function first: a named record holding several values at once, so they travel together as a single thing. The name: a struct. Lines 14 to 17 declare one and call it `Call`, and the declaration is only four lines long.
Inside are two fields, each written as a type and then a label, exactly the way you read parameters in a signature. An address to call, and a `bytes` payload to send it. From line 17 onward `Call` is a type in this file, as usable as `uint256`.
Three of the four describe a call somebody wants made. `Call` on line 14 carries a target and a payload. `Call3` on line 19 carries those two plus one more field. `Call3Value` on line 25 carries one more again, and that one is a number.
The fourth, `Result` on line 32, faces the other way: it is what comes back from a single call. A struct is how a file writes down a compound noun once, so that nothing below has to spell out the pieces every time it mentions one.