Epic: Event Projection System #302

Open
opened 2026-03-16 01:59:25 +00:00 by freemo · 0 comments
Owner

Background and Context

The Terminal UI Framework (#112) needs a translation layer between domain events (game logic) and render operations (UI display). Raw domain events like "entity entered room" or "health changed" must be transformed into concrete rendering instructions. The Event Projection System provides this translation layer through declarative mappings from domain events to RenderOps, a RenderOp data model, and a comprehensive set of projections covering all core game events.

Expected Behavior

Domain events flow through registered EventProjection subclasses that declaratively map each event type to one or more RenderOps. A RenderOp is a value object describing a specific rendering action (append text, update a bar, refresh the map, etc.). The ProjectionRegistry manages projection lookup by event type.

Acceptance Criteria

  • An EventProjection base class supports declarative event-to-RenderOp mapping.
  • A RenderOp data model defines 7 core operation types.
  • 16 core event projections cover all major domain events.
  • Projections are registered in a ProjectionRegistry for lookup.
  • All child issues are completed, reviewed, and merged.

Child Issues

All child issues for this epic are tracked as individual issues with dependency links.

Definition of Done

This issue is complete when all child issues are merged to master and the Event Projection System is operational.

## Background and Context The Terminal UI Framework (#112) needs a translation layer between domain events (game logic) and render operations (UI display). Raw domain events like "entity entered room" or "health changed" must be transformed into concrete rendering instructions. The Event Projection System provides this translation layer through declarative mappings from domain events to RenderOps, a RenderOp data model, and a comprehensive set of projections covering all core game events. ## Expected Behavior Domain events flow through registered EventProjection subclasses that declaratively map each event type to one or more RenderOps. A RenderOp is a value object describing a specific rendering action (append text, update a bar, refresh the map, etc.). The ProjectionRegistry manages projection lookup by event type. ## Acceptance Criteria - [ ] An `EventProjection` base class supports declarative event-to-RenderOp mapping. - [ ] A `RenderOp` data model defines 7 core operation types. - [ ] 16 core event projections cover all major domain events. - [ ] Projections are registered in a `ProjectionRegistry` for lookup. - [ ] All child issues are completed, reviewed, and merged. ## Child Issues All child issues for this epic are tracked as individual issues with dependency links. ## Definition of Done This issue is complete when all child issues are merged to `master` and the Event Projection System is operational.
freemo self-assigned this 2026-03-16 01:59:25 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference: aethyr/Aethyr#302
No description provided.