# Round 15 — Tower J18-J22 · Digital Distribution + Sync

**Date**: 2026-04-30
**Status**: ✅ COMPLETE

---

## 🎯 הקומות

| # | Station | תפקיד | Latency |
|---|---|---|---|
| **J18** | SEO Optimizer | meta tags, og:image, schema.org | <500ms |
| **J19** | JSON-LD Generator | structured data NewsArticle | <300ms |
| **J20** | Hreflang Mapper | תרגום על-id ל-en/ar | <2s |
| **J21** | Citation Inserter | מקורות + רגעים inline | <1s |
| **J22** | Cache Builder | warmup CDN + edge caches | <500ms |

---

## 🌐 J18 · SEO Optimizer

### Output
```json
{
  "title_seo": "12 סוללות כיפת ברזל חדשות במחיר 3.2 מיליארד | מעריב",
  "title_length": 58,
  "meta_description": "משרד הביטחון אישר רכש של 12 סוללות חדשות. כתבה מלאה בכל הפרטים, התקציב והשלכות.",
  "meta_description_length": 142,
  "og_image": "https://assets.clastop.app/img/maariv/2026/04/iron-dome-12-batteries.jpg?w=1200&h=630&fit=cover",
  "og_image_dims": "1200x630",
  "twitter_card": "summary_large_image",
  "canonical_url": "https://maariv.co.il/security/iron-dome-12-batteries-2026",
  "keywords": ["כיפת ברזל", "משרד הביטחון", "תקציב ביטחון", "אורון רכש", "רפאל"]
}
```

### Implementation
LLM Gemini Flash עם best practices prompt + tenant SEO config.

### A2UI emission
```json
{"version":"v0.9","updateDataModel":{"surfaceId":"...","path":"/seo","value":{...}}}
{"version":"v0.9","updateComponents":{"surfaceId":"article-output","components":[
  {"id":"og-preview","component":"PressOutputPreview","platform":"facebook","data":{...}}
]}}
```

ה-`PressOutputPreview` מציג איך הkenta יראה ב-FB / Twitter / Mobile.

### Cost: ~$0.0003

---

## 📊 J19 · JSON-LD Generator

### Output
```json
{
  "@context": "https://schema.org",
  "@type": "NewsArticle",
  "headline": "...",
  "datePublished": "2026-04-30T22:00:00+03:00",
  "author": { "@type": "Person", "name": "Maariv News Bot" },
  "publisher": { "@type": "Organization", "name": "Maariv", "logo": {...} },
  "mainEntityOfPage": "https://maariv.co.il/...",
  "image": "https://assets.clastop.app/img/...",
  "articleSection": "Security"
}
```

### Implementation
**Deterministic** — מבוסס על 5W output + SEO output. אין LLM.

### Cost: $0

---

## 🌍 J20 · Hreflang Mapper (Translation)

### תפקיד
לtenants international (BBC) — ייצור גרסאות:
- en (primary)
- es / fr / de / ar (depending on tenant)

### Implementation
LLM Gemini Pro (better quality for translation):
```
System: Translate this Hebrew article to {target_lang}.
Preserve: structure, quotes, named entities (transliterate names).
Cultural adaptation: adjust idioms.
Output: { headline, lead, body, pull_quote }
```

### Cost: $0.005-0.01 per language

### Optional
רק מופעל אם `tenant.languages.length > 1`.

---

## 📚 J21 · Citation Inserter

### תפקיד
מצא ב-text ספציפי איפה לכלול **superscript citation numbers** [1] [2] [3], + לבנות citations list בסוף.

### Process
1. cross-reference J11 FactCheck flags
2. cross-reference J10 Vector context cards (if used)
3. insert markup: `הצליה הראשונה<sup data-cite="1">1</sup>`
4. build CitationList component data

### A2UI emission
```json
{"version":"v0.9","updateComponents":{"surfaceId":"article-output","components":[
  {"id":"citations","component":"CitationList","entries":[
    {"n":1,"source":"מעריב, אפריל 2026","url":"..."},
    {"n":2,"source":"Wikipedia: Iron Dome","url":"..."}
  ]}
]}}
```

### Cost: ~$0.0005

---

## ⚡ J22 · Cache Builder

### תפקיד
**Pre-warm** ה-CDN cache לפני publish:
- Push static HTML version → R2
- Push og:image transformed → Cloudflare Images
- Invalidate old cache for related URLs (related to article)
- Trigger ISR (incremental static regeneration) for tenant frontend

### Implementation
Background job. אין latency על user — זה fire-and-forget.

### Cost: $0 (Cloudflare free)

---

## 📊 J18-J22 Total

| Station | Latency | Cost |
|---|---|---|
| J18 SEO | <500ms | $0.0003 |
| J19 JSON-LD | <300ms | $0 |
| J20 Hreflang (per lang) | <2s | $0.005-0.01 |
| J21 Citations | <1s | $0.0005 |
| J22 Cache | <500ms (bg) | $0 |
| **Sum (no translation)** | **<2.3s** | **$0.0008** |
| **+1 translation (BBC)** | **+2s** | **+$0.005** |

---

## ✅ Closure
✅ **Round 15 closed. 22/54 floors documented.**
