---
title: ReportableMetadata
framework: statereporting
role: symbol
role_heading: Protocol
path: statereporting/reportablemetadata
---

# ReportableMetadata

A protocol for types that can supply their metadata as a dictionary of reportable values.

## Declaration

```swift
protocol ReportableMetadata
```

## Mentioned in

Getting started with StateReporting

## Overview

Overview Adopt ReportableMetadata to pass stable or volatile metadata to StateReporter. The single required property, metadataDictionary, maps string keys to ReportableMetadataValue cases. Use the ReportableMetadata() macro to synthesize the conformance automatically from stored properties, rather than implementing it by hand.

## Topics

### Instance Properties

- [metadataDictionary](statereporting/reportablemetadata/metadatadictionary.md)

## See Also

### Defining metadata

- [ReportableMetadataValue](statereporting/reportablemetadatavalue.md)
