Skip to main content

State Machines: Precise Markdown Processing

┌───────────────────────────────────────────────────────────────────────┐
│                                                                       │
│  THE CENTER                                                           │
│                                                                       │
├───────────────────────────────────────────────────────────────────────┤
│                                                                       │
│  "CodexMono is The Brick - the fundamental unit that enables          │
│   Monokinetics: unified Human + AI experience through predictable,    │
│   trustable visual alignment."                                        │
│                                                                       │
│  State machines implement The Brick principle by providing            │
│  deterministic, character-by-character processing that guarantees     │
│  predictable output.                                                  │
│                                                                       │
│  Just as VTE Parsers process escape sequences atomically to build     │
│  terminal grid cells (The Brick of terminal output), markdown state   │
│  machines process formatting markers atomically to build range        │
│  objects (The Brick of document structure).                           │
│                                                                       │
└───────────────────────────────────────────────────────────────────────┘

The Terminal-to-Document Bridge

┌───────────────────────────────────────────────────────────────────────┐
│                                                                       │
│  SEAMLESS WORKFLOW: TERMINAL TO DOCUMENT                              │
│                                                                       │
├───────────────────────────────────────────────────────────────────────┤
│                                                                       │
│   VTE State Machine (Terminal)                                        │
│       │                                                               │
│       v                                                               │
│   Grid Cells (Terminal Brick)                                         │
│       │                                                               │
│       │ Copy                                                          │
│       v                                                               │
│   VmdBox Paste Detection                                              │
│       │                                                               │
│       v                                                               │
│   Markdown State Machine (Document)                                   │
│       │                                                               │
│       v                                                               │
│   Range Objects (Document Brick)                                      │
│       │                                                               │
│       v                                                               │
│   Human + AI Aligned Visual Experience                                │
│                                                                       │
└───────────────────────────────────────────────────────────────────────┘
Why state machines? Because regex cannot provide The Brick’s core property: predictable, trustable output. Regex backtracks, overlaps, and produces ambiguous results. State machines process linearly, deterministically, and atomically - the foundation of trust.

The Regex Problem

Traditional markdown parsers use regex patterns. This creates fundamental problems in interactive editors.
┌────────────────────────────────────────────────────────────────────────┐
│                                                                        │
│  THE REGEX OVERLAPPING PROBLEM                                         │
│                                                                        │
├────────────────────────────────────────────────────────────────────────┤
│                                                                        │
│  Input: "**bold** and *italic*"                                        │
│                                                                        │
│  WHAT REGEX SEES:                                                      │
│  ┌────────────────────────────────────────────────────────────────┐    │
│  │                                                                │    │
│  │  Bold pattern matches: "**bold**"                    OK        │    │
│  │                                                                │    │
│  │  Italic pattern matches: "*bold*" AND "*italic*"               │    │
│  │                          ^^^^^^^^                              │    │
│  │                          FALSE POSITIVE!                       │    │
│  │                                                                │    │
│  └────────────────────────────────────────────────────────────────┘    │
│                                                                        │
│  WHY IT FAILS:                                                         │
│  ┌────────────────────────────────────────────────────────────────┐    │
│  │                                                                │    │
│  │  Regex sees PATTERNS, not STRUCTURE                            │    │
│  │                                                                │    │
│  │  It matches character sequences without understanding context  │    │
│  │                                                                │    │
│  │  "*bold*" matches italic pattern even though those asterisks   │    │
│  │  are PART OF the bold construct                                │    │
│  │                                                                │    │
│  └────────────────────────────────────────────────────────────────┘    │
│                                                                        │
└────────────────────────────────────────────────────────────────────────┘

The State Machine Solution

