Value Types

Special forms keep meaning visible before tools interpret it.

This page explains AEON value choices as language features. It is not the exhaustive lookup table. Use it when you want to understand why AEON separates ordinary numbers from NaN, absence from custom null reasons, and local time authority from a bare UTC offset.

The reference page lists every type mechanically. This page focuses on the forms that change how authors and tools reason about a document.

title:string = "Daily note"
body:prose = >`
  Multiline text that can carry prose.
`

count:number = 42
reading:nan = NaN
limit:infinity = Infinity

ready:boolean = true
state:switch = on
missing:null = !notSet

color:hex = #ff00aa
bits:radix[2] = %1011
payload:base64 = $QmFzZTY0IQ==

day:date = 2026-05-05
clock:time = 09:30Z
stamp:datetime = 2026-05-05T09:30:00Z
zoned:zrut = 2026-05-05T09:30Z&Australia/Melbourne

Special Values

Absence and numeric edge cases stay explicit.

AEON keeps ordinary numbers separate from IEEE-style edge cases. NaN belongs to the nan literal family, and Infinity belongs to the infinity family. They are not silently accepted as ordinary number values.

Null is also typed. Instead of collapsing every kind of absence into one undifferentiated value, AEON lets a document say whether something is not set, not applicable, tombstoned, or absent for a custom reason.

The advantage shows up at schema time. A consumer can decide whether a field is allowed to contain NaN, Infinity, or a null reason at all. If the schema rejects those forms, downstream materialized values can be used without silently carrying an edge case into math, storage, or business logic.

count:number = 42
reading:nan = NaN
negativeReading:nan = -NaN
limit:infinity = Infinity
floor:infinity = -Infinity

email:null = !notSet
fax:null = !notApplicable
oldRecord:null = !tombstone
review:null = !"awaiting manual review"

Date and Time

ZRUT preserves the instant and the local time authority.

Plain date values are calendar dates. Plain time values are times of day. A datetime can include UTC or an offset, which is enough when the only thing you need is the instant.

ZRUT (Zoned Round-trip Universal Time) is important when the local zone is part of the meaning. An offset like +10:00 records one numeric relationship to UTC, but it does not preserve the civic time zone that produced it. Australia/Melbourne carries daylight-saving rules, future rendering context, and audit meaning that a bare offset cannot recover.

eventDate:date = 2026-05-05
localTime:time = 09:30
utcTime:time = 09:30Z
offsetTime:time = 09:30+10:00

published:datetime = 2026-05-05T09:30:00Z
localPublication:zrut = 2026-05-05T09:30:00Z&Australia/Melbourne

Semantic Comments

Comments can carry meaning without becoming data.

AEON separates ordinary data bindings from structured comment channels. These channels can carry documentation, hints, annotations, and reserved ecosystem signals while remaining outside the core assignment stream.

The safety rule is simple: comments can inform tools and readers, but they do not create bindings, change path identity, affect reference legality, or silently alter values.

//! format:aeon
//# Billing fields shown on customer invoices.
//@ ui(section="billing", priority=1)
//? total should match the line-item sum after discounts.
//[ profile: "invoice.public.v1"
//{ structure: "totals are grouped by currency"
//( instruction: "consumer may calculate display totals"
invoice:object = {
  total:number = 7_000
}

//! Host directive

When to use
Use at the file header for processor discovery or pre-parser routing. Outside that header slot, it is just a plain comment.

//# Documentation

When to use
Use for reader-facing notes that explain a nearby binding, element, or container.

//@ Annotation

When to use
Use for machine-readable metadata that tools may understand, such as UI grouping, workflow state, or audience tags.

//? Hint

When to use
Use for advisory guidance, editor hints, schema-profile notes, or human review reminders.

//[ Profile

When to use
Reserved for profile-related ecosystem notes. Use when the comment is about policy or profile-driven interpretation.

//{ Structure

When to use
Reserved for structural notes. Use when the comment is about grouping, shape, or document organization.

//( Instruction

When to use
Reserved for instruction-like notes. Use for consumer-facing processing guidance that must not change core parsing.