type: object
description: |
    Public-facing scan request — `PublicScanRequest` from
    [`api/src/fabricator/FabricatorSchemas.ts`](../../../../api/src/fabricator/FabricatorSchemas.ts).
    Returned by `/beyond/scan/{scanRequestId}`,
    `/beyond/scans/{scanRequestState}`, and the rescan endpoint. Strips
    admin / fabricator-only fields (`ownerBigscreenAccountId`,
    `topologyAuthToken`, `preprocessorResult`, `jobIds`, etc.) — see
    [`ScanRequest`](./ScanRequest.yaml) for the full admin shape.
required: [id, bigOrderId]
properties:
    id: { type: string }
    createdAt:
        type: integer
        description: Unix milliseconds.
    bigOrderId: { type: string }
    scanRequestState:
        type: string
        description: "`ScanRequestState` — defaults to `Unknown`."
    name:
        type: string
        description: Customer-facing name for the scan (e.g. `"Alice's left eye"`).
    shopifyIpd:
        type: number
        format: float
        description: IPD as supplied at order time (Shopify line-item).
    preprocessorIpd:
        type: number
        format: float
        description: IPD computed by the scan preprocessor.
    ipd:
        type: number
        format: float
        description: |
            Final IPD applied to the order. Sourced from `shopifyIpd`,
            `preprocessorIpd`, or a customer override depending on flow.
example:
    id: "scan_01HZW01234"
    createdAt: 1761127240000
    bigOrderId: "ord_01HXJ4Q98765"
    scanRequestState: "Pending"
    name: "Alice's scan"
    shopifyIpd: 63.5
    preprocessorIpd: 63.4
    ipd: 63.5