A Finite State Machine (FSM) processes text character-by-character, maintaining explicit state about what construct is being parsed.
┌───────────────────────────────────────────────────────────────────────┐
│                                                                       │
│  THE THREE ESSENTIAL PROPERTIES (The Brick Requires)                  │
│                                                                       │
├───────────────────────────────────────────────────────────────────────┤
│                                                                       │
│   1. DETERMINISTIC                                                    │
│      ┌──────────────────────────────────────────────────────────┐     │
│      │  Same input ALWAYS produces same output                  │     │
│      │  No ambiguity, no surprises                              │     │
│      └──────────────────────────────────────────────────────────┘     │
│                                                                       │
│   2. ATOMIC                                                           │
│      ┌──────────────────────────────────────────────────────────┐     │
│      │  Each character is processed as a discrete unit          │     │
│      │  No partial states visible to user                       │     │
│      └──────────────────────────────────────────────────────────┘     │
│                                                                       │
│   3. PREDICTABLE                                                      │
│      ┌──────────────────────────────────────────────────────────┐     │
│      │  Behavior can be traced through explicit state transitions│    │
│      │  Debuggable, verifiable, trustable                       │     │
│      └──────────────────────────────────────────────────────────┘     │
│                                                                       │
└───────────────────────────────────────────────────────────────────────┘

State Transition Diagram

┌───────────────────────────────────────────────────────────────────────┐
│                                                                       │
│  STATE MACHINE FOR MARKDOWN INLINE FORMATTING                         │
│                                                                       │
├───────────────────────────────────────────────────────────────────────┤
│                                                                       │
│                          ANY CHAR (not *)                             │
│                     ┌──────────────────────┐                          │
│                     │                      │                          │
│                     v                      │                          │
│  ┌─────────────┐   *   ┌─────────────┐     │                          │
│  │   NORMAL    │──────>│  ONE_STAR   │─────┘                          │
│  └─────────────┘       └─────────────┘                                │
│        ^                     │                                        │
│        │                     │ *                                      │
│        │                     v                                        │
│        │               ┌─────────────┐                                │
│        │               │  TWO_STAR   │                                │
│        │               └─────────────┘                                │
│        │                     │                                        │
│        │                     │ *                                      │
│        │                     v                                        │
│        │               ┌─────────────┐                                │
│        │               │ THREE_STAR  │                                │
│        │               └─────────────┘                                │
│        │                     │                                        │
│        │         ┌───────────┼───────────┐                            │
│        │         │           │           │                            │
│        │         v           v           v                            │
│        │   ┌──────────┐ ┌──────────┐ ┌──────────┐                     │
│        │   │IN_ITALIC │ │ IN_BOLD  │ │IN_BOLDITA│                     │
│        │   └──────────┘ └──────────┘ │LIC       │                     │
│        │         │           │       └──────────┘                     │
│        │         │ *         │ **        │ ***                        │
│        │         │           │           │                            │
│        └─────────┴───────────┴───────────┘                            │
│                        EMIT RANGE                                     │
│                                                                       │
└───────────────────────────────────────────────────────────────────────┘

The Critical Decision Points

┌────────────────────────────────────────────────────────────────────────┐
│                                                                        │
│  HOW THE STATE MACHINE DECIDES                                         │
│                                                                        │
├────────────────────────────────────────────────────────────────────────┤
│                                                                        │
│   First *                                                              │
│   ┌────────────────────────────────────────────────────────────────┐   │
│   │  Could be italic OR start of bold                              │   │
│   │  Decision: WAIT                                                │   │
│   └────────────────────────────────────────────────────────────────┘   │
│                                                                        │
│   Second *                                                             │
│   ┌────────────────────────────────────────────────────────────────┐   │
│   │  Could be bold OR start of bolditalic                          │   │
│   │  Decision: WAIT                                                │   │
│   └────────────────────────────────────────────────────────────────┘   │
│                                                                        │
│   Third *                                                              │
│   ┌────────────────────────────────────────────────────────────────┐   │
│   │  Must be bolditalic                                            │   │
│   │  Decision: WAIT for content                                    │   │
│   └────────────────────────────────────────────────────────────────┘   │
│                                                                        │
│   Non-* character after markers                                        │
│   ┌────────────────────────────────────────────────────────────────┐   │
│   │  CONFIRMS the construct type                                   │   │
│   │  Decision: Enter content accumulation state                    │   │
│   └────────────────────────────────────────────────────────────────┘   │
│                                                                        │
│   The "waiting states" prevent premature commitment to a construct     │
│   type. This is WHY state machines are deterministic.                  │
│                                                                        │
└────────────────────────────────────────────────────────────────────────┘

