termgrid-core 1.5.5

Deterministic terminal grid state engine with invariant enforcement and backend decoupling.
Documentation
# Comparison: Stream-Oriented Rendering

Most terminal UI stacks render by emitting a byte stream.

The terminal emulator interprets that stream and mutates its internal state.
This works until you need correctness guarantees under mixed-width Unicode,
partial redraw, or deterministic replay.

termgrid-core follows a different model: structured state transitions on an explicit grid.

---

## Stream Model

Properties:

- Output stream is authoritative
- Emulator resolves layout and wrap behavior
- State reconstruction requires replay of the stream
- Behavior varies between emulators and browser terminals

Common failure modes:

- Wide glyph drift
- Wrap inconsistencies
- Backend-specific quirks
- Non-deterministic output under partial redraw

---

## Grid Model

Properties:

- Grid state is authoritative
- Layout is resolved before emission
- State transitions are deterministic
- Damage is explicit

Consequences:

- Identical input yields identical grid state
- Backends can target terminals, xterm.js, or file formats with consistent output
- Snapshot testing is straightforward
- Replay is independent of emulator behavior

---

## Architectural Maturity Signal

Stream rendering treats UI as side-effect.
Grid rendering treats UI as a state machine.

That shift enables:

- Canonical serialization
- Portable projections
- Bounded mutation cost
- Explicit correctness invariants