<!-- Developer Start -->

# See the whole loop: source text in, validated JSON out.

## Start with one document and one runtime call.

If you are evaluating AEON as a developer, the first useful question is: what do I write, what does the runtime produce, and where does validation happen?

```
import { runRuntime } from "@altopelago/aeon-runtime";

const source = [
  'app:object = {',
  '  name:string = "AEON demo"',
  '  port:number = 8080',
  '  enabled:boolean = true',
  '}'
].join("\n");

const result = runRuntime(source, {
  mode: "strict",
  output: "json",
  includeAnnotations: true
});

if (result.meta.errors.length === 0) {
  console.log(result.document);
}
```

The finalized document is plain application data after AEON has checked the source claims.

```
{
  "app": {
    "name": "AEON demo",
    "port": 8080,
    "enabled": true
  }
}
```

- **Write** Start with typed bindings, objects, lists, tuples, references, and prose blocks in the playground.
- **Validate** Run in strict mode when you want reserved datatypes, explicit structure, and fail-closed diagnostics.
- **Materialize** Ask for JSON when you want ordinary application data after AEON has preserved and checked the source claims.
- **Inspect** Turn on annotations when tooling needs source spans, comments, or parallel metadata without changing the data.

[Open playground](/playground.php)  
[Learn syntax](/walkthrough.php)  
[Runtime package](https://www.npmjs.com/package/@altopelago/aeon-runtime)

<!-- Install -->

## Use the published runtime from npm.

For most applications, the runtime package is the simplest entry point because it coordinates compile, validation, reference handling, finalization, and diagnostics.

```aeon
npm install @altopelago/aeon-runtime
```

[Open npm](https://www.npmjs.com/package/@altopelago/aeon-runtime)  
[TypeScript workspace](https://github.com/AltoPelago/aeon/tree/main/implementations/typescript)

<!-- Next -->

## Move from the runtime loop into the language and system model.

### Learn the syntax in order

_Walkthrough_

Walk through bindings, scalar values, containers, types, comments, and multiline text before moving into references and nodes.

[Start walkthrough](/walkthrough.php)

### Understand the meaning model

_Language Layer_

Read how vocabulary, grammar, profiles, schemas, conventions, and Tonics add meaning without giving documents authority over themselves.

[Open language layer](/aeon-language.php#language-layer)

### Experiment without setup

_Playground_

Use the playground to switch modes, inspect JSON output, and see annotation stream behavior while you edit.

[Open playground](/playground.php)
View as HTML