<!-- Type Reference -->

# A lookup list for every core AEON value form.

This page is intentionally dry. It is the reference list: syntax, accepted values, alternative type names, and reserved names. Use the value types page when you want the explanation behind special forms.

## String
- **Syntax:** `"..." or '...' or \`...\``
- **Accepted values:** Any quoted text value.
- **Alternative type names:** string
- **Reserved names:** None
**Example:**
```aeon
title:string = "Daily note"
```

## Trimtick / prose
- **Syntax:** `> \`...\``
- **Accepted values:** Multiline text trimmed by an exact space or tab gutter selected from the first nonblank payload line.
- **Alternative type names:** trimtick; prose is the common prose label
- **Reserved names:** prose
**Example:**
```aeon
body:prose = >`
  Hello
  from AEON
`
```

## Number
- **Syntax:** `42, 3.14, .5, 1e3, 1_000`
- **Accepted values:** Finite numeric literals.
- **Alternative type names:** number, n
- **Reserved names:** int, uint, int8, int16, int32, int64, uint8, uint16, uint32, uint64, float, float32, float64
**Example:**
```aeon
port:number = 8080
```

## NaN
- **Syntax:** `NaN or -NaN`
- **Accepted values:** Explicit not-a-number values.
- **Alternative type names:** nan
- **Reserved names:** None
**Example:**
```aeon
reading:nan = NaN
```

## Infinity
- **Syntax:** `Infinity or -Infinity`
- **Accepted values:** Explicit infinite numeric edge values.
- **Alternative type names:** infinity
- **Reserved names:** None
**Example:**
```aeon
upperBound:infinity = Infinity
```

## Boolean
- **Syntax:** `true or false`
- **Accepted values:** Truth values.
- **Alternative type names:** boolean, bool
- **Reserved names:** None
**Example:**
```aeon
published:boolean = true
```

## Toggle
- **Syntax:** `yes, no, on, off`
- **Accepted values:** Human-readable toggles where the words matter.
- **Alternative type names:** toggle
- **Reserved names:** None
**Example:**
```aeon
enabled:toggle = on
```

## Null
- **Syntax:** `!none, !notSet, !notApplicable, !tombstone, !"reason"`
- **Accepted values:** Absence with an explicit reason.
- **Alternative type names:** null
- **Reserved names:** !none, !notSet, !notApplicable, !tombstone
**Example:**
```aeon
middleName:null = !notApplicable
```

## Hex
- **Syntax:** `#ff00aa`
- **Accepted values:** Hexadecimal byte/color-like literals.
- **Alternative type names:** hex
- **Reserved names:** None
**Example:**
```aeon
brandColor:hex = #ff00aa
```

## Radix
- **Syntax:** `%1011 with a clarifier such as :radix[2]`
- **Accepted values:** Digits interpreted in an explicit base. The GP profile accepts exactly one numeric radix clarifier whose exact value is an integer from 2 through 64. Integral decimal or exponent spellings are accepted; fractional values are not rounded.
- **Alternative type names:** radix
- **Reserved names:** decimal, radix2, radix6, radix8, radix12
**Example:**
```aeon
bits:radix[2] = %1011
```

## Encoding
- **Syntax:** `&QmFzZTY0IQ== with an encoding-name clarifier such as :encoding["base58"]`
- **Accepted values:** Encoded inline payloads. The GP profile accepts exactly one string clarifier on encoding, inline, and embed.
- **Alternative type names:** encoding
- **Reserved names:** base64, embed, inline
**Example:**
```aeon
code:encoding["base58"] = &FFF
```

## SANSA address
- **Syntax:** `$.path, ?.path, $.items.*.sku, $.items.**`
- **Accepted values:** SANSA exact paths and selectors preserved as address literals. Resolution and selector evaluation belong to consumers.
- **Alternative type names:** sansa
- **Reserved names:** None
**Example:**
```aeon
path:sansa = $.contact.name
selector:sansa = $.inventory.items.*.sku
qualified:sansa = $.result:number|nan
```

## Date
- **Syntax:** `2026-, 2026-05, 2026-05-05`
- **Accepted values:** Year-, month-, and day-granularity calendar dates without a time of day. Omitted fields remain unasserted rather than defaulting to 01.
- **Alternative type names:** date
- **Reserved names:** None
**Example:**
```aeon
shipDate:date = 2026-05-05
```

## Time
- **Syntax:** `09:, 09:30, 09:30:00.3400Z, 09:30+10:00`
- **Accepted values:** Times of day with optional seconds, exact decimal fractional seconds, UTC, or offset information. Core admits seconds 00–60 and preserves arbitrary authored fractional precision; the general-purpose schema restricts these to seconds 00–59 and at most nine fractional digits.
- **Alternative type names:** time
- **Reserved names:** None
**Example:**
```aeon
opensAt:time = 09:30
```