Range Object: The Document Brick

When parsing completes, the state machine produces Range Objects - precise position markers for every formatting construct.
┌────────────────────────────────────────────────────────────────────────┐
│                                                                        │
│  RANGE OBJECT ANATOMY                                                  │
│                                                                        │
├────────────────────────────────────────────────────────────────────────┤
│                                                                        │
│  Input: "Hello **world** there"                                        │
│                                                                        │
│  Visual Breakdown:                                                     │
│  ┌──────────────────────────────────────────────────────────────────┐  │
│  │ H e l l o   * * w o r  l  d  *  *     t  h  e  r  e              │  │
│  │ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20             │  │
│  │             │   │                │     │                         │  │
│  │             │   └──contentStart  │     └──closeEnd               │  │
│  │             │                    │                               │  │
│  │             └──openStart         └──closeStart                   │  │
│  │                                                                  │  │
│  │             [OPEN] [CONTENT....] [CLOSE]                         │  │
│  └──────────────────────────────────────────────────────────────────┘  │
│                                                                        │
├────────────────────────────────────────────────────────────────────────┤
│                                                                        │
│  WHY SIX POSITIONS?                                                    │
│                                                                        │
│  ┌───────────────────────────────┐  ┌───────────────────────────────┐  │
│  │ Smart Backspace               │  │ Syntax Highlighting           │  │
│  │ Delete markers while          │  │ Style markers differently     │  │
│  │ preserving content            │  │ from content                  │  │
│  └───────────────────────────────┘  └───────────────────────────────┘  │
│                                                                        │
│  ┌───────────────────────────────┐  ┌───────────────────────────────┐  │
│  │ Copy-Paste                    │  │ Cursor Navigation             │  │
│  │ Extract just content          │  │ Jump between regions          │  │
│  │ or full markdown              │  │                               │  │
│  └───────────────────────────────┘  └───────────────────────────────┘  │
│                                                                        │
└────────────────────────────────────────────────────────────────────────┘

Execution Trace: Parsing “bold

┌───────────────────────────────────────────────────────────────────────┐
│                                                                       │
│  STEP-BY-STEP: HOW "**bold**" IS PARSED                               │
│                                                                       │
├───────────────────────────────────────────────────────────────────────┤
│                                                                       │
│  Character 1: '*'                                                     │
│  ┌────────────────────────────────────────────────────────────────┐   │
│  │  NORMAL  -->  ONE_STAR                                         │   │
│  │  "First *, could be italic or part of bold"                    │   │
│  └────────────────────────────────────────────────────────────────┘   │
│                                                                       │
│  Character 2: '*'                                                     │
│  ┌────────────────────────────────────────────────────────────────┐   │
│  │  ONE_STAR  -->  TWO_STAR                                       │   │
│  │  "Second *, could be bold or part of bolditalic"               │   │
│  └────────────────────────────────────────────────────────────────┘   │
│                                                                       │
│  Character 3: 'b'                                                     │
│  ┌────────────────────────────────────────────────────────────────┐   │
│  │  TWO_STAR  -->  IN_BOLD                                        │   │
│  │  "Non-whitespace after ** CONFIRMS bold construct"             │   │
│  └────────────────────────────────────────────────────────────────┘   │
│                                                                       │
│  Characters 4-6: 'old'                                                │
│  ┌────────────────────────────────────────────────────────────────┐   │
│  │  IN_BOLD  -->  IN_BOLD                                         │   │
│  │  "Normal content, keep accumulating"                           │   │
│  └────────────────────────────────────────────────────────────────┘   │
│                                                                       │
│  Character 7: '*' (with lookahead: next is '*')                       │
│  ┌────────────────────────────────────────────────────────────────┐   │
│  │  IN_BOLD  -->  NORMAL                                          │   │
│  │  "Found closing **, EMIT RANGE, reset"                         │   │
│  └────────────────────────────────────────────────────────────────┘   │
│                                                                       │
│  RESULT: Range { type: 'bold', positions: [0-8] }                     │
│                                                                       │
└───────────────────────────────────────────────────────────────────────┘

