# Experiencias v2 Architecture

## Goal

Experiencias v2 is a reusable engine for guided digital products.

The core model must stay generic. Guides, challenges, onboarding, courses, recipe walkthroughs, and inner-mind scenes are all expressed as:

```txt
Experience
  Screen
  FlowCollection
  Flow
  Step
  Block
```

Domain words can appear in labels and templates, but not as core table names.

## Core Vocabulary

### Experience

The complete product or app.

Examples: AuraSerena, FitFlow, Guerrero Digital.

### Screen

A persistent place in the app.

Examples: Dashboard, Recetario, Guías, Mi Semana, Perfil.

A screen is a stable navigation surface. It can open or embed flows.

### FlowCollection

A reusable set of flows.

Examples: Comer sin ruido, Semana liviana, Reset suave 7 días.

Former names: guide_collection, challenge_collection.

### Flow

A sequence or chapter inside a collection, or a standalone sequence launched by a screen.

Examples: Módulo 1 - Entender la hinchazón, Día 1 - Reset suave, Onboarding de bienvenida.

Former names: guide_module, challenge_template, story, day.

### Step

A navigable unit inside a flow. The user experiences it as one screen or panel.

Examples: text screen, choice screen, checklist screen, scale screen, image screen, recipe step.

Former names: slide, guide block used as screen, scene step.

### Block

A composable layout part inside a step.

Examples: heading, body, image, CTA, choice options, checklist items, progress.

A step can have one main block, but the model supports multiple blocks for richer layouts.

### Renderer

The runtime component that paints a step or flow.

Renderers use data + theme + render preset + motion preset.

### Theme

Brand-level visual identity: colors, base typography, radius, surface palette.

### RenderPreset

How a step or block is presented.

Examples: serene_editorial, inner_mind, premium_recipe_card, soft_choice, cinematic_intro.

### MotionPreset

Reusable animation behavior.

Examples: fade_up_soft, blur_enter, typewriter_dream, smoky_in, smoky_out, slide_next.

### StyleKit

A package tying together theme + render presets + motion presets.

## Editor Shape

The studio is canvas-first by context.

### App Map

Shows screens and navigation.

### Flow Editor

Canvas editor for one flow at a time. Each node is a Step.

Clicking a step selects it, opens the inspector, and updates the mobile preview to that exact step.

### Step Inspector

Edits selected step: title, type, render preset, motion preset, blocks, capture key, CTA behavior.

### Preview

Right-side mobile preview always follows selection.

It must support whole screen preview, whole flow preview, and exact selected step preview.

## Persistence

Postgres is the source of truth.

JSON can exist only as seed fixtures, export/import format, or cached snapshots.

## Migration Rule

Old v1 names are only allowed in migration/import code.

The v2 runtime and editor should not expose: guide_collections, guide_modules, challenge_templates, challenge_collections, day_list, story, slides.

## First Build Scope

1. Postgres schema.
2. Seed AuraSerena demo.
3. App Map.
4. Flow Editor canvas.
5. Step inspector.
6. Mobile preview by selected step.