> ## Documentation Index
> Fetch the complete documentation index at: https://www.composer.id/llms.txt
> Use this file to discover all available pages before exploring further.

# Published schemas

> The JSON Schemas the Intent API and the reference code are held to, with their canonical URLs.

This page lists the JSON Schemas that the Intent API and the reference code are held to, with the canonical URL of each. It is for anyone validating a payload or generating a client.

Every schema is published at a stable URL and embedded verbatim in the Intent API's OpenAPI document, so a client generator never has to resolve a remote reference. The files are the single source of truth and the OpenAPI document is a mechanical copy.

<AccordionGroup>
  <Accordion title="AdminPayload" icon="braces" description="admin-payload.json">
    Canonical URL: [https://composer.id/schemas/admin-payload.json](https://composer.id/schemas/admin-payload.json)

    Dates, budgets, cost centers, approvals, and administrative fields. Populated by the intake process; consumed by MappingProfiles during publish.
  </Accordion>

  <Accordion title="DefenceFile" icon="braces" description="defence-file.jsonld">
    Canonical URL: [https://composer.id/schemas/defence-file.jsonld](https://composer.id/schemas/defence-file.jsonld)

    Machine-readable evidence spine (JSON-LD) linked from the intent record and published destination objects. References the WorkAuthor signed PDF as the authoritative evidence artifact: stores a URI, never copies binaries.
  </Accordion>

  <Accordion title="DiagnosticsBundle" icon="braces" description="diagnostics-bundle.json">
    Canonical URL: [https://composer.id/schemas/diagnostics-bundle.json](https://composer.id/schemas/diagnostics-bundle.json)

    Scored diagnostic evidence produced by Triage. Contains the assessment answers, scores, and ranked outcomes that drive the routing decision. This is path-2 (MSP reporting) data: only the resulting intent\_id is published to destination systems.
  </Accordion>

  <Accordion title="EnrichmentRequest" icon="braces" description="enrichment-request.json">
    Canonical URL: [https://composer.id/schemas/enrichment-request.json](https://composer.id/schemas/enrichment-request.json)

    Emitted back to Triage when preflight finds missing platform-required fields. The publish is withheld until all gaps are filled: the intent is never half-published.
  </Accordion>

  <Accordion title="IntentRecord" icon="braces" description="intent-record.json">
    Canonical URL: [https://composer.id/schemas/intent-record.json](https://composer.id/schemas/intent-record.json)

    Canonical system-of-engagement record keyed by intent\_id.
  </Accordion>

  <Accordion title="LinkedDestination" icon="braces" description="linked-destination.json">
    Canonical URL: [https://composer.id/schemas/linked-destination.json](https://composer.id/schemas/linked-destination.json)

    Capability and requirements metadata for a connected tenant destination.
  </Accordion>

  <Accordion title="MappingProfile" icon="braces" description="mapping-profile.json">
    Canonical URL: [https://composer.id/schemas/mapping-profile.json](https://composer.id/schemas/mapping-profile.json)

    Field translation template from canonical intent/workforce models to a platform-specific API dialect. The unit of portability: swap the profile, keep the intent.
  </Accordion>

  <Accordion title="PassthroughRequest" icon="braces" description="passthrough-request.json">
    Canonical URL: [https://composer.id/schemas/passthrough-request.json](https://composer.id/schemas/passthrough-request.json)

    Raw platform API call anchored to an intent\_id. Escape hatch for fields or endpoints not covered by MappingProfiles: the call is logged on the intent timeline for auditability.
  </Accordion>

  <Accordion title="PublishingBundle" icon="braces" description="publishing-bundle.json">
    Canonical URL: [https://composer.id/schemas/publishing-bundle.json](https://composer.id/schemas/publishing-bundle.json)

    Publish receipts, external IDs, idempotency keys, and adapter status. Populated on the IntentRecord after the first successful publish.
  </Accordion>

  <Accordion title="ReconciliationReport" icon="braces" description="reconciliation-report.json">
    Canonical URL: [https://composer.id/schemas/reconciliation-report.json](https://composer.id/schemas/reconciliation-report.json)

    Drift detection report produced when the destination system's record diverges from the canonical intent. Field-level comparison via the MappingProfile.
  </Accordion>

  <Accordion title="RoutingPayload" icon="braces" description="routing-payload.json">
    Canonical URL: [https://composer.id/schemas/routing-payload.json](https://composer.id/schemas/routing-payload.json)

    Channel + destination payload in canonical field names (the Common Workforce Model). These are the platform-neutral fields that MappingProfiles translate into destination-specific API dialects.
  </Accordion>

  <Accordion title="TimelineEvent" icon="braces" description="timeline-event.json">
    Canonical URL: [https://composer.id/schemas/timeline-event.json](https://composer.id/schemas/timeline-event.json)

    Immutable append-only event for the intent audit trail. Events are never mutated or deleted.
  </Accordion>

  <Accordion title="WebhookEvent" icon="braces" description="webhook-event.json">
    Canonical URL: [https://composer.id/schemas/webhook-event.json](https://composer.id/schemas/webhook-event.json)

    Back-sync event envelope delivered by composerID webhooks, and accepted inbound at POST /webhooks/\{platform}. Signed in transport, not in the body: each delivery carries one or more X-Signature-HMAC-SHA256-\{n} headers, each the Base64 HMAC-SHA256 of the raw body under an active signing key; any one match verifies, so keys rotate without downtime.
  </Accordion>
</AccordionGroup>

<Note>
  `defence-file.jsonld` is the Compliance File: the prose was renamed in August 2026 and the schema keeps the old name until a versioned rename.
</Note>
