# Active milestone ```text Milestone: 3 — independent projections Goal: Make manual output, portable graph artifacts, and the live viewer independent generation-pinned consumers of the validated graph. In scope: Versioned ManualRenderPlan and GraphViewPlan; immutable projection packages and receipts; independent manual and graph renderers; projection policies; incremental fragments; equivalence, recovery, accessibility, response-size, performance, and memory gates. Out of scope: Adapter SDK expansion; remote render services; shared render farms; third-party renderer ecosystems; self-hosting; storage replacement; WorldForge or ScrapeStation changes; production MCP repointing; tags and releases. Done when: Manual and graph plans are versioned and bounded; renderers cannot crawl project state or mutate canonical facts; portable and live graph modes remain separate; policies are enforced independently; status is receipt-only; full/incremental output is equivalent; accessibility and maintained scale gates pass. Status: Active implementation. Three independent audits were reconciled before source changes. The versioned plan/package/receipt contracts, pure manual and graph planners, isolated manual renderer, legacy byte-compatibility shim, packaged schemas, and pinned live-source correction are implemented and focused-green. Durable publication, portable graph artifacts, detached workers, fragment equivalence, independent policy enforcement, accessibility, and maintained scale gates remain. ``` Milestones 4–5 remain directional context and are not active.