Smart Backspace: Synchronized Marker Deletion

In a hybrid editor where markers are visible, users expect intuitive deletion behavior.
┌───────────────────────────────────────────────────────────────────────┐
│                                                                       │
│  THE SMART BACKSPACE PHILOSOPHY                                       │
│                                                                       │
├───────────────────────────────────────────────────────────────────────┤
│                                                                       │
│  Users think of "**bold**" as a SINGLE construct,                     │
│  not six separate characters.                                         │
│                                                                       │
│  When they delete one marker, they expect the symmetric               │
│  marker to also delete. This maintains the fundamental                │
│  property of markdown: PAIRED DELIMITERS.                             │
│                                                                       │
└───────────────────────────────────────────────────────────────────────┘

Naive vs Smart Approach

┌───────────────────────────────────────────────────────────────────────┐
│                                                                       │
│  NAIVE APPROACH                                                       │
│                                                                       │
├───────────────────────────────────────────────────────────────────────┤
│                                                                       │
│  User wants to remove bold from "**hello**"                           │
│                                                                       │
│  Step 1: Position cursor, backspace twice to remove **                │
│  Step 2: Position cursor, backspace twice to remove **                │
│                                                                       │
│  Total: 4 backspaces + 2 cursor movements                             │
│                                                                       │
│  Problem: Tedious, error-prone (easy to delete one side only)         │
│                                                                       │
└───────────────────────────────────────────────────────────────────────┘

┌───────────────────────────────────────────────────────────────────────┐
│                                                                       │
│  SMART BACKSPACE                                                      │
│                                                                       │
├───────────────────────────────────────────────────────────────────────┤
│                                                                       │
│  User wants to remove bold from "**hello**"                           │
│                                                                       │
│  Step 1: Position cursor at any marker                                │
│  Step 2: Backspace once                                               │
│                                                                       │
│  Result: "*hello*" (both markers reduced by 1)                        │
│  Total: 1 backspace                                                   │
│                                                                       │
│  Why better: Intuitive, fast, maintains symmetry                      │
│                                                                       │
└───────────────────────────────────────────────────────────────────────┘

Why Delete Closing First?

┌───────────────────────────────────────────────────────────────────────┐
│                                                                       │
│  THE POSITION SHIFT PROBLEM                                           │
│                                                                       │
├───────────────────────────────────────────────────────────────────────┤
│                                                                       │
│  WRONG ORDER: Delete opening first                                    │
│  ┌────────────────────────────────────────────────────────────────┐   │
│  │  Original: "**bold**"                                          │   │
│  │  Positions: 0 1 2 3 4 5 6 7 8                                  │   │
│  │                                                                │   │
│  │  Delete at position 1:                                         │   │
│  │  Result: "*bold**"                                             │   │
│  │  ALL POSITIONS SHIFTED! Old pos 7 is now 6                     │   │
│  │                                                                │   │
│  │  Try to delete at position 7 (saved earlier):                  │   │
│  │  ERROR: Position 7 now points to wrong character!              │   │
│  └────────────────────────────────────────────────────────────────┘   │
│                                                                       │
│  CORRECT ORDER: Delete closing first                                  │
│  ┌────────────────────────────────────────────────────────────────┐   │
│  │  Original: "**bold**"                                          │   │
│  │  Positions: 0 1 2 3 4 5 6 7 8                                  │   │
│  │                                                                │   │
│  │  Delete at position 7 (last *):                                │   │
│  │  Result: "**bold*"                                             │   │
│  │  Opening positions UNCHANGED (0-2)                             │   │
│  │                                                                │   │
│  │  Delete at position 1:                                         │   │
│  │  Result: "*bold*"                                              │   │
│  │  CORRECT!                                                      │   │
│  └────────────────────────────────────────────────────────────────┘   │
│                                                                       │
│  GENERAL PRINCIPLE:                                                   │
│  When deleting multiple positions, always delete from                 │
│  HIGHEST position to LOWEST.                                          │
│                                                                       │
└───────────────────────────────────────────────────────────────────────┘

