Files
lucky-cat/docs/adr/0001-lcd-expression-presentation-ownership.md
T

1.4 KiB

ADR 0001: LCD Expression and Presentation Ownership

Status

Accepted

Context

LCD behavior now needs multiple reusable expressions that can be triggered by different runtime conditions. The system must keep semantic expression ownership separate from low-level LCD playback so future expressions can be added without copying cross-layer contracts or coupling orchestration code to asset paths.

Decision

  • domain owns LCD expression semantics and declares domain_expression_* in components/domain/include/domain.h.
  • control_plane owns trigger policy: it decides when a runtime condition requests a semantic expression.
  • platform owns LCD presentation playback primitives and declares platform_lcd_presentation_* in components/platform/include/platform.h.
  • Domain runtime adapters map semantic expressions to platform presentation requests.
  • Platform LCD internals serialize presentation requests and perform all panel drawing inside the LCD render task.

Consequences

  • Adding a new expression requires a domain expression ID and catalog mapping, plus an optional control-plane trigger rule.
  • Public upper-layer facades must not expose platform playback types.
  • Platform public APIs must not expose domain semantic expression IDs.
  • High-priority expressions can interrupt lower-priority presentations without leaking policy logic into the LCD driver.