# Output Surface Reference

This reference is source-derived from the reviewed Output files. It documents the public surface that consumers may use. Friend/internal route classes are listed only as exclusions.

## Entry point

| Public entry point | Evidence | Use |
|---|---|---|
| `MASApplication.Output` | `MASSystem/Application/Facade/MASApplication.vb` | Application-owned Output facade. |
| `MASApplicationOutput` | `MASSystem/Application/Facade/Output/MASApplicationOutput.vb` | Public facade type behind `MASApplication.Output`. |

## `MASApplicationOutput` methods

| Method | Purpose |
|---|---|
| `GetReadinessSnapshot()` | Return `MASOutputReadinessSnapshot`. |
| `GetCapabilities()` | Return a list of `MASOutputCapability` values. |
| `GetCapabilityCatalog()` | Return `MASOutputCapabilityCatalog`. |
| `CanExport(artifactKind, format)` | Return `True` only for supported artifact/format pairs. |
| `GetDefaultArtifactFileName(artifactKind, format)` | Return the stable directory-target file name or empty string. |
| `Export(request)` | Execute a supported output request. |
| `ExportCapabilityCatalogManifest(format, target, options)` | Convenience export for capability catalog. |
| `ExportReadinessManifest(format, target, options)` | Convenience export for readiness facts. |
| `ExportChartFoundationManifest(format, target, options)` | Convenience export for chart foundation facts. |
| `ExportReportPreviewManifest(format, target, options)` | Convenience export for report-preview facts. |
| `ExportVisualCapturePng(target, options)` | Convenience export for governed PNG visual capture. |

## Public contract classes and enums

| Type | Purpose |
|---|---|
| `MASOutputArtifactKind` | Artifact family enum: readiness, chart/report manifests, visual capture, bundle, PDF, print, capability catalog. |
| `MASOutputFormat` | Format enum: `PlainText`, `Json`, `Png`, `Pdf`, `Printer`. |
| `MASOutputTargetKind` | Target enum: `Memory`, `File`, `Directory`. |
| `MASOutputTarget` | Destination descriptor with `Memory()`, `File(path)`, and `Directory(path)`. |
| `MASOutputOptions` | Export options including overwrite behavior, diagnostic details, visual scenario id, theme id, and image quality. |
| `MASOutputRequest` | Immutable request. Includes factory helpers for supported route families. |
| `MASOutputResult` | Immutable result with status, failure reason, content, bytes, path, summary, and details. |
| `MASOutputCapability` | One capability fact. |
| `MASOutputCapabilityCatalog` | Immutable capability catalog with lookup and `CanExport`. |
| `MASOutputReadinessSnapshot` | Readiness facts exposed by the facade. |
| `MASOutputCapabilityStatus` | Capability status: `Supported`, `Declared`, `NotAvailable`. |
| `MASOutputOperationStatus` | Operation status: `Succeeded`, `SucceededWithWarnings`, `Unsupported`, `Failed`. |
| `MASOutputFailureReason` | Failure reason enum for unsupported, invalid, missing target, write failure, scenario not found, encoding, and internal errors. |

## Request factory helpers

| Factory | Artifact / format |
|---|---|
| `MASOutputRequest.CapabilityCatalogManifest(format, target, options)` | Capability catalog, JSON or plain text. |
| `MASOutputRequest.ReadinessManifest(format, target, options)` | Platform readiness, JSON or plain text. |
| `MASOutputRequest.ChartFoundationManifest(format, target, options)` | Chart foundation, JSON or plain text. |
| `MASOutputRequest.ReportPreviewManifest(format, target, options)` | Report preview, JSON or plain text. |
| `MASOutputRequest.VisualCapturePng(target, options)` | Visual capture PNG. |

## Supported combinations

| Artifact kind | Supported format(s) |
|---|---|
| `OutputCapabilityCatalog` | `Json`, `PlainText` |
| `PlatformReadinessManifest` | `Json`, `PlainText` |
| `ChartFoundationManifest` | `Json`, `PlainText` |
| `ReportPreviewManifest` | `Json`, `PlainText` |
| `VisualCapture` | `Png` |
| `ProductEvidenceBundle` | `Json` |

## Deliberately unsupported combinations

| Artifact kind | Format | Catalog status |
|---|---|---|
| `PdfDocument` | `Pdf` | `NotAvailable` |
| `PrintJob` | `Printer` | `NotAvailable` |

## Internal exclusions

The following are not public Output surface:

- `MASApplicationOutputGateway`.
- `MASOutputProductRuntime`.
- `MASChart*` foundation classes under `MASSystem/Output/ChartVisualizationSystem/Foundation`.
- `MASReport*` foundation classes under `MASSystem/Output/ReportPrintSystem/Foundation`.
- `MASOutputApplicationRouteAudit` and related finding/report types.