Gradual Degradation Pattern

┌───────────────────────────────────────────────────────────────────────┐
│                                                                       │
│  GRADUAL MARKER DEGRADATION                                           │
│                                                                       │
├───────────────────────────────────────────────────────────────────────┤
│                                                                       │
│  Starting: "***bolditalic***"                                         │
│  Visual:   (bold + italic styled)                                     │
│                                                                       │
│  After 1st backspace:                                                 │
│  ┌───────────────────────────────┐                                    │
│  │  Content: "**bolditalic**"    │                                    │
│  │  Visual:  (bold styled)       │                                    │
│  │  Why: Removed outer layer     │                                    │
│  └───────────────────────────────┘                                    │
│                                                                       │
│  After 2nd backspace:                                                 │
│  ┌───────────────────────────────┐                                    │
│  │  Content: "*bolditalic*"      │                                    │
│  │  Visual:  (italic styled)     │                                    │
│  │  Why: Removed bold layer      │                                    │
│  └───────────────────────────────┘                                    │
│                                                                       │
│  After 3rd backspace:                                                 │
│  ┌───────────────────────────────┐                                    │
│  │  Content: "bolditalic"        │                                    │
│  │  Visual:  (plain text)        │                                    │
│  │  Why: Removed final layer     │                                    │
│  └───────────────────────────────┘                                    │
│                                                                       │
│  NATURAL PROGRESSION: bolditalic -> bold -> italic -> plain           │
│                                                                       │
│  Why natural? *** = * inside * inside * (nested layers)               │
│  Backspace peels one layer at a time, maintaining valid state.        │
│                                                                       │
└───────────────────────────────────────────────────────────────────────┘

Copy-Paste Fidelity: VmdBox

When users paste ASCII art or box-drawing content, several problems can occur:
┌───────────────────────────────────────────────────────────────────────┐
│                                                                       │
│  COPY-PASTE PROBLEMS IN TRADITIONAL EDITORS                           │
│                                                                       │
├───────────────────────────────────────────────────────────────────────┤
│                                                                       │
│  PROBLEM 1: Line Wrapping                                             │
│  ┌────────────────────────────────────────────────────────────────┐   │
│  │  Original:                   After paste:                      │   │
│  │  ┌─────────┐                 ┌───────                          │   │
│  │  │ Box     │                 ──┐                               │   │
│  │  └─────────┘                 │ Box                             │   │
│  │                                  │                             │   │
│  │  Why: Rich text editors wrap based on container width          │   │
│  └────────────────────────────────────────────────────────────────┘   │
│                                                                       │
│  PROBLEM 2: Font Mismatch                                             │
│  ┌────────────────────────────────────────────────────────────────┐   │
│  │  Box drawing assumes monospace fonts                           │   │
│  │  Proportional fonts break all alignment                        │   │
│  └────────────────────────────────────────────────────────────────┘   │
│                                                                       │
│  PROBLEM 3: Lost Whitespace                                           │
│  ┌────────────────────────────────────────────────────────────────┐   │
│  │  Multiple spaces collapse to single space                      │   │
│  │  "    indented" becomes " indented"                            │   │
│  └────────────────────────────────────────────────────────────────┘   │
│                                                                       │
└───────────────────────────────────────────────────────────────────────┘

The VmdBox Solution

┌───────────────────────────────────────────────────────────────────────┐
│                                                                       │
│  VMDBOX: PERFECT TERMINAL PRESERVATION                                │
│                                                                       │
├───────────────────────────────────────────────────────────────────────┤
│                                                                       │
│  TERMINAL OUTPUT                     VMDBOX INPUT                     │
│                                                                       │
│  ┌───────────────────────────┐       ┌───────────────────────────┐    │
│  │ $ tree                    │       │ Paste terminal output     │    │
│  │ .                         │       │ into VmdBox               │    │
│  │ ├── src                   │       │                           │    │
│  │ │   ├── main.js           │       │ PERFECT PRESERVATION:     │    │
│  │ │   └── index.html        │       │ - Box drawing chars       │    │
│  │ └── package.json          │       │ - Alignment               │    │
│  └───────────────────────────┘       │ - Whitespace              │    │
│              │                       └───────────────────────────┘    │
│              │                                    │                   │
│              └────────────────────────────────────┘                   │
│                              │                                        │
│              ┌────────────────────────────────────┐                   │
│              │  SAME VISUAL FIDELITY              │                   │
│              │  Terminal -> Copy -> Paste         │                   │
│              │  -> VmdBox -> Same appearance      │                   │
│              └────────────────────────────────────┘                   │
│                                                                       │
└───────────────────────────────────────────────────────────────────────┘

