# Event contract
The caller-facing event envelope, the published channel and payload contracts, and the rules for using a generated event address. Internal publisher, subscriber and source-code topology is deliberately not part of this projection.

## The envelope

Every event contract on this platform is built on a base envelope of these fields: `eventId`, `creationDate`, `isPublished`, `headers`, `targetDaprAppId`, `idempotencyKey`.

Bulk event schemas add `entryId` and `status`.

No requiredness is inferred from nullability in the source contract, so consumers must follow the required fields a schema actually declares rather than assuming every listed property is present on the wire.

:::caution
**Envelope coverage is per channel schema.** 111 of 155 channel schemas in this snapshot explicitly declare the base envelope; 44 omit it. An omitted envelope is not presented here as though those fields were in that schema.

The omitted population includes 17 catalog-driven dynamic event schemas. The generated payload schema in each case contains only the catalog parameters and does not declare the base envelope fields.
:::

:::note
**Correlation rides in headers, not in a guessed top-level field.** The contract declares no top-level causation or correlation field. Correlation and tenant values may be carried inside `headers`, but which key carries them is a property of the caller and of the environment, so this page does not invent one.
:::

## Addresses are contracts, not examples

:::caution
**This snapshot includes deployment-dependent address templates.** A segment printed as `{input}` must be resolved for the target environment. Do not replace it with a plausible default and do not copy a value from another environment; obtain the value from the owner of the deployment you are integrating with.
:::

These are the segments a caller has to resolve. The count is of channels on this page that carry the segment.

| Deployment input | Channels |
| --- | --- |
| `{postfix}` | 112 |
| `{prefix}` | 91 |
| `{targetDaprAppId}` | 21 |
| `{serviceName}` | 9 |
| `{perInstanceTag}` | 8 |
| `{bulkTag}` | 5 |
| `{tenantCode}` | 4 |

Each segment is resolved by the deployment: per-service configuration, the running tenant list, or a value set on the event when it is published. Get the values for your environment from the platform team that owns it.

## Channel and payload contracts

Each row is an event contract, not publisher/subscriber topology. Open the machine-readable document for property names, schema types, descriptions and the address parameters that must be supplied by the target environment.

0 of 155 channels declare a required array; the rest are `unknown` — "unknown: C# nullability is not a wire-presence requirement and no required array was declared".

