# Phase 3 - TED as a structured projection on the generic document core

Phase 3 makes TED a proper type-specific projection layered on top of the generic `DOC.doc_document`
root introduced in Phase 1 and the generic vectorization model introduced in Phase 2.

## What is implemented
- `TED.ted_notice_projection`
- `TED.ted_notice_lot`
- `TED.ted_notice_organization`
- `TedNoticeProjectionService`
- optional startup backfill of missing TED projections
- processing flow updated so freshly imported TED notices dual-write to:
  - `DOC` generic document/content/representation model
  - `TED` structured projection tables

## Core intent
TED is no longer the root model of the platform. Instead:
- `DOC.doc_document` is the canonical document root
- `TED.ted_notice_projection` holds TED-specific structured metadata
- `TED.ted_notice_lot` and `TED.ted_notice_organization` hold normalized child structures

## Compatibility
This phase is additive:
- legacy `TED.procurement_document` remains in place
- existing search and API behavior continue to work
- new imports are now representable in both the legacy and new projection model

## Important limitation
Structured search endpoints still read from the legacy TED model. Moving TED structured reads to the
new projection tables is the next migration step.
