# description
A self-contained shell/terminal theme. Consumed by aish v0.2 via a single HTTP GET; no second fetch required for brand-atoms or any external reference.

# properties.schema.description
Pin the schema URI so consumers can verify they understand this version.

# properties.meta.properties.id.description
URL-safe slug; also the filename stem (id.toml).

# properties.meta.properties.version.description
Semver. Theme content changes bump version.

# properties.meta.properties.extends_brand.description
Documentary reference to a brand-atoms brand. NOT a fetch target — palette below MUST be inlined.

# properties.palette.additionalProperties.description
Hex color. 3/6/8-digit (#RGB, #RRGGBB, #RRGGBBAA) accepted.

# properties.palette.description
Inlined palette. Keys are role names (e.g., fg, bg, green, blue, accent). Single-fetch contract: do not reference external palettes.

# properties.prompt.properties.character.description
Prompt character(s). Unicode glyphs allowed.

# properties.prompt.properties.segments.description
Ordered list of segments to render. Unknown segments MUST be rejected by the consumer. See docs/elements.md for the data contract.

# properties.prompt.properties.glyphs.description
Glyph set. nerd-default requires a Nerd Font.

# properties.roles.description
Semantic role → color mappings. Consumers look up runtime roles here (e.g., ai_tier_local).

# properties.syntax.description
Syntax-highlighting token → color mappings. Optional; consumers fall back to roles or defaults.

# properties.font.description
Preferred font for rendering this theme. A strong preference: aish-term / TUI consumers SHOULD match this font when available; plain CLI consumers MAY ignore. Users always retain a local override.

# properties.font.properties.family.description
Primary font family. Should be a monospace font for prompt + segments to line up.

# properties.font.properties.fallback.description
Ordered fallback chain. Consumer walks this list when the primary family is unavailable.

# properties.font.properties.size.description
Point size (pt) hint. Consumer may scale.

# properties.font.properties.ligatures.description
Enable programming ligatures (=> != etc). Requires a font that ships them.

# properties.font.properties.nerd_font.description
Asserts the primary family is a Nerd Font patch. Required to be true when prompt.glyphs == 'nerd-default'.

# properties.layout.description
Compass layout: north (top), south (bottom), east (right), west (left) bars surround the always-present middle (the interactive terminal). Each bar holds named elements packed by alignment. Consumers render the bars they can; the middle is always rendered.

# $defs.colorRef.description
Either a hex color (#RGB / #RRGGBB / #RRGGBBAA) or a palette reference {palette.NAME} that MUST resolve within this theme's own palette block. No external references.

# $defs.elementId.description
Element ID. Consumers map this to a renderer (data + glyph). Unknown elements MAY be skipped silently. See docs/elements.md for the full catalog and data contracts.

# $defs.elementStyle.description
Per-element style override. Both fields optional; absent means 'use consumer default'.

# $defs.elementStyle.properties.icon.description
Glyph (or short string) to render in place of the element's default icon. Empty string disables the icon.

# $defs.elementStyle.properties.color.description
Text color override for this element (otherwise the bar's foreground applies).

# $defs.elementsMap.description
Per-element style overrides keyed by element id. Lets a theme decide each element's icon + text color independently of the bar's bg/fg.

# $defs.horizontalBar.description
A north or south bar. Elements pack into three alignment buckets.

# $defs.verticalBar.description
An east or west bar. Renders as a vertical panel of given width. Elements pack into three alignment buckets.