| Event | Kind | Address or template | Payload fields | Required fields |
| --- | --- | --- | --- | --- |
| `AccountCloseDistributedEvent` | event | `seed_account_close_boa_to_dgcore` | 20 | unknown |
| `AccountClosedDistributedEvent` | event | `{prefix}-AccountClosedDistributedEvent-{postfix}` | 12 | unknown |
| `AccountCreatePublishDistributedEvent` | event | `{prefix}-AccountCreatePublishDistributedEvent-{postfix}` | 12 | unknown |
| `AccountCreatePublishResponseDistributedEvent` | event | `seed_account_dgcore_to_boa-resp` | 11 | unknown |
| `AccountDetailExtendingDistributedEvent` | event | `seed_renewal_boa_to_dgcore` | 33 | unknown |
| `AccountProfitDistributionInsertEvent` | event | `{targetDaprAppId}-AccountProfitDistributionInsertEvent-{postfix}` | 14 | unknown |
| `AccountReopenDistributedEvent` | event | `seed_account_reopen_boa_to_dgcore` | 16 | unknown |
| `AccountTransactionInsertEvent` | event | `{prefix}-AccountTransactionInsertEvent-{postfix}` | 39 | unknown |
| `AccountTransactionNotificationDistributedEvent` | event | `seed_push_notification_sent_boa_to_dgcore` | 17 | unknown |
| `AccountingBoaToDgcoreDistributedEvent` | event | `seed_accounting_boa_to_dgcore` | 9 | unknown |
| `AccountingPublishDistributedEvent` | event | `{prefix}-AccountingPublishDistributedEvent-{postfix}` | 11 | unknown |
| `AccountingTransmissionDistributedEvent` | event | `{prefix}-AccountingTransmissionDistributedEvent-{postfix}` | 12 | unknown |
| `AmlResultDistributedEvent` | event | `{prefix}-AmlResultDistributedEvent-{postfix}` | 9 | unknown |
| `AssignCustomerRepresentativeDistributedEvent` | event | `{prefix}-AssignCustomerRepresentativeDistributedEvent-{postfix}` | 9 | unknown |
| `AuraDynamicEvent` | event | `{prefix}-AuraDynamicEvent-{postfix}` | 9 | unknown |
| `AuraEncryptedEvent` | event | `{prefix}-AuraEncryptedEvent-{postfix}` | 8 | unknown |
| `AuthorizationBusinessKeyContentDistributedEvent` | event | `{prefix}-AuthorizationBusinessKeyContentDistributedEvent-{postfix}` | 9 | unknown |
| `BpmRunCommitEvent` | event | `{prefix}-BpmRunCommitEvent-{postfix}` | 16 | unknown |
| `BpmRunExternalServiceRollbackEvent` | event | `{prefix}-BpmRunExternalServiceRollbackEvent-{postfix}` | 14 | unknown |
| `BpmRunProcessDomainRollbackEvent` | event | `{prefix}-BpmRunProcessDomainRollbackEvent-{postfix}` | 14 | unknown |
| `BpmRunProcessRollbackEvent` | event | `{prefix}-BpmRunProcessRollbackEvent-{postfix}` | 12 | unknown |
| `BroadcastMessageSendEvent` | event | `{prefix}-BroadcastMessageSendEvent-{postfix}` | 9 | unknown |
| `CalculateAndCreateCustomerRiskEvent` | event | `{targetDaprAppId}-CalculateAndCreateCustomerRiskEvent-{postfix}` | 5 | unknown |
| `CalculateAndCreateCustomerRiskEvent` | event | `{prefix}-CalculateAndCreateCustomerRiskEvent-{postfix}` | 12 | unknown |
| `CardStockDropDistributedEvent` | event | `{prefix}-CardStockDropDistributedEvent-{postfix}` | 11 | unknown |
| `CardStockRequestDistributedEvent` | event | `{prefix}-CardStockRequestDistributedEvent-{postfix}` | 11 | unknown |
| `ClearingBusinessKeyContentDistributedEvent` | event | `{prefix}-ClearingBusinessKeyContentDistributedEvent-{postfix}` | 9 | unknown |
| `CreateAccountNotificationSmsDistributedEvent` | event | `{prefix}-CreateAccountNotificationSmsDistributedEvent-{postfix}` | 10 | unknown |
| `CreateAccountNotificationSmsDistributedEvent` | event | `{targetDaprAppId}-CreateAccountNotificationSmsDistributedEvent-{postfix}` | 3 | unknown |
| `CreateAndUploadDocumentEvent` | event | `{targetDaprAppId}-CreateAndUploadDocumentEvent-{postfix}` | 3 | unknown |
| `CreateAndUploadDocumentEvent` | event | `{prefix}-CreateAndUploadDocumentEvent-{postfix}` | 10 | unknown |
| `CreateAndUploadDocumentSendEmailEvent` | event | `{prefix}-CreateAndUploadDocumentSendEmailEvent-{postfix}` | 9 | unknown |
| `CreateBatchCardDistributedEvent` | event | `{prefix}-{tenantCode}-{bulkTag}-CreateBatchCardDistributedEvent-{postfix}` | 12 | unknown |
| `CreateBnplVirtualCardDistributedEvent` | event | `{prefix}-CreateBnplVirtualCardDistributedEvent-{postfix}` | 12 | unknown |
| `CreateBnplVirtualCardDistributedEvent` | event | `{targetDaprAppId}-CreateBnplVirtualCardDistributedEvent-{postfix}` | 5 | unknown |
| `CreateCardApplicationDistributedEvent` | event | `{prefix}-CreateCardApplicationDistributedEvent-{postfix}` | 13 | unknown |
| `CreateCardApplicationV2DistributedEvent` | event | `{prefix}-CreateCardApplicationV2DistributedEvent-{postfix}` | 13 | unknown |
| `CreateCustomerApplicationDistributedEvent` | event | `{prefix}-CreateCustomerApplicationDistributedEvent-{postfix}` | 19 | unknown |
| `CreateCustomerApplicationDistributedEvent` | event | `{prefix}-CreateCustomerApplicationDistributedEvent-{postfix}` | 18 | unknown |
| `CreateCustomerApplicationDistributedEvent` | event | `{targetDaprAppId}-CreateCustomerApplicationDistributedEvent-{postfix}` | 12 | unknown |
| `CreateCustomerConsentAndUploadDocumentEvent` | event | `{prefix}-CreateCustomerConsentAndUploadDocumentEvent-{postfix}` | 10 | unknown |
| `CreateCustomerNotificationSmsDistributedEvent` | event | `{targetDaprAppId}-CreateCustomerNotificationSmsDistributedEvent-{postfix}` | 2 | unknown |
| `CreateCustomerNotificationSmsDistributedEvent` | event | `{prefix}-CreateCustomerNotificationSmsDistributedEvent-{postfix}` | 9 | unknown |
| `CreateVirtualIbanDistributedEvent` | event | `{targetDaprAppId}-CreateVirtualIbanDistributedEvent-{postfix}` | 1 | unknown |
| `CreateVirtualIbanDistributedEvent` | event | `{prefix}-CreateVirtualIbanDistributedEvent-{postfix}` | 8 | unknown |
| `CurrentChannel` | cache-refresh | `caches-{serviceName}-CurrentChannel` | 0 | unknown |
| `CustomerPublishDistributedEvent` | event | `{prefix}-CustomerPublishDistributedEvent-{postfix}` | 13 | unknown |
| `CustomerPublishResponseDistributedEvent` | event | `seed_cust_dgcore_to_boa-resp` | 11 | unknown |
| `CustomerPublishResponseV1DistributedEvent` | event | `seed_cust_boa_to_dgcore` | 10 | unknown |
| `DaprExporterDistributedBulkEvent` | event | `{bulkTag}-DAPR-EXPORTER` | 11 | unknown |
| `DaprExporterDlqDistributedEvent` | event | `DAPR-EXPORTER-DLQ` | 9 | unknown |
| `DataMigratedEvent` | event | `{prefix}-DataMigratedEvent-{postfix}` | 10 | unknown |
| `DeleteKeycloakUserEvent` | event | `{targetDaprAppId}-DeleteKeycloakUserEvent-{postfix}` | 1 | unknown |
| `DeleteKeycloakUserEvent` | event | `{prefix}-DeleteKeycloakUserEvent-{postfix}` | 8 | unknown |
| `DigitalPasswordPublishEvent` | event | `{prefix}-DigitalPasswordPublishEvent-{postfix}` | 12 | unknown |
| `DigitalPasswordPublishEvent` | event | `{prefix}-DigitalPasswordPublishEvent-{postfix}` | 8 | unknown |
| `DmsPublishDistributedEvent` | event | `{prefix}-DmsPublishDistributedEvent-{postfix}` | 20 | unknown |
| `DmsPublishDistributedEvent` | event | `{prefix}-DmsPublishDistributedEvent-{postfix}` | 23 | unknown |
| `DomainDataMigratedEvent` | event | `{targetDaprAppId}-DomainDataMigratedEvent-{postfix}` | 1 | unknown |
| `DomainDataMigratedEvent` | event | `{targetDaprAppId}-DomainDataMigratedEvent-{postfix}` | 8 | unknown |
| `EntityLogEvent` | event | `{prefix}-EntityLogEvent-{postfix}` | 8 | unknown |
| `EntityLogEvent` | event | `{prefix}-{tenantCode}-{bulkTag}-EntityLogEvent-{postfix}` | 10 | unknown |
| `ExternalServiceLogEvent` | event | `{prefix}-{tenantCode}-{bulkTag}-ExternalServiceLogEvent-{postfix}` | 18 | unknown |
| `FastMoneyTransferPublishDistributedEvent` | event | `{prefix}-FastMoneyTransferPublishDistributedEvent-{postfix}` | 14 | unknown |
| `FastMoneyTransferPublishDistributedEvent` | event | `{targetDaprAppId}-FastMoneyTransferPublishDistributedEvent-{postfix}` | 5 | unknown |
| `FastMoneyTransferPublishDistributedEvent` | event | `{prefix}-FastMoneyTransferPublishDistributedEvent-{postfix}` | 8 | unknown |
| `FastMoneyTransferResponseDistributedEvent` | event | `seed_fastMoneyTransfer_dgcore_to_boa-resp` | 11 | unknown |
| `FieldChangedEvent` | event | `{prefix}-{perInstanceTag}-FieldChangedEvent-{postfix}` | 9 | unknown |
| `FieldChangedEvent` | event | `{prefix}-FieldChangedEvent-{postfix}` | 9 | unknown |
| `FileValidationDistributedEvent` | event | `{prefix}-FileValidationDistributedEvent-{postfix}` | 8 | unknown |
| `GenerateCollectionSlipDistributedEvent` | event | `{prefix}-GenerateCollectionSlipDistributedEvent-{postfix}` | 18 | unknown |
| `GenerateCollectionSlipDistributedEvent` | event | `{targetDaprAppId}-GenerateCollectionSlipDistributedEvent-{postfix}` | 11 | unknown |
| `IncomingFastMoneyTransferPublishDistributedEvent` | event | `{prefix}-IncomingFastMoneyTransferPublishDistributedEvent-{postfix}` | 8 | unknown |
| `IncomingFastMoneyTransferPublishDistributedEvent` | event | `{prefix}-IncomingFastMoneyTransferPublishDistributedEvent-{postfix}` | 13 | unknown |
| `InternalMoneyTransferPublishDistributedEvent` | event | `{prefix}-InternalMoneyTransferPublishDistributedEvent-{postfix}` | 13 | unknown |
| `InternalMoneyTransferPublishDistributedEvent` | event | `{prefix}-InternalMoneyTransferPublishDistributedEvent-{postfix}` | 8 | unknown |
| `InternalMoneyTransferResponseDistributedEvent` | event | `seed_internalMoneyTransfer_dgcore_to_boa-resp` | 11 | unknown |
| `IntraMoneyTransferPublishDistributedEvent` | event | `{prefix}-IntraMoneyTransferPublishDistributedEvent-{postfix}` | 8 | unknown |
| `IntraMoneyTransferPublishDistributedEvent` | event | `{prefix}-IntraMoneyTransferPublishDistributedEvent-{postfix}` | 13 | unknown |
| `IntraMoneyTransferResponseDistributedEvent` | event | `seed_intraMoneyTransfer_dgcore_to_boa-resp` | 11 | unknown |
| `KkbTcknGsmVerifyEvent` | event | `{prefix}-KkbTcknGsmVerifyEvent-{postfix}` | 9 | unknown |
| `KycTransactionDistributedEvent` | event | `{prefix}-KycTransactionDistributedEvent-{postfix}` | 11 | unknown |
| `LoginAttemptEvent` | event | `{prefix}-LoginAttemptEvent-{postfix}` | 20 | unknown |
| `LoginAttemptEvent` | event | `{prefix}-LoginAttemptEvent-{postfix}` | 22 | unknown |
| `MemoryCacheManagerRefreshedEvent` | event | `{targetDaprAppId}-{perInstanceTag}-MemoryCacheManagerRefreshedEvent-{postfix}` | 11 | unknown |
| `MoveCardDocumentDistributedEvent` | event | `{prefix}-MoveCardDocumentDistributedEvent-{postfix}` | 13 | unknown |
| `MultiTenancyService` | cache-refresh | `caches-{serviceName}-MultiTenancyService` | 0 | unknown |
| `NotificationEvent` | event | `{prefix}-NotificationEvent-{postfix}` | 9 | unknown |
| `NotificationSendEmailEvent` | event | `{prefix}-NotificationSendEmailEvent-{postfix}` | 17 | unknown |
| `NotificationSendSmsEvent` | event | `{prefix}-NotificationSendSmsEvent-{postfix}` | 16 | unknown |
| `NotificationSendSmsEvent` | event | `{targetDaprAppId}-NotificationSendSmsEvent-{postfix}` | 9 | unknown |
| `NotifyMessageCreatedEvent` | event | `{prefix}-NotifyMessageCreatedEvent-{postfix}` | 8 | unknown |
| `ProcessBatchCardFileDistributedEvent` | event | `{prefix}-ProcessBatchCardFileDistributedEvent-{postfix}` | 8 | unknown |
| `ProcessCompensationDistributedEvent` | event | `COMPENSATION-EXPORTER` | 17 | unknown |
| `ProcessResponseDistributedEvent` | event | `{prefix}-{perInstanceTag}-RESPONSE-EXPORTER-{postfix}` | 12 | unknown |
| `QueryAddedEvent` | event | `{prefix}-{perInstanceTag}-QueryAddedEvent-{postfix}` | 8 | unknown |
| `QueryDeletedEvent` | event | `{prefix}-QueryDeletedEvent-{postfix}` | 8 | unknown |
| `QueryService` | cache-refresh | `caches-{serviceName}-QueryService` | 0 | unknown |
| `ReconciliationBusinessKeyContentDistributedEvent` | event | `{prefix}-ReconciliationBusinessKeyContentDistributedEvent-{postfix}` | 9 | unknown |
| `RefreshDynamicApiEndpointDefinitionListEvent` | event | `{targetDaprAppId}-RefreshDynamicApiEndpointDefinitionListEvent-{postfix}` | 7 | unknown |
| `RefreshLocalCatalogCacheEvent` | event | `{prefix}-{perInstanceTag}-RefreshLocalCatalogCacheEvent-{postfix}` | 8 | unknown |
| `RefreshLocalProcessCacheEvent` | event | `{prefix}-{perInstanceTag}-RefreshLocalProcessCacheEvent-{postfix}` | 8 | unknown |
| `RefreshTemplateDesignCacheDistributedEvent` | event | `{prefix}-{perInstanceTag}-RefreshTemplateDesignCacheDistributedEvent-{postfix}` | 9 | unknown |
| `ReleaseWithholdingDistributedEvent` | event | `{prefix}-ReleaseWithholdingDistributedEvent-{postfix}` | 13 | unknown |
| `ReverseDistributedEvent` | event | `{prefix}-ReverseDistributedEvent-{postfix}` | 11 | unknown |
| `RollbackSendHarmonyRequestEvent` | event | `{prefix}-RollbackSendHarmonyRequestEvent-{postfix}` | 8 | unknown |
| `SMSNotificationSentDistributedEvent` | event | `seed_sms_notification_sent_boa_to_dgcore` | 15 | unknown |
| `SendBypassCompensationNrtMessageEvent` | event | `{prefix}-SendBypassCompensationNrtMessageEvent-{postfix}` | 9 | unknown |
| `SendLoanSmsDistributedEvent` | event | `{targetDaprAppId}-SendLoanSmsDistributedEvent-{postfix}` | 2 | unknown |
| `SendLoanSmsDistributedEvent` | event | `{prefix}-SendLoanSmsDistributedEvent-{postfix}` | 9 | unknown |
| `SendNrtMessageEvent` | event | `{prefix}-SendNrtMessageEvent-{postfix}` | 9 | unknown |
| `SendSmsOtpEvent` | event | `{prefix}-SendSmsOtpEvent-{postfix}` | 10 | unknown |
| `Service-Catalog-initialized-flag` | cache-refresh | `caches-Service-Catalog-initialized-flag` | 0 | unknown |
| `ServiceCatalog-InProcess` | cache-refresh | `caches-{serviceName}-ServiceCatalog-InProcess` | 0 | unknown |
| `ServiceLogEvent` | event | `{prefix}-{tenantCode}-{bulkTag}-ServiceLogEvent-{postfix}` | 10 | unknown |
| `SimBlockingPublishDistributedEvent` | event | `{prefix}-SimBlockingPublishDistributedEvent-{postfix}` | 8 | unknown |
| `SimBlockingPublishDistributedEvent` | event | `{prefix}-SimBlockingPublishDistributedEvent-{postfix}` | 11 | unknown |
| `SlipGeneratedDistributedEvent` | event | `{prefix}-SlipGeneratedDistributedEvent-{postfix}` | 16 | unknown |
| `SlipGeneratedDistributedEvent` | event | `{targetDaprAppId}-SlipGeneratedDistributedEvent-{postfix}` | 9 | unknown |
| `SyncWeChipContactsForAllCardsDistributedEvent` | event | `{prefix}-SyncWeChipContactsForAllCardsDistributedEvent-{postfix}` | 7 | unknown |
| `TableDataMigratedEvent` | event | `{prefix}-TableDataMigratedEvent-{postfix}` | 10 | unknown |
| `TamUpdateLimitRetryDistributedEvent` | event | `seed_qr_limit_boa_to_dgpays` | 15 | unknown |
| `Tenant-Config-Detail` | cache-refresh | `caches-Tenant-Config-Detail` | 0 | unknown |
| `TenantDetailChangedEvent` | event | `{prefix}-{perInstanceTag}-TenantDetailChangedEvent-{postfix}` | 9 | unknown |
| `TriggerAccountingEngineDistributedEvent` | event | `{targetDaprAppId}-TriggerAccountingEngineDistributedEvent-{postfix}` | 6 | unknown |
| `UpdateCustomerPublishDistrubutedEvent` | event | `{prefix}-UpdateCustomerPublishDistrubutedEvent-{postfix}` | 13 | unknown |
| `UpdateUserPhoneInfoEvent` | event | `{prefix}-UpdateUserPhoneInfoEvent-{postfix}` | 9 | unknown |
| `UpdateWeChipContactDistributedEvent` | event | `{prefix}-UpdateWeChipContactDistributedEvent-{postfix}` | 8 | unknown |
| `UploadArksignerIdentityImagesDistributedEvent` | event | `{prefix}-UploadArksignerIdentityImagesDistributedEvent-{postfix}` | 9 | unknown |
| `UploadSlipDistributedEvent` | event | `{prefix}-UploadSlipDistributedEvent-{postfix}` | 9 | unknown |
| `VerifiedPhoneControlEvent` | event | `{prefix}-VerifiedPhoneControlEvent-{postfix}` | 8 | unknown |
| `WebhookEvent` | event | `{prefix}-WebhookEvent-{postfix}` | 9 | unknown |
| `WebhookEvent` | event | `{targetDaprAppId}-WebhookEvent-{postfix}` | 2 | unknown |
| `action-definitions` | cache-refresh | `caches-{serviceName}-action-definitions` | 0 | unknown |
| `channel-definitions` | cache-refresh | `caches-core-service-channel-definitions` | 0 | unknown |
| `configs` | cache-refresh | `caches-core-service-configs` | 0 | unknown |
| `domains` | cache-refresh | `caches-core-service-domains` | 0 | unknown |
| `field-definitions` | cache-refresh | `caches-core-service-field-definitions` | 0 | unknown |
| `form-definitions` | cache-refresh | `caches-{serviceName}-form-definitions` | 0 | unknown |
| `kernel-localizations` | cache-refresh | `caches-{serviceName}-kernel-localizations` | 0 | unknown |
| `kernel-parameters` | cache-refresh | `caches-{serviceName}-kernel-parameters` | 0 | unknown |
| `mask-formats` | cache-refresh | `caches-core-service-mask-formats` | 0 | unknown |
| `menu-definitions` | cache-refresh | `caches-{serviceName}-menu-definitions` | 0 | unknown |
| `partners` | cache-refresh | `caches-business-core-service-partners` | 0 | unknown |
| `process-definition` | cache-refresh | `caches-bpm-service-process-definition` | 0 | unknown |
| `publis-message` | event | `{targetDaprAppId}-publis-message-{postfix}` | 0 | unknown |
| `service-definitions` | cache-refresh | `caches-core-service-service-definitions` | 0 | unknown |
| `shared-data-countries` | cache-refresh | `caches-shared-data-countries` | 0 | unknown |
| `shared-data-country-divisions` | cache-refresh | `caches-shared-data-country-divisions` | 0 | unknown |
| `shared-data-currencies` | cache-refresh | `caches-shared-data-currencies` | 0 | unknown |
| `shared-data-formulas` | cache-refresh | `caches-core-service-shared-data-formulas` | 0 | unknown |
| `shared-data-formulas` | cache-refresh | `caches-shared-data-formulas` | 0 | unknown |
| `shared-data-languages` | cache-refresh | `caches-shared-data-languages` | 0 | unknown |
| `template-design-details` | cache-refresh | `caches-template-management-service-template-design-details` | 0 | unknown |
| `validation-definitions` | cache-refresh | `caches-core-service-validation-definitions` | 0 | unknown |

## The machine-readable contract

A sanitized AsyncAPI 3.0.0 projection of this same surface is offered on the [downloads page](/downloads). It retains public channel identities, address templates, payload schemas and requiredness evidence, and it is generated by a field whitelist rather than by deleting known private keys — an extension the generator adds later is absent from it until somebody consciously classifies it as publishable.

:::note
**Deliberately omitted from this projection.** Repository names, refs and commits, source files, handler classes, publisher/subscriber topology, deployment candidates and internal addresses are not published. Their absence here is an audience boundary, not evidence that the platform has no such metadata.
:::
