//! 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.
Value Types
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
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
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
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//# Documentation//@ Annotation//? Hint//[ Profile//{ Structure//( Instruction