How VmdBox Works

┌───────────────────────────────────────────────────────────────────────┐
│                                                                       │
│  VMDBOX DETECTION FLOW                                                │
│                                                                       │
├───────────────────────────────────────────────────────────────────────┤
│                                                                       │
│   User pastes content                                                 │
│       │                                                               │
│       v                                                               │
│   ┌───────────────────┐                                               │
│   │ Pattern Detection │                                               │
│   └───────────────────┘                                               │
│       │                                                               │
│       │ Box-drawing characters?                                       │
│       │ Table patterns?                                               │
│       │ Chart patterns?                                               │
│       │                                                               │
│       └──-> NO  ──-> Normal paste (rich text)                         │
│       │                                                               │
│       └──-> YES (2+ box lines)                                        │
│             │                                                         │
│             v                                                         │
│   ┌───────────────────┐                                               │
│   │ Create VmdBox     │                                               │
│   └───────────────────┘                                               │
│       │                                                               │
│       v                                                               │
│   ┌───────────────────┐                                               │
│   │ Apply Properties  │                                               │
│   │ - Monospace font  │                                               │
│   │ - Preserve spaces │                                               │
│   │ - No word wrap    │                                               │
│   │ - Auto-scale      │                                               │
│   └───────────────────┘                                               │
│       │                                                               │
│       v                                                               │
│   Perfect preservation!                                               │
│                                                                       │
└───────────────────────────────────────────────────────────────────────┘

Auto-Scaling Visualization

┌─────────────────────────────────────────────────────────────────────────────┐
│                                                                             │
│  AUTO-SCALING: FIT WIDE CONTENT                                             │
│                                                                             │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│  Original content (1000px wide):                                            │
│  ┌──────────────────────────────────────────────────────────────────┐       │
│  │ ┌──────────────────────────────────────────────────────────────┐ │       │
│  │ │                    Very Wide ASCII Art                       │ │       │
│  │ └──────────────────────────────────────────────────────────────┘ │       │
│  └──────────────────────────────────────────────────────────────────┘       │
│                                                                             │
│  Container width: 500px                                                     │
│  Scale factor: 500/1000 = 0.5 (50%)                                         │
│                                                                             │
│  After scaling:                                                             │
│  ┌────────────────────────────────────┐                                     │
│  │ ┌────────────────────────────────┐ │                                     │
│  │ │   Very Wide ASCII Art          │ │  <-- Scaled to 50%                  │
│  │ └────────────────────────────────┘ │      All proportions preserved      │
│  └────────────────────────────────────┘                                     │
│                                                                             │
│  Key: Character spacing, line height, and alignment are preserved           │
│  because uniform scaling applies to both dimensions                         │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

Parallel State Machines: Terminal and Document

┌───────────────────────────────────────────────────────────────────────┐
│                                                                       │
│  THE SHARED ARCHITECTURE                                              │
│                                                                       │
├───────────────────────────────────────────────────────────────────────┤
│                                                                       │
│  TERMINAL (VTE Parser)           DOCUMENT (Markdown Parser)           │
│                                                                       │
│  ┌───────────────────────────┐   ┌───────────────────────────┐        │
│  │ Input: Byte stream        │   │ Input: Text string        │        │
│  │ State: VTE states         │   │ State: NORMAL/IN_BOLD/etc │        │
│  │ Output: Grid cells        │   │ Output: Range objects     │        │
│  └───────────────────────────┘   └───────────────────────────┘        │
│              │                                │                       │
│              └────────────────────────────────┘                       │
│                              │                                        │
│              ┌───────────────────────────────┐                        │
│              │  SHARED PRINCIPLES            │                        │
│              ├───────────────────────────────┤                        │
│              │                               │                        │
│              │  - Character-by-character     │                        │
│              │  - Explicit state tracking    │                        │
│              │  - No backtracking needed     │                        │
│              │  - Linear time complexity     │                        │
│              │  - Deterministic output       │                        │
│              │                               │                        │
│              └───────────────────────────────┘                        │
│                                                                       │
│  The Brick Property: Both systems process input atomically,           │
│  building up structured output incrementally.                         │
│                                                                       │
└───────────────────────────────────────────────────────────────────────┘
This parallelism enables seamless terminal-to-document workflow and ensures that Human + AI see the same visual representation.

