···72727373## Top-Level Lexicon Types
74747575+In TypeSpec, top-level definitions are called [Models](https://typespec.io/docs/language-basics/models/). So you'll see `model Foo { }` used for almost everything, but with different decorators that make its purpose more conrete.
7676+7577### Record
76787779```typescript
···161163162164## Inline vs Definitions
163165164164-**By default, models become separate defs.** Use `@inline` to prevent this:
166166+**By default, all TypeSpec `model`s become separate Lexicon `defs`.** Use `@inline` to prevent this:
165167166168```typescript
167169// Without @inline - becomes separate def "statusEnum"
···182184183185## Optional vs Required Fields
184186185185-**In lexicons, optional fields are the norm.** Required fields are discouraged and need explicit `@required`:
187187+**In lexicons, optional fields are the norm.** Required fields are discouraged and thus need explicit `@required`:
186188187189```typescript
188190model Post {
···202204 }
203205}
204206```
207207+208208+(TypeSpec doesn't require this but I figured we want to make it extra hard to accidentally make a required field.)
205209206210## Primitive Types
207211