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

# Resolve a single-use Try-Me token to its briefing manifest (POST form).

> POST equivalent of GET /dojo/try-me/resolve — token supplied in the JSON body.



## OpenAPI

````yaml POST /dojo/try-me/resolve
openapi: 3.1.0
info:
  title: Mnemom API
  description: >-
    Trust infrastructure for AI agents. Transparent alignment verification,
    behavioral drift detection, and accountability primitives.
  version: 1.0.0
  contact:
    name: Mnemom
    url: https://mnemom.ai
    email: support@mnemom.ai
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
servers:
  - url: https://api.mnemom.ai/v1
    description: Production
security:
  - BearerAuth: []
  - ApiKeyAuth: []
tags:
  - name: A2A
    description: >-
      Public A2A AgentCard projection of the canonical alignment card, with
      embedded AAP attestation extension (cards-as-primitive Phase 5).
  - name: Agents
    description: Agent registration, lifecycle, and metadata.
  - name: Agent Containment
    description: Containment policies and quarantine controls.
  - name: Agent Groups
    description: >-
      Lightweight logical tags for bucketing an org's agents — the unscored
      counterpart to the scored Teams primitive. No cards, coherence,
      reputation, or feature gate.
  - name: Alignment
    description: >-
      Alignment manifest CRUD — canonical `/v1/alignment/<scope>/<scope_id>`
      surface across platform / org / team / agent (cards-as-primitive Phase 4).
  - name: Analyze
    description: Behavioral analysis endpoints.
  - name: Aletheia Support
    description: >-
      In-product Aletheia assistant MVP (issue #2195) — chat + voice adapters
      over one shared answer core. Gated behind ALETHEIA_SUPPORT_MVP_ENABLED +
      the ALETHEIA_SUPPORT_ALLOWLIST identity allowlist (whose default is the
      whole @mnemom.ai domain, and which may be set to "*" to admit every
      authenticated identity), fail-closed 404 for every non-allowed caller.
      Dark by default; whether it is customer-facing depends on that env var per
      deployment.
  - name: Attestation
    description: >-
      AAP attestation token JWKS surface and platform-admin signing-key rotation
      (cards-as-primitive Phase 5).
  - name: Auth
    description: Authentication, sessions, and access management.
  - name: Billing
    description: Subscription, usage, and invoicing.
  - name: Blog
    description: Public blog content.
  - name: Card Templates
    description: Org-level alignment and protection card templates.
  - name: Catalog
    description: >-
      Discovery surface for the 25-entry Mnemom value catalog v1
      (cards-as-primitive Phase 4).
  - name: Checkpoints
    description: Integrity checkpoints and proof artifacts.
  - name: Conscience Values
    description: Org-level conscience-value configuration.
  - name: Consent
    description: >-
      GDPR Art. 7(1) append-only consent audit log (MNE-477). Public write
      (banner POSTs each decision); admin-only read/export. Stores a
      pseudonymous subject id + truncated IP only — in addition to client-side
      enforcement.
  - name: Domains
    description: >-
      Domain ownership claims (DNS-TXT verified) + the public no-PII
      claim-status projection.
  - name: MCP Servers
    description: >-
      MCP-server ownership claims (DNS-TXT verified on the origin domain) + the
      public no-PII claim-status projection for the IITR MCP-readiness rubric.
  - name: Dojo
    description: >-
      Dojo demo shared contracts (MNE-517): SimEvent SSE narrative feed +
      ephemeral compute-key issuance. Internal/demo surface, not
      customer-facing.
  - name: Invite Message Template
    description: >-
      Admin-only (mnemom_staff) CRUD over the invite composer's saved, reusable
      invite copy (MNE-7094, 5/8 of the RG invite-permission-product epic
      MNE-7089). Internal/staff surface, not customer-facing.
  - name: Code
    description: >-
      Mnemom Agent — the governed agent launcher (`mnemom agent`). The per-org
      feature gate the CLI checks at startup; invites and access reuse the
      product-invite surface with product `code`.
  - name: Invites
    description: >-
      Invitee-facing product-invite redemption (MNE-7166, 6/8 of the RG
      invite-permission-product epic MNE-7089). Accepting a `pinv_…` token
      grants product access and forwards a server-owned starter grant; the grant
      amount is admin-only and never surfaced.
  - name: Coherence
    description: >-
      Coherence report-claim round-trip (MNE-1379): single-use claim-intent
      tickets that carry a report claim across the sign-up/email-confirm/return
      round-trip so no session token rides the URL — only the opaque `mci_…`
      ticket.
  - name: Drift
    description: Drift detection and resolution.
  - name: Enforcement
    description: Enforcement-mode configuration and queries.
  - name: Governance
    description: Operator-actionable governance signals (ADR-048).
  - name: Integrity
    description: AIP integrity checkpoints and verdicts.
  - name: Intelligence
    description: Intelligence reports and queries.
  - name: Licensing
    description: License management.
  - name: Network
    description: >-
      Protection Network L4 thermometer read surface. Public-aggregate
      disclosure: any authenticated principal may read; rows carry no per-tenant
      identifiers.
  - name: OAuth
    description: >-
      OAuth 2.1 authorization-code + PKCE flow for MCP clients (MNE-328).
      Identity delegated to Supabase GoTrue; mnemom-api mints its own
      short-lived MCP-scoped tokens. Includes RFC 7591 dynamic client
      registration and RFC 7009 revocation.
  - name: On-Chain
    description: On-chain verification and proofs.
  - name: Onboarding
    description: >-
      Onboarding guidance generation (MNE-5508) — LLM-driven step guidance +
      bounded action suggestions for customers completing onboarding checklists.
  - name: Organizations
    description: Org-level resources and management.
  - name: Policy
    description: Policy evaluation and configuration.
  - name: Postures
    description: Trust posture management (ADR-045).
  - name: Protection
    description: >-
      Protection manifest CRUD — canonical `/v1/protection/<scope>/<scope_id>`
      surface across platform / org / team / agent (cards-as-primitive Phase 4).
  - name: Recipes
    description: >-
      Customer-facing detection-recipe surface — FN/FP reports. Distinct from
      the Admin recipe-promotion surface and the Internal seeding surface.
  - name: Reclassification
    description: Reclassification workflows.
  - name: Reputation
    description: Per-agent reputation scores.
  - name: Risk
    description: Risk assessment endpoints.
  - name: Safe House
    description: Safe House threat detection and quarantine.
  - name: Sideband
    description: Sideband detection queries (legacy; sunsetting).
  - name: Team Reputation
    description: Team-level reputation aggregates.
  - name: Teams
    description: Team-scope resources.
  - name: Tools
    description: >-
      Mnemom-side tools registry — per-tool class+domain+schema metadata
      (cards-as-primitive Phase 4).
  - name: Telemetry
    description: >-
      Public browser-RUM ingest (Core Web Vitals). Anon-eligible by design,
      rate-limited, closed-enum dimensions only — emits spans, persists nothing.
  - name: Traces
    description: AP-Trace artifacts and queries.
  - name: Transparency
    description: >-
      Append-only public log of every canonical card identity ever composed.
      Signed Merkle root + per-row inclusion proofs (cards-as-primitive Phase
      5).
  - name: Trust
    description: >-
      Protection Network L5 public-trust surface — security advisories, IoC feed
      (STIX 2.1), and platform-admin CMS for both.
  - name: Mu
    description: >-
      mu-engine ledger proxy — thin pass-through to the mnemom-mu Worker
      (balances, budgets, staff reads). api owns auth/RBAC/org-context; the
      ledger lives in mnemom-mu (issue #2357).
  - name: Verification
    description: Trace verification endpoints.
  - name: Webhook Notifications
    description: Webhook event subscription management.
  - name: Webhooks
    description: Webhook delivery and lifecycle.
  - name: Misc
    description: >-
      Miscellaneous operator-facing endpoints (contact, enterprise inquiries,
      compliance).
  - name: Feedback
    description: >-
      Authenticated in-product feedback ingest (Aletheia Customer Voice).
      Redacted + consent-gated + idempotent.
  - name: Notifications
    description: >-
      Reactive notification channels — SSE stream + signed-webhook subscriptions
      for canonical card changes (cards-as-primitive Phase 5).
  - name: Presentations
    description: >-
      Investor/data-room presentations + per-viewer grants (MNE-1428, "Inside
      Mnemom"). Admin create/invite/revoke; authed-user read scoped to active
      grants. Internal/demo surface, not customer-facing.
  - name: Aletheia
    description: >-
      Aletheia grounded Q&A answer core (MNE-1937). Internal/preview surface,
      not customer-facing.
  - name: AletheiaVoice
    description: >-
      In-product Aletheia voice register (MNE-1944), the customer/anon sibling
      of the Presentations deck voice register. DARK: feature-flag + allowlist
      gated, zero customer exposure until promoted; cookie/bearer-authed like
      any other customer route.
paths:
  /dojo/try-me/resolve:
    post:
      tags:
        - Dojo
      summary: Resolve a single-use Try-Me token to its briefing manifest (POST form).
      description: >-
        POST equivalent of `GET /dojo/try-me/resolve` — token supplied in the
        JSON body. Same burn semantics and responses. MNE-517 §1/§2 / MNE-523.
      operationId: resolveTryMeBriefingPost
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - token
              properties:
                token:
                  type: string
      responses:
        '200':
          description: The briefing manifest for the burned token.
          content:
            application/json:
              schema:
                type: object
                required:
                  - directive
                  - version
                  - token
                  - mission
                  - model
                  - gateway
                  - declare
                  - bind
                  - handoff
                  - human_beats
                  - human_beats_note
                  - steps
                  - state_machine
                  - auth_doors
                  - instructions_markdown
                properties:
                  directive:
                    type: string
                    description: >-
                      MNE-798 — the FIRST manifest field: the machine-readable
                      contract (fetch the RAW JSON, do not summarize,
                      agent-directive language — never 'visit'). Hoisted to the
                      top so a summarizing reader hits it before stripping the
                      structured fields.
                  version:
                    type: string
                  token:
                    type: string
                  human_beats:
                    type: array
                    description: >-
                      MNE-804 — the claim-first arc as the human FEELS it:
                      exactly three one-click beats (name → authorize → Begin
                      Sim). Everything else is a silent machine step under the
                      grant from beat 2. The human twin of
                      `steps`/`state_machine` (additive — those are untouched).
                      Beat 2 (authorize) is host-native OAuth consent or a
                      single one-click device-grant deep link
                      (`verification_uri_complete`), NEVER a pasted URL, and
                      carries the explicit 'waiting for signup' state (no
                      premature timeout).
                    items:
                      type: object
                      required:
                        - id
                        - 'n'
                        - title
                        - prompt
                        - one_click
                      properties:
                        id:
                          type: string
                          enum:
                            - name
                            - authorize
                            - begin_sim
                        'n':
                          type: integer
                        title:
                          type: string
                        prompt:
                          type: string
                        one_click:
                          type: boolean
                  human_beats_note:
                    type: string
                    description: >-
                      MNE-804 — framing for `human_beats`: everything outside
                      the three beats runs silently/automatically under the
                      scoped grant.
                  mission:
                    type: object
                    required:
                      - scenario_id
                      - name
                      - role_system_prompt
                      - failure_conditions
                    properties:
                      scenario_id:
                        type: string
                      name:
                        type: string
                      role_system_prompt:
                        type: string
                      failure_conditions:
                        type: object
                        additionalProperties: true
                  model:
                    type: object
                    required:
                      - provider
                      - name
                    properties:
                      provider:
                        type: string
                      name:
                        type: string
                  gateway:
                    type: object
                    description: >-
                      Birth credential — the agent presents this on `key_header`
                      to be born + carry every gateway/model call. The ONLY
                      credential handed to the agent. Under MNE-799
                      server-mediated birth this is a per-session BIRTH TOKEN
                      (`birth_token`, `mnbt_…`) the gateway resolves server-side
                      to the real key; identity is token-derived
                      (`first16hex(SHA256(birth_token))`) and the agent_id is a
                      server-minted `mnm-…` — NOT name-derived, and no shared
                      provider key reaches the agent.
                    required:
                      - endpoint
                      - provider
                      - model
                      - key_header
                      - agent_header
                    properties:
                      endpoint:
                        type: string
                        format: uri
                      provider:
                        type: string
                        enum:
                          - anthropic
                          - openai
                          - google
                      model:
                        type: string
                        description: >-
                          Concrete model id to send at birth (bare aliases 404
                          upstream).
                      key_header:
                        type: string
                        description: >-
                          Provider-native header for the key (x-api-key /
                          Authorization / x-goog-api-key).
                      provider_key:
                        type: string
                        description: >-
                          Legacy flow only — the Mnemom-provided dojo provider
                          key as the agent's identity + model credential.
                          Present ONLY when no `birth_token` is issued;
                          superseded by `birth_token` under MNE-799
                          server-mediated birth (which never hands a shared
                          provider key to the agent).
                      birth_token:
                        type: string
                        description: >-
                          MNE-799 server-mediated birth — the per-session BIRTH
                          TOKEN (`mnbt_…`) the agent presents on `key_header`;
                          the gateway resolves it server-side to the real key
                          and mints a token-derived `mnm-…` agent_id. Present in
                          token mode (the default) INSTEAD OF `provider_key`.
                      agent_header:
                        type: string
                        description: >-
                          Header carrying the agent's birth NAME
                          (x-mnemom-agent) — the other half of agent_id.
                  declare:
                    type: object
                    required:
                      - alignment_card
                      - protection_card
                      - protection_mode
                    properties:
                      alignment_card:
                        type: object
                        additionalProperties: true
                      protection_card:
                        type: object
                        additionalProperties: true
                      protection_mode:
                        type: string
                        enum:
                          - nudge
                          - enforce
                  bind:
                    type: object
                    description: >-
                      Authed dojo bind (post-`mnemom login`, owner-only) — the
                      agent records its agent_id against this briefing so Begin
                      Sim can resolve the dojo key by agent_id and spar it.
                    required:
                      - endpoint
                      - config_id
                    properties:
                      endpoint:
                        type: string
                        format: uri
                      config_id:
                        type: string
                  handoff:
                    type: object
                    description: >-
                      Human-handoff + CLI surfaces: the human takes ownership
                      via the canonical /claim page, then the agent declares as
                      the human via a `mnemom login` CLI session.
                    required:
                      - name_question
                      - name_options
                      - signup_url
                      - claim_url_template
                      - claim_hash_recipe
                      - dojo_url
                    properties:
                      name_question:
                        type: string
                      name_options:
                        type: array
                        items:
                          type: string
                      signup_url:
                        type: string
                        format: uri
                      claim_url_template:
                        type: string
                      grant_url_template:
                        type: string
                        description: >-
                          First-party protection-grant page template
                          (`…/authorize-protection?agent_id={agent_id}`) — the
                          human approves the one-time protection-card write
                          grant here (the `protection_grant` auth door surface).
                      claim_hash_recipe:
                        type: string
                      cli_install:
                        type: string
                        description: >-
                          Legacy/optional — the `mnemom` CLI install one-liner.
                          No longer emitted by the narrated one-click flow;
                          retained as an optional field for older consumers.
                      dojo_url:
                        type: string
                        format: uri
                  steps:
                    type: array
                    items:
                      type: object
                      required:
                        - 'n'
                        - title
                        - body
                      properties:
                        'n':
                          type: integer
                        title:
                          type: string
                        body:
                          type: string
                        human_handoff:
                          type: boolean
                  state_machine:
                    type: object
                    description: >-
                      MNE-798 — the declarative flow as explicit states +
                      transitions (the machine twin of `steps`), so an agent
                      executes it deterministically across substrates. Each
                      state carries the concrete next call to make and the
                      signal that advances it.
                    required:
                      - initial
                      - states
                    properties:
                      initial:
                        type: string
                        enum:
                          - orient
                          - resolve
                          - birth
                          - claim
                          - spar
                          - receipt
                      states:
                        type: array
                        items:
                          type: object
                          required:
                            - id
                            - description
                            - auth
                            - next_action
                            - success_signal
                            - on_success
                          properties:
                            id:
                              type: string
                              enum:
                                - orient
                                - resolve
                                - birth
                                - claim
                                - spar
                                - receipt
                            description:
                              type: string
                            auth:
                              type: object
                              description: >-
                                MNE-798 — the state's authorization tier: `anon`
                                (the try-me token IS the credential —
                                token-mediated birth) or `owner` (acts in the
                                human's org; the agent must obtain an owner
                                session through one of the listed `doors`, a
                                subset of `auth_doors`). Tells the agent WHEN to
                                invoke an auth door.
                              required:
                                - tier
                              properties:
                                tier:
                                  type: string
                                  enum:
                                    - anon
                                    - owner
                                doors:
                                  type: array
                                  items:
                                    type: string
                                    enum:
                                      - mcp_step_up
                                      - protection_grant
                                      - device_grant
                                  description: >-
                                    For an `owner` state: which auth_doors ids
                                    unlock it. Empty for `anon`.
                              additionalProperties: false
                            next_action:
                              type: object
                              description: >-
                                The single concrete, machine-executable action
                                this state advances on — a raw HTTP call
                                (`kind:http`) or an MCP tool invocation
                                (`kind:mcp`).
                              required:
                                - kind
                              properties:
                                kind:
                                  type: string
                                  enum:
                                    - http
                                    - mcp
                                method:
                                  type: string
                                  enum:
                                    - GET
                                    - POST
                                url:
                                  type: string
                                headers:
                                  type: object
                                  additionalProperties:
                                    type: string
                                body_hint:
                                  type: string
                                tool:
                                  type: string
                                args_hint:
                                  type: string
                              additionalProperties: false
                            success_signal:
                              type: string
                            on_success:
                              type:
                                - string
                                - 'null'
                              enum:
                                - orient
                                - resolve
                                - birth
                                - claim
                                - spar
                                - receipt
                                - null
                              description: The successor state id, or null when terminal.
                            human_handoff:
                              type: boolean
                          additionalProperties: false
                  auth_doors:
                    type: object
                    description: >-
                      MNE-798 — the owner-tier authorization affordances,
                      declared so the agent negotiates by host capability:
                      `mcp_step_up` (RFC 6750 insufficient_scope challenge —
                      mid-session step-up), `protection_grant` (first-party
                      one-time browser grant — the human approves the
                      protection-card write), and `device_grant` (RFC 8628
                      device authorization grant — the headless fallback). The
                      agent picks the one its host supports.
                    required:
                      - negotiation_hint
                      - doors
                    properties:
                      negotiation_hint:
                        type: string
                      doors:
                        type: array
                        items:
                          type: object
                          required:
                            - id
                            - protocol
                            - description
                            - use_when
                          properties:
                            id:
                              type: string
                              enum:
                                - mcp_step_up
                                - protection_grant
                                - device_grant
                            protocol:
                              type: string
                              enum:
                                - RFC 6750
                                - first-party one-time grant
                                - RFC 8628
                            description:
                              type: string
                            use_when:
                              type: string
                            challenge:
                              type: object
                              description: >-
                                mcp_step_up only — the 403 challenge the api
                                emits at owner-tier endpoints.
                              required:
                                - status
                                - www_authenticate
                                - resource_metadata
                              properties:
                                status:
                                  type: integer
                                  enum:
                                    - 403
                                www_authenticate:
                                  type: string
                                resource_metadata:
                                  type: string
                                  format: uri
                            grant_url_template:
                              type: string
                              description: >-
                                protection_grant only — the first-party grant
                                page template
                                (`…/authorize-protection?agent_id={agent_id}`)
                                the human opens to approve the one-time
                                protection-card write.
                            insufficient_scope_status:
                              type: integer
                              description: >-
                                protection_grant only — the status the
                                protection-card write returns until the grant
                                lands (403).
                            grant_type:
                              type: string
                            device_authorization_endpoint:
                              type: string
                              format: uri
                            token_endpoint:
                              type: string
                              format: uri
                            registration_endpoint:
                              type: string
                              format: uri
                            scopes_hint:
                              type: string
                              description: >-
                                device_grant only — the OAuth scopes to request
                                for the card writes.
                            verification_uri:
                              type: string
                              format: uri
                            poll_interval_seconds:
                              type: integer
                          additionalProperties: false
                  instructions_markdown:
                    type: string
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '410':
          description: The token has already been used (single-use, burned) or has expired.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      security: []
components:
  responses:
    BadRequest:
      description: Bad request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    TooManyRequests:
      description: >-
        Rate-limit exceeded. The global per-IP limiter (100 requests/minute,
        applied to every `/v1/*` route) rejected this request. Back off until
        the window resets — `Retry-After` carries the cooldown in seconds and
        `X-RateLimit-Reset` the absolute reset time.
      headers:
        Retry-After:
          description: Seconds to wait before retrying.
          schema:
            type: integer
            minimum: 1
        X-RateLimit-Limit:
          description: Requests permitted per window.
          schema:
            type: integer
        X-RateLimit-Remaining:
          description: Requests remaining in the current window (0 on a 429).
          schema:
            type: integer
            minimum: 0
        X-RateLimit-Reset:
          description: Unix epoch seconds at which the current window resets.
          schema:
            type: integer
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    InternalServerError:
      description: >-
        Server error — request was well-formed but the server failed to fulfill
        it. Typically a downstream dependency (DB / RPC / external API) returned
        an unexpected error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    ServiceUnavailable:
      description: >-
        An upstream dependency is currently unavailable. The request was not
        processed; retry after the cooldown window.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    Error:
      type: object
      description: >-
        Canonical error envelope (ADR-API-001 conv 1). `error` is always an
        object — never a bare string. Every 4xx/5xx response across the API
        conforms to this shape; the runtime helper is
        `src/http-errors.ts::buildErrorBody`.
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
              pattern: ^[a-z][a-z0-9_]*$
              description: >-
                Stable, machine-matchable failure identifier (lowercase
                snake_case). Clients may branch on this; the string is part of
                the contract.


                **Status-class defaults** — emitted when no caller code is
                supplied (`errorCodeForStatus(status)`): `bad_request` (400),
                `unauthorized` (401), `forbidden` (403), `not_found` (404),
                `method_not_allowed` (405), `conflict` (409), `gone` (410),
                `precondition_failed` (412), `payload_too_large` (413),
                `unsupported_media_type` (415), `unprocessable_entity` (422),
                `precondition_required` (428), `rate_limited` (429),
                `internal_error` (500), `not_implemented` (501), `bad_gateway`
                (502), `service_unavailable` (503), `gateway_timeout` (504).
                Fallback `error` for unmapped statuses.


                **Caller-supplied codes** — handlers may pass an explicit `code`
                for a specific failure class. Examples: `agent_not_found`,
                `invalid_hash_proof`, `already_linked`, `idempotency_conflict`,
                `feature_gated`, `schema_validation_failed`, `no_token`,
                `bad_canonical_payload`.


                **Care-framed sub-resource codes** — the cards-as-primitive
                surface passes its stable care code-string straight through as
                `error.code`. Examples: `if_match_absent`, `if_match_stale`,
                `if_match_malformed`, `primitive_validation_failed`.
            message:
              type: string
              description: Human-readable, care-framed explanation of the failure.
            details:
              description: >-
                Optional structured context for the failure (any JSON value:
                object, array, or primitive). Common shapes: validation findings
                list, idempotency-conflict diff, `{presented_etag,
                current_etag}` on a stale `If-Match`, etc. Mirrors the helper's
                `details?: unknown`.
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: 'Supabase JWT token in Authorization: Bearer header'
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-Mnemom-Api-Key
      description: Mnemom API key (mnm_... format)

````