SMPC Discovery: Nested Italic = Bold

A key insight that simplifies the entire implementation:
┌───────────────────────────────────────────────────────────────────────┐
│                                                                       │
│  THE CONCEPTUAL SHIFT                                                 │
│                                                                       │
├───────────────────────────────────────────────────────────────────────┤
│                                                                       │
│  TRADITIONAL VIEW (Separate Constructs):                              │
│  ┌────────────────────────────────────────────────────────────────┐   │
│  │  *   = italic                                                  │   │
│  │  **  = bold (separate construct)                               │   │
│  │  *** = bolditalic (yet another construct)                      │   │
│  │                                                                │   │
│  │  Result: Three different handling paths needed                 │   │
│  └────────────────────────────────────────────────────────────────┘   │
│                                                                       │
│  SMPC VIEW (Nested Single Construct):                                 │
│  ┌────────────────────────────────────────────────────────────────┐   │
│  │  *   = italic                                                  │   │
│  │  **  = *italic inside italic* = bold appearance                │   │
│  │  *** = *italic inside bold*   = bolditalic appearance          │   │
│  │                                                                │   │
│  │  Result: Single * handling with nesting!                       │   │
│  └────────────────────────────────────────────────────────────────┘   │
│                                                                       │
│  This makes gradual degradation NATURAL:                              │
│  *** -> ** -> * -> (none) is just "remove one layer at a time"        │
│                                                                       │
│  Why SMPC: Simplicity emerges from recognizing that                   │
│  ** is just * nested inside *.                                        │
│                                                                       │
└───────────────────────────────────────────────────────────────────────┘

Summary

┌───────────────────────────────────────────────────────────────────────┐
│                                                                       │
│  STATE MACHINES: THE FOUNDATION OF TRUST                              │
│                                                                       │
├───────────────────────────────────────────────────────────────────────┤
│                                                                       │
│   ┌───────────────────┐                                               │
│   │ VTE Parser        │ Terminal escape sequence processing           │
│   └───────────────────┘                                               │
│           │                                                           │
│           │ Same algorithm pattern                                    │
│           v                                                           │
│   ┌───────────────────┐                                               │
│   │ Markdown Parser   │ Document formatting processing                │
│   └───────────────────┘                                               │
│           │                                                           │
│           │ Enables                                                   │
│           v                                                           │
│   ┌───────────────────┐                                               │
│   │ Smart Backspace   │ Synchronized marker deletion                  │
│   └───────────────────┘                                               │
│           │                                                           │
│           │ Combines with                                             │
│           v                                                           │
│   ┌───────────────────┐                                               │
│   │ VmdBox            │ Perfect terminal-to-document copy-paste       │
│   └───────────────────┘                                               │
│           │                                                           │
│           │ Results in                                                │
│           v                                                           │
│   ┌───────────────────┐                                               │
│   │ Human + AI        │ Unified visual experience                     │
│   │ Alignment         │ Predictable, trustable output                 │
│   └───────────────────┘                                               │
│                                                                       │
│   "State machines bring the precision of terminal parsing to          │
│    document formatting - each character is processed atomically,      │
│    building up meaning incrementally."                                │
│                                                                       │
└───────────────────────────────────────────────────────────────────────┘

Related: variablemd/hybrid-editor/architecture.mdx, variablemd/core-concepts/codexmono.mdx