AAventa Developer

界面与主题运行时

Typed presentation data, Theme selection, OVERRIDE and SLOT composition.

Docs 0.1.0-dev.1Updated 2026-08-30PUBLIC

# Templates

Declare each template by package-relative path and register a stable name. Runtime resolution remains confined to the package root; arbitrary filesystem overwrite is not an extension API.

# Assets

Declare and register owned assets. A Theme may publish presentation resources but must not mutate Core files.

# Presentation Runtime

Business owner → typed view model → immutable render context → effective Theme → renderer

# Theme Package

Use package_type: theme-presentation, declare only permitted capabilities, call themeProvider(), then register named contributions.

# PresentationRenderContext

The render context contains explicit page, viewer, navigation, Theme-private presentation values and typed models. It is not a wrapper around host globals.

# PresentationViewModel

A view model binds a stable type and version to immutable presentation facts. It carries what a Theme needs to render, not storage authority.

# PresentationDataProvider

A business owner or host adapter implements type(), version() and provide(array): PresentationViewModel.

# OVERRIDE

An effective Theme can replace one named host presentation target. Multiple ambiguous effective overrides fail closed.

# SLOT

A SLOT appends a named contribution in deterministic dependency/priority/package order. It does not patch host files.

# Theme Selection

Enabled means available; effective means selected and eligible for one host-owned scope. Operators select through the host control plane. If selection becomes ineligible, the Kernel falls back to the Core default.

Authority boundary

A Theme does not receive general business-data or storage authority.