## DateTime
- **Syntax:** `2026-T09:30, 2026-05T09:30Z, 2026-05-05T09:30:00.3400Z`
- **Accepted values:** Combined proleptic-Gregorian date and time values. The date may have year, month, or day granularity, and the clock may use reduced precision; omitted fields remain unasserted. Years are four digits from 0001 through 9999, fractional seconds retain their authored scale, and the general-purpose schema admits at most nine fractional digits.
- **Alternative type names:** datetime
- **Reserved names:** wtc for values with temporal context
**Example:**
```aeon
annualWindow:datetime = 2026-T09:30
published:datetime = 2026-05-05T09:30:00Z
```

## WTC
- **Syntax:** `datetime&context, such as 2026-T10:10:00&Europe or 2026-01-01T09:10:10&TAI`
- **Accepted values:** Date and time values with preserved temporal context after &. Year-, month-, and day-granularity date components are accepted without defaulting omitted fields. Context can select resolver-local rules, a named timezone, a +/ named place, a convention-defined timescale, or a geographic position.
- **Alternative type names:** wtc
- **Reserved names:** local is exact lowercase; UTC, TAI, UT1, TT, and GPS receive timescale meaning under aeon.gp.temporal.v1
**Example:**
```aeon
annualMeeting:wtc = 2026-T10:10:00&Europe
meeting:wtc = 2026-05-05T09:30&Australia/Melbourne
atomic:wtc = 2026-01-01T09:10:10&TAI
```

## Separator
- **Syntax:** `^300x250 with a separator such as :sep["x"]`
- **Accepted values:** Separator-shaped literals where the separator has meaning.
- **Alternative type names:** sep
- **Reserved names:** kadot
**Example:**
```aeon
dimensions:sep["x"] = ^300x250
```

## Symbol
- **Syntax:** `|approved| or |this has spaces|`
- **Accepted values:** Non-empty, single-line atomic symbolic values. String-style escapes are supported, and \| represents a literal pipe.
- **Alternative type names:** symbol
- **Reserved names:** None
**Example:**
```aeon
stage:symbol = |in review|
```

## Object
- **Syntax:** `{ key:type = value } or object<T>`
- **Accepted values:** Named bindings grouped together. object<T> is a member-value claim: the object's member values are expected to satisfy T under schema, profile, or consumer validation.
- **Alternative type names:** object, obj, o
- **Reserved names:** envelope
**Example:**
```aeon
scores:object<number> = {
  alice:number = 10
  bob:number = 12
}

contact:object = {
  name:string = "Bob"
}
```

## List
- **Syntax:** `[1, 2, 3], [:number = 3], or list<T>`
- **Accepted values:** Ordered repeated values. list<T> is an element-value claim preserved by Core and enforced by schema, profile, or consumer validation.
- **Alternative type names:** list
- **Reserved names:** None
**Example:**
```aeon
scores:list<number> = [3, 4, 5]
```

## Tuple
- **Syntax:** `(12, 42), (:number = 12, :number = 42), or tuple<T1, T2>`
- **Accepted values:** Fixed positions where each slot has a role. tuple<T...> is a positional claim preserved by Core and enforced by schema, profile, or consumer validation.
- **Alternative type names:** tuple
- **Reserved names:** triple
**Example:**
```aeon
edge:triple<string, string, string> = ("subject", "predicate", "object")
```

## Node
- **Syntax:** `<tag("text")>, binding:node<T>, or <tag:node<T>(...)>`
- **Accepted values:** Tagged tree-shaped values. On ordinary bindings, node<T> claims the node value belongs to a profile, domain, or materialization target. On node heads, node<T> claims the expected child-content type.
- **Alternative type names:** node
- **Reserved names:** None
**Example:**
```aeon
doc:node<html> = <html(
  <body("Hello")>
)>

title:node = <title:node<string>("Hello")>

page:node = <section(
  <title("Hello")>
)>
```

## Clone reference
- **Syntax:** `~path.to.value`
- **Accepted values:** Copy-intent reference to another value.
- **Alternative type names:** Reference form, not a datatype label
- **Reserved names:** None
**Example:**
```aeon
name:string = "Alice"
displayName:string = ~name
```

## Pointer reference
- **Syntax:** `~>path.to.value`
- **Accepted values:** Pointer-intent reference to another value.
- **Alternative type names:** Reference form, not a datatype label
- **Reserved names:** None
**Example:**
```aeon
contact:object = {
  name:string = "Bob"
}
primaryContact:object = ~>contact
```
View as HTML