···3838}
3939```
40404141-We'll *specify* that sending HTML involves unwrapping all of these custom tags:
4141+We'll specify that *sending* HTML involves unwrapping all of these custom tags:
42424343```js {3}
4444<html>
···100100101101Objects let us group related stuff together.
102102103103-Suppose we wanted to send this HTML. First, according to what we specified earlier, we'd have to replace all custom tags like `Greeting` with their output:
103103+Suppose we wanted to *send* this HTML. First, according to our specification for custom tags, we'd have to replace all custom tags like `Greeting` with their output:
104104105105-```js
105105+```js {3,4}
106106<html>
107107 <body>
108108 <p style={{ color: 'purple' }}>Hello, Alice</p>
···122122</html>
123123```
124124125125-But we don't *have to* turn our "imaginary" HTML into "real" HTML right away. We can stay in the imaginary land for a bit longer by turning *the entire thing* into JSON. Note how in this case, `style` can remain completely intact as an object within it:
125125+But we don't *have to* turn our "imaginary" HTML into "real" HTML right away. We can stay in the imaginary land for a bit longer by turning *the entire thing* into JSON. Note how in this case, `style` can remain completely intact as an object within:
126126127127```js {6,10}
128128["html", {
···141141}]
142142```
143143144144-We can easily turn this JSON into the "real" HTML later if we want. But it's a *strictly richer* representation because it preserves objects in a way that's easy to parse.
144144+We can *then* easily turn this JSON into the "real" HTML if we want. But JSON is a *richer* representation because it preserves objects in a way that is easy to parse.
145145146146-Going forward, we'll co-evolve these two representations.
146146+Going forward, we'll co-evolve these two different but useful representations.
147147148148---
149149150150### Async Tags
151151152152-We're previously hardcoded some objects into our code:
152152+We're previously hardcoded some objects into our HTML:
153153154154```js {3-4}
155155<html>
···179179}
180180```
181181182182-Actually, this looks a bit repetitive--let's have `Greeting` itself read from the disk.
182182+Actually, this looks a bit repetitive--let's have `Greeting` itself do the `readFile`:
183183184184```js {3-4,8-10}
185185<html>
···199199 );
200200}
201201```
202202+203203+We'll have to amend our specification. We'll say that if a custom tag like `Greeting` is asynchronous, we'll *wait* for its output. Other than that, there'll be no difference in the final output. Both HTML and JSON will be the same as before.