# P_Rec_Annot Plant 3D 2026 foundation Foundation for migration from the legacy P_Rec_Annot v1.0.4. Legacy sources remain read-only and are not copied here. Current slice: * `PRecAnnot.Abstractions` — Autodesk-free immutable contracts and DTOs; * `PRecAnnot.Core` — deterministic annotation planning and duplicate filtering; * `PRecAnnot.Application` — command registry and use-case orchestration; * `PRecAnnot.Plant3D2026` — guarded adapter boundary; compilation against Plant 3D 2026 is blocked until the SDK/runtime is installed; * `PRecAnnot.UI` — idempotent Ribbon registration model, without legacy `_netload`; * `PRecAnnot.Telemetry` — local JSONL command-scope events, without project path/number; * `PRecAnnot.Bundle.Tests` and `PRecAnnot.Core.Tests` — architecture/core/packaging checks. The first vertical slice is intentionally a dry-run planning slice. It does not mutate DWG until the Plant 3D 2026 adapter is compiled and runtime-tested on a controlled project. Build: ```powershell dotnet build .\PRecAnnot2026.sln --configuration Release dotnet test .\PRecAnnot2026.sln --configuration Release --no-build ``` When Plant 3D 2026 is installed, pass `/p:Plant3D2026InstallDir=...`. Autodesk assemblies are `Private=false`, `CopyLocal=false` and are never committed.