{
  "planPath": "docs/plans/2026-05-24-transport.md",
  "tasks": [
    {"id": 7,  "subject": "T0: Bundle DTOs in Commons", "status": "pending"},
    {"id": 8,  "subject": "T1: Transport interfaces", "status": "pending"},
    {"id": 9,  "subject": "T2: BundleImportId column on AuditLogEntry", "status": "pending"},
    {"id": 10, "subject": "T3: EF migration AddBundleImportIdToAuditLog", "status": "pending", "blockedBy": [9]},
    {"id": 11, "subject": "T4: IAuditCorrelationContext scoped service", "status": "pending"},
    {"id": 12, "subject": "T5: AuditService reads correlation context", "status": "pending", "blockedBy": [9, 11]},
    {"id": 13, "subject": "T6: ZB.MOM.WW.ScadaBridge.Transport project skeleton", "status": "pending"},
    {"id": 14, "subject": "T7: TransportOptions", "status": "pending", "blockedBy": [13]},
    {"id": 15, "subject": "T8: BundleSecretEncryptor (AES-256-GCM + PBKDF2)", "status": "pending", "blockedBy": [13]},
    {"id": 16, "subject": "T9: ManifestBuilder + ManifestValidator", "status": "pending", "blockedBy": [13]},
    {"id": 17, "subject": "T10: EntitySerializer + DTOs + secret carving", "status": "pending", "blockedBy": [13]},
    {"id": 18, "subject": "T11: BundleSerializer (ZIP packer + reader)", "status": "pending", "blockedBy": [15, 16, 17]},
    {"id": 19, "subject": "T12: DependencyResolver", "status": "pending", "blockedBy": [13]},
    {"id": 20, "subject": "T13: BundleSessionStore", "status": "pending", "blockedBy": [13]},
    {"id": 21, "subject": "T14: BundleExporter.ExportAsync", "status": "pending", "blockedBy": [18, 19]},
    {"id": 22, "subject": "T15: BundleImporter.LoadAsync", "status": "pending", "blockedBy": [18, 20]},
    {"id": 23, "subject": "T16: BundleImporter.PreviewAsync (diff engine)", "status": "pending", "blockedBy": [22]},
    {"id": 24, "subject": "T17: BundleImporter.ApplyAsync (transactional)", "status": "pending", "blockedBy": [12, 23]},
    {"id": 25, "subject": "T18: Host registration + appsettings binding", "status": "pending", "blockedBy": [24]},
    {"id": 26, "subject": "T19: TreeView checkbox-selection mode", "status": "pending"},
    {"id": 27, "subject": "T20: TemplateFolderTree wrapper + Templates.razor refactor", "status": "pending", "blockedBy": [26]},
    {"id": 28, "subject": "T21: TransportExport.razor wizard", "status": "pending", "blockedBy": [21, 27]},
    {"id": 29, "subject": "T22: TransportImport.razor wizard", "status": "pending", "blockedBy": [24, 27]},
    {"id": 30, "subject": "T23: NavMenu Export/Import entries", "status": "pending", "blockedBy": [28, 29]},
    {"id": 31, "subject": "T24: Audit log Bundle Import filter", "status": "pending", "blockedBy": [9]},
    {"id": 32, "subject": "T25: Integration round-trip test", "status": "pending", "blockedBy": [24]},
    {"id": 33, "subject": "T26: Integration conflict + rollback tests", "status": "pending", "blockedBy": [24]},
    {"id": 34, "subject": "T27: Component-Transport.md design doc", "status": "pending"},
    {"id": 35, "subject": "T28: README + cross-reference updates", "status": "pending"},
    {"id": 36, "subject": "T29: Manual cluster verification checklist", "status": "pending", "blockedBy": [25, 29, 30, 31, 32, 33, 34, 35]}
  ],
  "lastUpdated": "2026-05-24T00:00:00Z"
}
