@maverickcer/env-cap
    Preparing search index...

    Interface GenerateUsageReportResult

    Public result of generateUsageReport.

    Composed from the building-block types usage-report.ts (the renderer) owns, the same way GenerateDocumentationResult composes from docs.ts's CatalogContract -- keeps the renderer importable without its orchestrator (see RenderUsageReportOptions's own doc comment).

    interface GenerateUsageReportResult {
        abandonedContracts: readonly AbandonedContractFinding[];
        asserted: readonly AssertedDynamicAccessFinding[];
        dependencyOwnership: readonly OwnershipDependencyEntry[];
        indeterminate: readonly IndeterminateOwnershipFinding[];
        parseWarnings: readonly ParseWarning[];
        reportPath: string | undefined;
        scannedSurfaces: readonly ScannedSurface[];
        unconsumedOwnedVariables: readonly UnconsumedOwnedVariableFinding[];
        unresolvedConsumers: readonly UnresolvedConsumerFinding[];
    }

    Hierarchy (View Summary)

    Index
    abandonedContracts: readonly AbandonedContractFinding[]

    Contracts never imported anywhere in the scanned repository.

    asserted: readonly AssertedDynamicAccessFinding[]

    Variables a developer has re-acknowledged via dynamicAccess, freshly -- see ADR 0037.

    dependencyOwnership: readonly OwnershipDependencyEntry[]

    Every contract's ownership/dependency summary.

    indeterminate: readonly IndeterminateOwnershipFinding[]

    Variables accessed only via dynamic (computed) property access.

    parseWarnings: readonly ParseWarning[]

    Schema-discovery parse warnings plus, since ADR 0014, any packages resolution failures -- surfaced here too (not just from generateEnvManifest/generateDocumentation) so a team relying only on --ownership output still learns when a cross-package contract failed to resolve.

    reportPath: string | undefined

    Absolute path the report was written to, or undefined if options.report wasn't passed.

    scannedSurfaces: readonly ScannedSurface[]

    Every surface actually scanned for usage -- see ADR 0036. Named explicitly next to unconsumedOwnedVariables so "no consumer found" is never read as a stronger claim than what was actually searched.

    unconsumedOwnedVariables: readonly UnconsumedOwnedVariableFinding[]

    Owned variables with no consumer found in the scanned repository.

    unresolvedConsumers: readonly UnresolvedConsumerFinding[]

    Advisory only, never gates onOwnershipIssue -- a contract only reaches here when an ambiguous barrel re-export makes "abandoned" or "consumed" both unprovable.